From 22ddd05e0944db10e604ec95ccd0a1b07c958397 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Mon, 6 May 2013 10:41:48 +0400 Subject: [PATCH] KT-3576 Getters for float constants in objects always return 0.0 when constants are less than 1.0 #KT-3576 Fixed --- .../jetbrains/jet/codegen/ImplementationBodyCodegen.java | 2 +- compiler/testData/codegen/box/primitiveTypes/kt3576.kt | 9 +++++++++ .../codegen/generated/BlackBoxCodegenTestGenerated.java | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/primitiveTypes/kt3576.kt diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 42594a2f206..56ef145be49 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -1593,7 +1593,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if (type == Type.DOUBLE_TYPE && ((Number) value).doubleValue() == 0d) { return true; } - if (type == Type.FLOAT_TYPE && ((Number) value).byteValue() == 0f) { + if (type == Type.FLOAT_TYPE && ((Number) value).floatValue() == 0f) { return true; } } diff --git a/compiler/testData/codegen/box/primitiveTypes/kt3576.kt b/compiler/testData/codegen/box/primitiveTypes/kt3576.kt new file mode 100644 index 00000000000..803bb233625 --- /dev/null +++ b/compiler/testData/codegen/box/primitiveTypes/kt3576.kt @@ -0,0 +1,9 @@ +object TestObject { + val testFloat: Float = 0.9999 + val otherFloat: Float = 1.01 +} + +fun box(): String { + return if (TestObject.testFloat.equals(0.9999.toFloat()) + && TestObject.otherFloat.equals(1.01.toFloat())) "OK" else "fail" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 73ff5d85782..d2ddcaef902 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -3336,6 +3336,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/primitiveTypes/kt3078.kt"); } + @TestMetadata("kt3576.kt") + public void testKt3576() throws Exception { + doTest("compiler/testData/codegen/box/primitiveTypes/kt3576.kt"); + } + @TestMetadata("kt446.kt") public void testKt446() throws Exception { doTest("compiler/testData/codegen/box/primitiveTypes/kt446.kt");