From 7f49a8c159bb1371b66eeb8169102164593d9ca8 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 28 Oct 2014 15:09:59 +0300 Subject: [PATCH] Added tests with redeclaration. The behavior is correct (compilation error), while diagnostic message is not ideal. --- .../build/IncrementalJpsTestGenerated.java | 24 +++++++++++++++++++ .../pureKotlin/classRedeclaration/build.log | 13 ++++++++++ .../pureKotlin/classRedeclaration/class1.kt | 1 + .../classRedeclaration/class2.kt.new | 1 + .../conflictingPlatformDeclarations/build.log | 11 +++++++++ .../conflictingPlatformDeclarations/fun1.kt | 5 ++++ .../conflictingPlatformDeclarations/fun2.kt | 3 +++ .../fun2.kt.new | 7 ++++++ .../pureKotlin/funRedeclaration/build.log | 11 +++++++++ .../pureKotlin/funRedeclaration/fun1.kt | 5 ++++ .../pureKotlin/funRedeclaration/fun2.kt | 3 +++ .../pureKotlin/funRedeclaration/fun2.kt.new | 7 ++++++ .../propertyRedeclaration/build.log | 11 +++++++++ .../pureKotlin/propertyRedeclaration/prop1.kt | 3 +++ .../pureKotlin/propertyRedeclaration/prop2.kt | 5 ++++ .../propertyRedeclaration/prop2.kt.new | 7 ++++++ 16 files changed, 117 insertions(+) create mode 100644 jps-plugin/testData/incremental/pureKotlin/classRedeclaration/build.log create mode 100644 jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class1.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class2.kt.new create mode 100644 jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/build.log create mode 100644 jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun1.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt.new create mode 100644 jps-plugin/testData/incremental/pureKotlin/funRedeclaration/build.log create mode 100644 jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun1.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt.new create mode 100644 jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/build.log create mode 100644 jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop1.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt create mode 100644 jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt.new diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java index 505e6628321..97fe6f72843 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java @@ -99,6 +99,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("classRedeclaration") + public void testClassRedeclaration() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/classRedeclaration/"); + doTest(fileName); + } + @TestMetadata("classSignatureChanged") public void testClassSignatureChanged() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/classSignatureChanged/"); @@ -117,6 +123,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("conflictingPlatformDeclarations") + public void testConflictingPlatformDeclarations() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/"); + doTest(fileName); + } + @TestMetadata("constantsUnchanged") public void testConstantsUnchanged() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/constantsUnchanged/"); @@ -141,6 +153,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("funRedeclaration") + public void testFunRedeclaration() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/funRedeclaration/"); + doTest(fileName); + } + @TestMetadata("independentClasses") public void testIndependentClasses() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/independentClasses/"); @@ -249,6 +267,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("propertyRedeclaration") + public void testPropertyRedeclaration() throws Exception { + String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/"); + doTest(fileName); + } + @TestMetadata("returnTypeChanged") public void testReturnTypeChanged() throws Exception { String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/"); diff --git a/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/build.log b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/build.log new file mode 100644 index 00000000000..bfc18950439 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/build.log @@ -0,0 +1,13 @@ +Compiling files: +src/class2.kt +End of files +Cleaning output files: +out/production/module/Klass.class +End of files +Compiling files: +src/class1.kt +src/class2.kt +End of files +COMPILATION FAILED +Kotlin:ERROR:Redeclaration: Klass +Kotlin:ERROR:Redeclaration: Klass \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class1.kt b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class1.kt new file mode 100644 index 00000000000..bc00411157b --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class1.kt @@ -0,0 +1 @@ +class Klass \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class2.kt.new b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class2.kt.new new file mode 100644 index 00000000000..bc00411157b --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/classRedeclaration/class2.kt.new @@ -0,0 +1 @@ +class Klass \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/build.log b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/build.log new file mode 100644 index 00000000000..c7c84ffc8d8 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/build.log @@ -0,0 +1,11 @@ +Cleaning output files: +out/production/module/test/TestPackage$fun2$*.class +out/production/module/test/TestPackage.class +End of files +Compiling files: +src/fun2.kt +End of files +COMPILATION FAILED +Kotlin:ERROR:Platform declaration clash: The following declarations have the same JVM signature (function(Ljava/util/List;)V): + fun function(list: kotlin.List): kotlin.Unit + fun function(list: kotlin.List): kotlin.Unit diff --git a/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun1.kt b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun1.kt new file mode 100644 index 00000000000..45fb46b3db7 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun1.kt @@ -0,0 +1,5 @@ +package test + +fun function(list: List) { + +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt new file mode 100644 index 00000000000..897d69e3641 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt @@ -0,0 +1,3 @@ +package test + +val x = 1 diff --git a/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt.new b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt.new new file mode 100644 index 00000000000..97e1b6d862c --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/conflictingPlatformDeclarations/fun2.kt.new @@ -0,0 +1,7 @@ +package test + +val x = 1 + +fun function(list: List) { + +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/build.log b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/build.log new file mode 100644 index 00000000000..f9713085579 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/build.log @@ -0,0 +1,11 @@ +Cleaning output files: +out/production/module/test/TestPackage$fun2$*.class +out/production/module/test/TestPackage.class +End of files +Compiling files: +src/fun2.kt +End of files +COMPILATION FAILED +Kotlin:ERROR:Platform declaration clash: The following declarations have the same JVM signature (function()V): + fun function(): kotlin.Unit + fun function(): kotlin.Unit \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun1.kt b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun1.kt new file mode 100644 index 00000000000..539d6344c39 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun1.kt @@ -0,0 +1,5 @@ +package test + +fun function() { + +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt new file mode 100644 index 00000000000..897d69e3641 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt @@ -0,0 +1,3 @@ +package test + +val x = 1 diff --git a/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt.new b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt.new new file mode 100644 index 00000000000..6621c5f63e7 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/funRedeclaration/fun2.kt.new @@ -0,0 +1,7 @@ +package test + +val x = 1 + +fun function() { + +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/build.log b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/build.log new file mode 100644 index 00000000000..15793b4067f --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/build.log @@ -0,0 +1,11 @@ +Cleaning output files: +out/production/module/test/TestPackage$prop2$*.class +out/production/module/test/TestPackage.class +End of files +Compiling files: +src/prop2.kt +End of files +COMPILATION FAILED +Kotlin:ERROR:Platform declaration clash: The following declarations have the same JVM signature (getProperty()I): + fun (): kotlin.Int + fun (): kotlin.Int \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop1.kt b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop1.kt new file mode 100644 index 00000000000..14b9ceec2ef --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop1.kt @@ -0,0 +1,3 @@ +package test + +val property = 1 \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt new file mode 100644 index 00000000000..a46bb3499d4 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt @@ -0,0 +1,5 @@ +package test + +fun dummy() { + +} diff --git a/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt.new b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt.new new file mode 100644 index 00000000000..4a10a872d00 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/propertyRedeclaration/prop2.kt.new @@ -0,0 +1,7 @@ +package test + +fun dummy() { + +} + +val property = 1 \ No newline at end of file