From 6920e497d5fe2439192c9f92788b0f37563cf502 Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Tue, 21 Aug 2012 16:26:45 +0400 Subject: [PATCH] JetDiagnosticsTest for using java enum in kotlin. --- .../tests/enum/importEnumFromJava.kt | 7 ++++ .../tests/enum/javaEnumValueOfMethod.kt | 11 +++++ .../tests/enum/javaEnumValuesMethod.kt | 12 ++++++ .../tests/enum/javaEnumWithFuns.kt | 18 +++++++++ .../tests/enum/javaEnumWithNameClashing.kt | 17 ++++++++ .../tests/enum/javaEnumWithProperty.kt | 21 ++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 40 +++++++++++++++++++ 7 files changed, 126 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt create mode 100644 compiler/testData/diagnostics/tests/enum/javaEnumValueOfMethod.kt create mode 100644 compiler/testData/diagnostics/tests/enum/javaEnumValuesMethod.kt create mode 100644 compiler/testData/diagnostics/tests/enum/javaEnumWithFuns.kt create mode 100644 compiler/testData/diagnostics/tests/enum/javaEnumWithNameClashing.kt create mode 100644 compiler/testData/diagnostics/tests/enum/javaEnumWithProperty.kt diff --git a/compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt b/compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt new file mode 100644 index 00000000000..40fc2379b89 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt @@ -0,0 +1,7 @@ +// FILE: test.kt + +package test + +import java.util.concurrent.TimeUnit.* + +val c = SECONDS diff --git a/compiler/testData/diagnostics/tests/enum/javaEnumValueOfMethod.kt b/compiler/testData/diagnostics/tests/enum/javaEnumValueOfMethod.kt new file mode 100644 index 00000000000..cf408feb21d --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/javaEnumValueOfMethod.kt @@ -0,0 +1,11 @@ +// FILE: A.java +public enum A { + ENTRY; +} + +// FILE: test.kt +package test + +fun main() { + A.valueOf("ENTRY"): A +} diff --git a/compiler/testData/diagnostics/tests/enum/javaEnumValuesMethod.kt b/compiler/testData/diagnostics/tests/enum/javaEnumValuesMethod.kt new file mode 100644 index 00000000000..d644c41921f --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/javaEnumValuesMethod.kt @@ -0,0 +1,12 @@ +// FILE: A.java +public enum A { + ENTRY, + ANOTHER; +} + +// FILE: test.kt +package vvv + +fun main() { + A.values(): Array +} diff --git a/compiler/testData/diagnostics/tests/enum/javaEnumWithFuns.kt b/compiler/testData/diagnostics/tests/enum/javaEnumWithFuns.kt new file mode 100644 index 00000000000..c89a80686d5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/javaEnumWithFuns.kt @@ -0,0 +1,18 @@ +// FILE: A.java +public enum A { + ENTRY, + ANOTHER; + + public String s() { + return ""; + } +} + +// FILE: test.kt + +package vvv + +fun main() { + val c = A.ENTRY + c.s() +} diff --git a/compiler/testData/diagnostics/tests/enum/javaEnumWithNameClashing.kt b/compiler/testData/diagnostics/tests/enum/javaEnumWithNameClashing.kt new file mode 100644 index 00000000000..986f9004b5f --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/javaEnumWithNameClashing.kt @@ -0,0 +1,17 @@ +// FILE: A.java +public enum A { + ENTRY, + ANOTHER; + + public String ENTRY = ""; +} + +// FILE: test.kt + +package vvv + +fun main() { + val c: A = A.ENTRY + val c2: String? = c.ENTRY + val c3: String? = A.ANOTHER.ENTRY +} diff --git a/compiler/testData/diagnostics/tests/enum/javaEnumWithProperty.kt b/compiler/testData/diagnostics/tests/enum/javaEnumWithProperty.kt new file mode 100644 index 00000000000..220a7f6801d --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/javaEnumWithProperty.kt @@ -0,0 +1,21 @@ +// FILE: A.java +public enum A { + ENTRY("1"), + ANOTHER("2"); + + public String s; + + private A(String s) { + this.s = s; + } +} + +// FILE: test.kt + +package vvv + +fun main() { + val c = A.ENTRY + c.s + A.ANOTHER.s +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index fa04e2a2482..a319c09b70a 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -1169,6 +1169,44 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage } } + @TestMetadata("compiler/testData/diagnostics/tests/enum") + public static class Enum extends AbstractDiagnosticsTestWithEagerResolve { + public void testAllFilesPresentInEnum() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve", new File("compiler/testData/diagnostics/tests/enum"), "kt", false); + } + + @TestMetadata("importEnumFromJava.kt") + public void testImportEnumFromJava() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/importEnumFromJava.kt"); + } + + @TestMetadata("javaEnumValueOfMethod.kt") + public void testJavaEnumValueOfMethod() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/javaEnumValueOfMethod.kt"); + } + + @TestMetadata("javaEnumValuesMethod.kt") + public void testJavaEnumValuesMethod() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/javaEnumValuesMethod.kt"); + } + + @TestMetadata("javaEnumWithFuns.kt") + public void testJavaEnumWithFuns() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/javaEnumWithFuns.kt"); + } + + @TestMetadata("javaEnumWithNameClashing.kt") + public void testJavaEnumWithNameClashing() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/javaEnumWithNameClashing.kt"); + } + + @TestMetadata("javaEnumWithProperty.kt") + public void testJavaEnumWithProperty() throws Exception { + doTest("compiler/testData/diagnostics/tests/enum/javaEnumWithProperty.kt"); + } + + } + @TestMetadata("compiler/testData/diagnostics/tests/extensions") public static class Extensions extends AbstractDiagnosticsTestWithEagerResolve { public void testAllFilesPresentInExtensions() throws Exception { @@ -3027,6 +3065,8 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage suite.addTestSuite(DataFlow.class); suite.addTestSuite(DataFlowInfoTraversal.class); suite.addTest(DeclarationChecks.innerSuite()); + suite.addTestSuite(DeclarationChecks.class); + suite.addTestSuite(Enum.class); suite.addTestSuite(Extensions.class); suite.addTestSuite(Generics.class); suite.addTest(IncompleteCode.innerSuite());