From 4ecd1a8f686a985c04f4ea16bed4abc6557b3682 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 3 Dec 2013 18:02:37 +0400 Subject: [PATCH] Don't fail when using Unit class object as a value #KT-4243 Fixed --- .../testData/codegen/box/unit/unitClassObject.kt | 13 +++++++++++++ .../generated/BlackBoxCodegenTestGenerated.java | 5 +++++ runtime/src/jet/Unit.java | 7 +++++++ 3 files changed, 25 insertions(+) create mode 100644 compiler/testData/codegen/box/unit/unitClassObject.kt diff --git a/compiler/testData/codegen/box/unit/unitClassObject.kt b/compiler/testData/codegen/box/unit/unitClassObject.kt new file mode 100644 index 00000000000..03de0ed559d --- /dev/null +++ b/compiler/testData/codegen/box/unit/unitClassObject.kt @@ -0,0 +1,13 @@ +fun box(): String { + Unit + + val a = Unit + val b = Unit + if (a != b) return "Fail a != b" + + if (Unit != Unit) return "Fail Unit != Unit" + + if (a.VALUE != Unit.VALUE) return "Fail a.VALUE != Unit.VALUE" + + return "OK" +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 96fda8aae07..a22955557a5 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -4565,6 +4565,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/codegen/box/unit"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("unitClassObject.kt") + public void testUnitClassObject() throws Exception { + doTest("compiler/testData/codegen/box/unit/unitClassObject.kt"); + } + @TestMetadata("UnitValue.kt") public void testUnitValue() throws Exception { doTest("compiler/testData/codegen/box/unit/UnitValue.kt"); diff --git a/runtime/src/jet/Unit.java b/runtime/src/jet/Unit.java index d0d674afdf6..5dc741f535d 100644 --- a/runtime/src/jet/Unit.java +++ b/runtime/src/jet/Unit.java @@ -22,6 +22,8 @@ import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver; public class Unit { public static final Unit VALUE = new Unit(); + public static final object object$ = new object(); + private Unit() { } @@ -39,4 +41,9 @@ public class Unit { public int hashCode() { return 239; } + + public static class object { + private object() { + } + } }