IC: take into account added and removed classes when calculate affected names

Original commit: 51c6abdbed
This commit is contained in:
Zalim Bashorov
2016-03-24 20:59:30 +03:00
parent e18a666440
commit 6e4d8d1670
141 changed files with 1646 additions and 5 deletions
@@ -65,12 +65,12 @@ abstract class AbstractIncrementalJpsTest(
private val allowNoBuildLogFileInTestData: Boolean = false
) : JpsBuildTestCase() {
companion object {
val COMPILATION_FAILED = "COMPILATION FAILED"
private val COMPILATION_FAILED = "COMPILATION FAILED"
// change to "/tmp" or anything when default is too long (for easier debugging)
val TEMP_DIRECTORY_TO_USE = File(FileUtilRt.getTempDirectory())
private val TEMP_DIRECTORY_TO_USE = File(FileUtilRt.getTempDirectory())
val DEBUG_LOGGING_ENABLED = System.getProperty("debug.logging.enabled") == "true"
private val DEBUG_LOGGING_ENABLED = System.getProperty("debug.logging.enabled") == "true"
}
protected open val enableExperimentalIncrementalCompilation = false
@@ -61,12 +61,30 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("classAdded")
public void testClassAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/classAdded/");
doTest(fileName);
}
@TestMetadata("classRemoved")
public void testClassRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/classRemoved/");
doTest(fileName);
}
@TestMetadata("constantValueChanged")
public void testConstantValueChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/constantValueChanged/");
doTest(fileName);
}
@TestMetadata("copyFileToAnotherModule")
public void testCopyFileToAnotherModule() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/copyFileToAnotherModule/");
doTest(fileName);
}
@TestMetadata("defaultParameterAdded")
public void testDefaultParameterAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterAdded/");
@@ -175,6 +193,18 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("addClass")
public void testAddClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/addClass/");
doTest(fileName);
}
@TestMetadata("addFileWithFunctionOverload")
public void testAddFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/addFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("allConstants")
public void testAllConstants() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/allConstants/");
@@ -743,6 +773,48 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("removeAndRestoreCompanion")
public void testRemoveAndRestoreCompanion() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeAndRestoreCompanion/");
doTest(fileName);
}
@TestMetadata("removeAndRestoreCompanionWithImplicitUsages")
public void testRemoveAndRestoreCompanionWithImplicitUsages() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeAndRestoreCompanionWithImplicitUsages/");
doTest(fileName);
}
@TestMetadata("removeClass")
public void testRemoveClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeClass/");
doTest(fileName);
}
@TestMetadata("removeClassInDefaultPackage")
public void testRemoveClassInDefaultPackage() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeClassInDefaultPackage/");
doTest(fileName);
}
@TestMetadata("removeFileWithFunctionOverload")
public void testRemoveFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("renameClass")
public void testRenameClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/renameClass/");
doTest(fileName);
}
@TestMetadata("renameFileWithFunctionOverload")
public void testRenameFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/renameFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("returnTypeChanged")
public void testReturnTypeChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
@@ -1164,6 +1236,18 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("classRemoved")
public void testClassRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classRemoved/");
doTest(fileName);
}
@TestMetadata("classRemovedAndRestored")
public void testClassRemovedAndRestored() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classRemovedAndRestored/");
doTest(fileName);
}
@TestMetadata("classToPackageFacade")
public void testClassToPackageFacade() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/classToPackageFacade/");
@@ -61,12 +61,30 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("classAdded")
public void testClassAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/classAdded/");
doTest(fileName);
}
@TestMetadata("classRemoved")
public void testClassRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/classRemoved/");
doTest(fileName);
}
@TestMetadata("constantValueChanged")
public void testConstantValueChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/constantValueChanged/");
doTest(fileName);
}
@TestMetadata("copyFileToAnotherModule")
public void testCopyFileToAnotherModule() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/copyFileToAnotherModule/");
doTest(fileName);
}
@TestMetadata("defaultParameterAdded")
public void testDefaultParameterAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterAdded/");
@@ -175,6 +193,18 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("addClass")
public void testAddClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/addClass/");
doTest(fileName);
}
@TestMetadata("addFileWithFunctionOverload")
public void testAddFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/addFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("allConstants")
public void testAllConstants() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/allConstants/");
@@ -743,6 +773,48 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("removeAndRestoreCompanion")
public void testRemoveAndRestoreCompanion() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeAndRestoreCompanion/");
doTest(fileName);
}
@TestMetadata("removeAndRestoreCompanionWithImplicitUsages")
public void testRemoveAndRestoreCompanionWithImplicitUsages() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeAndRestoreCompanionWithImplicitUsages/");
doTest(fileName);
}
@TestMetadata("removeClass")
public void testRemoveClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeClass/");
doTest(fileName);
}
@TestMetadata("removeClassInDefaultPackage")
public void testRemoveClassInDefaultPackage() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeClassInDefaultPackage/");
doTest(fileName);
}
@TestMetadata("removeFileWithFunctionOverload")
public void testRemoveFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/removeFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("renameClass")
public void testRenameClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/renameClass/");
doTest(fileName);
}
@TestMetadata("renameFileWithFunctionOverload")
public void testRenameFileWithFunctionOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/renameFileWithFunctionOverload/");
doTest(fileName);
}
@TestMetadata("returnTypeChanged")
public void testReturnTypeChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
@@ -0,0 +1,5 @@
package foo
open class A {
fun foo() {}
}
@@ -0,0 +1,5 @@
package foo
open class B : A() {
fun bar() {}
}
@@ -0,0 +1,5 @@
package foo
open class B {
fun bar() {}
}
@@ -0,0 +1,5 @@
package foo
class C : B() {
fun baz() {}
}
@@ -0,0 +1,63 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
End of files
Marked as dirty by Kotlin:
src/B.kt
src/createA.kt
src/useAfoo.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/B.class
out/production/module/use/CreateAKt.class
out/production/module/use/UseAfooKt.class
End of files
Compiling files:
src/B.kt
src/createA.kt
src/useAfoo.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: A
Unresolved reference: A
================ Step #2 =================
Compiling files:
src/B.kt
src/createA.kt
src/funA.kt
src/useAfoo.kt
End of files
Marked as dirty by Kotlin:
src/C.kt
src/createB.kt
src/createC.kt
src/useBbar.kt
src/useCbaz.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/C.class
out/production/module/use/CreateBKt.class
out/production/module/use/CreateCKt.class
out/production/module/use/UseBbarKt.class
out/production/module/use/UseCbazKt.class
End of files
Compiling files:
src/C.kt
src/createB.kt
src/createC.kt
src/useBbar.kt
src/useCbaz.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,5 @@
package use
import foo.*
fun createA() = A()
@@ -0,0 +1,5 @@
package use
import foo.*
fun createB() = B()
@@ -0,0 +1,5 @@
package use
import foo.*
fun createC() = C()
@@ -0,0 +1,7 @@
package foo
fun A(a: Int = 1) = AnotherA()
class AnotherA {
fun foo() {}
}
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().foo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useBbar() {
createB().bar()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useCbaz() {
createC().baz()
}
@@ -0,0 +1,5 @@
package foo
open class A {
fun foo() {}
}
@@ -0,0 +1,5 @@
package foo
open class A {
fun foo() {}
}
@@ -0,0 +1,5 @@
package foo
class B : A() {
fun bar() {}
}
@@ -0,0 +1,64 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
End of files
Marked as dirty by Kotlin:
src/B.kt
src/createA.kt
src/useAfoo.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/B.class
out/production/module/use/CreateAKt.class
out/production/module/use/UseAfooKt.class
End of files
Compiling files:
src/B.kt
src/createA.kt
src/useAfoo.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: A
Unresolved reference: A
================ Step #2 =================
Compiling files:
src/A.kt
src/B.kt
src/createA.kt
src/useAfoo.kt
End of files
Marked as dirty by Kotlin:
src/createB.kt
src/useBbar.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/use/CreateBKt.class
out/production/module/use/UseBbarKt.class
End of files
Compiling files:
src/createB.kt
src/useBbar.kt
End of files
Exit code: OK
------------------------------------------
================ Step #3 =================
Compiling files:
src/failCompilation.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Expecting a top level declaration
@@ -0,0 +1,5 @@
package use
import foo.*
fun createA() = A()
@@ -0,0 +1,5 @@
package use
import foo.*
fun createB() = B()
@@ -0,0 +1,3 @@
// TODO remove this file after IDEA-154389 will be fixed
invalid_code
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().foo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useBbar() {
createB().bar()
}
@@ -9,6 +9,7 @@ Compiling files:
src/APartG.kt
End of files
Marked as dirty by Kotlin:
src/AChild.kt
src/useF.kt
src/useG.kt
Exit code: ADDITIONAL_PASS_REQUIRED
@@ -0,0 +1,53 @@
================ Step #1 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Compiling files:
module2/src/A.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/foo/B.class
out/production/module2/other/OtherKt.class
out/production/module2/use/CreateAKt.class
out/production/module2/use/CreateBKt.class
out/production/module2/use/UseAfooKt.class
out/production/module2/use/UseBbarKt.class
End of files
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/other.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: foo
================ Step #2 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Cleaning output files:
out/production/module2/foo/A.class
End of files
Compiling files:
module2/src/A.kt
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/other.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,2 @@
module1->
module2->module1
@@ -0,0 +1,63 @@
================ Step #1 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Compiling files:
module2/src/A.kt
End of files
Marked as dirty by Kotlin:
module1/src/A.kt
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/foo/B.class
out/production/module2/use/CreateAKt.class
out/production/module2/use/CreateBKt.class
out/production/module2/use/UseAfooKt.class
out/production/module2/use/UseBbarKt.class
End of files
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: foo
================ Step #2 =================
Building module1
Cleaning output files:
out/production/module1/foo/A.class
End of files
Compiling files:
module1/src/A.kt
End of files
Exit code: OK
------------------------------------------
Building module2
Cleaning output files:
out/production/module2/foo/A.class
End of files
Compiling files:
module2/src/A.kt
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,5 @@
package foo
open class A {
fun foo() {}
}
@@ -0,0 +1,5 @@
package foo
open class A {
fun boo() {}
}
@@ -0,0 +1,5 @@
package foo
class B : A() {
fun bar() {}
}
@@ -0,0 +1,5 @@
package use
import foo.*
fun createA() = A()
@@ -0,0 +1,5 @@
package use
import foo.*
fun createB() = B()
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().foo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().boo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useBbar() {
createB().bar()
}
@@ -0,0 +1,65 @@
================ Step #1 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Cleaning output files:
out/production/module2/foo/A.class
End of files
Building module2
Compiling files:
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/foo/B.class
out/production/module2/other/OtherKt.class
out/production/module2/use/CreateAKt.class
out/production/module2/use/CreateBKt.class
out/production/module2/use/UseAfooKt.class
out/production/module2/use/UseBbarKt.class
End of files
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/other.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: boo
================ Step #2 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/createB.kt
module2/src/other.kt
module2/src/useAfoo.kt
module2/src/useBbar.kt
End of files
Exit code: OK
------------------------------------------
================ Step #3 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Compiling files:
module2/src/failCompilation.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Expecting a top level declaration
@@ -0,0 +1,2 @@
module1->
module2->module1
@@ -0,0 +1,73 @@
================ Step #1 =================
Building module1
Cleaning output files:
out/production/module1/foo/A.class
End of files
Compiling files:
module1/src/A.kt
End of files
Exit code: OK
------------------------------------------
Cleaning output files:
out/production/module2/foo/A.class
End of files
Building module2
Compiling files:
End of files
Marked as dirty by Kotlin:
module1/src/A.kt
module2/src/B.kt
module2/src/createA.kt
module2/src/useAfoo.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/foo/B.class
out/production/module2/use/CreateAKt.class
out/production/module2/use/UseAfooKt.class
End of files
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/useAfoo.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: boo
================ Step #2 =================
Building module1
Cleaning output files:
out/production/module1/foo/A.class
End of files
Compiling files:
module1/src/A.kt
End of files
Exit code: OK
------------------------------------------
Building module2
Compiling files:
module2/src/B.kt
module2/src/createA.kt
module2/src/useAfoo.kt
End of files
Exit code: OK
------------------------------------------
================ Step #3 =================
Building module1
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Compiling files:
module2/src/failCompilation.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Expecting a top level declaration
@@ -0,0 +1,5 @@
package foo
open class A {
fun foo() {}
}
@@ -0,0 +1,5 @@
package foo
open class A {
fun boo() {}
}
@@ -0,0 +1,5 @@
package foo
class B : A() {
fun bar() {}
}
@@ -0,0 +1,5 @@
package use
import foo.*
fun createA() = A()
@@ -0,0 +1,5 @@
package use
import foo.*
fun createB() = B()
@@ -0,0 +1,3 @@
// TODO remove this file after IDEA-154390 will be fixed
invalid_code
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().boo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
createA().foo()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useBbar() {
createB().bar()
}
@@ -0,0 +1,41 @@
================ Step #1 =================
Building module1
Compiling files:
module1/src/b.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/a/A.class
out/production/module1/a/AKt.class
End of files
Compiling files:
module1/src/a.kt
End of files
Exit code: OK
------------------------------------------
Building module2
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/usage/UseClassBKt.class
out/production/module2/usage/UseFunBKt.class
End of files
Compiling files:
module2/src/useClassB.kt
module2/src/useFunB.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Building module1
Compiling files:
module1/src/failCompilation.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Expecting a top level declaration
@@ -0,0 +1,2 @@
module1->
module2->module1
@@ -0,0 +1,40 @@
================ Step #1 =================
Building module1
Compiling files:
module1/src/b.kt
End of files
Marked as dirty by Kotlin:
module2/src/b.kt
module2/src/useClassB.kt
module2/src/useFunB.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Exit code: NOTHING_DONE
------------------------------------------
Building module2
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/b/B.class
out/production/module2/b/BKt.class
out/production/module2/usage/UseClassBKt.class
out/production/module2/usage/UseFunBKt.class
End of files
Compiling files:
module2/src/b.kt
module2/src/useClassB.kt
module2/src/useFunB.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Building module1
Compiling files:
module1/src/failCompilation.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Expecting a top level declaration
@@ -0,0 +1,6 @@
package a
class A
fun a() {
}
@@ -0,0 +1,6 @@
package b
class B
fun b() {
}
@@ -0,0 +1,3 @@
// TODO remove this file after IDEA-154394 will be fixed
invalid_code
@@ -0,0 +1,6 @@
package b
class B
fun b() {
}
@@ -0,0 +1,5 @@
package usage
fun useClassA() {
a.A()
}
@@ -0,0 +1,5 @@
package usage
fun useClassB() {
b.B()
}
@@ -0,0 +1,5 @@
package usage
fun useFunA() {
a.a()
}
@@ -0,0 +1,5 @@
package usage
fun useFunB() {
b.b()
}
@@ -4,7 +4,13 @@ Building module1
Compiling files:
module1/src/b.kt
End of files
Exit code: OK
Marked as dirty by Kotlin:
module2/src/b.kt
module2/src/useClassB.kt
module2/src/useFunB.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Exit code: NOTHING_DONE
------------------------------------------
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
@@ -0,0 +1,3 @@
package foo
class A
@@ -0,0 +1,20 @@
================ Step #1 =================
Compiling files:
src/A.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/FunAKt.class
out/production/module/other/OtherKt.class
out/production/module/use/UseAKt.class
End of files
Compiling files:
src/funA.kt
src/other.kt
src/useA.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,21 @@
================ Step #1 =================
Compiling files:
src/A.kt
End of files
Marked as dirty by Kotlin:
src/funA.kt
src/useA.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/FunAKt.class
out/production/module/use/UseAKt.class
End of files
Compiling files:
src/funA.kt
src/useA.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package foo
fun A(a: Int = 1){}
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useA() {
A()
}
@@ -0,0 +1,20 @@
================ Step #1 =================
Compiling files:
src/foo2.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/Foo1Kt.class
out/production/module/other/OtherKt.class
out/production/module/use/UseKt.class
End of files
Compiling files:
src/foo1.kt
src/other.kt
src/use.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,21 @@
================ Step #1 =================
Compiling files:
src/foo2.kt
End of files
Marked as dirty by Kotlin:
src/foo1.kt
src/use.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/foo/Foo1Kt.class
out/production/module/use/UseKt.class
End of files
Compiling files:
src/foo1.kt
src/use.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package foo
fun f(a: Any) {}
@@ -0,0 +1,3 @@
package foo
fun f(a: Int) {}
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useA() {
f(1)
}
@@ -9,6 +9,7 @@ Compiling files:
src/bar/a.kt
End of files
Marked as dirty by Kotlin:
src/useClass.kt
src/useFun.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
@@ -0,0 +1,8 @@
package foo
class A {
companion object {
val bar = 1
fun foo() {}
}
}
@@ -0,0 +1,4 @@
package foo
class A {
}
@@ -0,0 +1,8 @@
package foo
class A {
companion object {
val bar = 1
fun foo() {}
}
}
@@ -0,0 +1,44 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A$Companion.class
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/other/OtherKt.class
out/production/module/use/UseAKt.class
out/production/module/use/UseAbarKt.class
out/production/module/use/UseAfooKt.class
End of files
Compiling files:
src/other.kt
src/useA.kt
src/useAbar.kt
src/useAfoo.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: bar
Unresolved reference: foo
================ Step #2 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/other.kt
src/useA.kt
src/useAbar.kt
src/useAfoo.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,41 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A$Companion.class
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
End of files
Marked as dirty by Kotlin:
src/useAbar.kt
src/useAfoo.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/use/UseAbarKt.class
out/production/module/use/UseAfooKt.class
End of files
Compiling files:
src/useAbar.kt
src/useAfoo.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: bar
Unresolved reference: foo
================ Step #2 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/useAbar.kt
src/useAfoo.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useA() {
A()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAbar() {
A.bar
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAfoo() {
A.foo()
}
@@ -0,0 +1,8 @@
package foo
class A {
companion object {
val bar = 1
fun foo() {}
}
}
@@ -0,0 +1,8 @@
package foo
class A {
companion object {
val bar = 1
fun foo() {}
}
}
@@ -0,0 +1,53 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A$Companion.class
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/other/OtherKt.class
out/production/module/use/GetACompanionKt.class
out/production/module/use/GetACompanionShortKt.class
out/production/module/use/UseACompanionImplicitlyKt.class
out/production/module/use/UseACompanionShortImplicitlyKt.class
out/production/module/use/UseAbarWithImplicitReceiverKt.class
out/production/module/use/UseAfooWithImplicitReceiverKt.class
End of files
Compiling files:
src/getACompanion.kt
src/getACompanionShort.kt
src/other.kt
src/useACompanionImplicitly.kt
src/useACompanionShortImplicitly.kt
src/useAbarWithImplicitReceiver.kt
src/useAfooWithImplicitReceiver.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: Companion
Please specify constructor invocation; classifier 'A' does not have a companion object
================ Step #2 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/getACompanion.kt
src/getACompanionShort.kt
src/other.kt
src/useACompanionImplicitly.kt
src/useACompanionShortImplicitly.kt
src/useAbarWithImplicitReceiver.kt
src/useAfooWithImplicitReceiver.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,57 @@
================ Step #1 =================
Cleaning output files:
out/production/module/foo/A$Companion.class
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
End of files
Marked as dirty by Kotlin:
src/getACompanion.kt
src/getACompanionShort.kt
src/useACompanionImplicitly.kt
src/useACompanionShortImplicitly.kt
src/useAbarWithImplicitReceiver.kt
src/useAfooWithImplicitReceiver.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/use/GetACompanionKt.class
out/production/module/use/GetACompanionShortKt.class
out/production/module/use/UseACompanionImplicitlyKt.class
out/production/module/use/UseACompanionShortImplicitlyKt.class
out/production/module/use/UseAbarWithImplicitReceiverKt.class
out/production/module/use/UseAfooWithImplicitReceiverKt.class
End of files
Compiling files:
src/getACompanion.kt
src/getACompanionShort.kt
src/useACompanionImplicitly.kt
src/useACompanionShortImplicitly.kt
src/useAbarWithImplicitReceiver.kt
src/useAfooWithImplicitReceiver.kt
End of files
Exit code: ABORT
------------------------------------------
COMPILATION FAILED
Unresolved reference: Companion
Please specify constructor invocation; classifier 'A' does not have a companion object
================ Step #2 =================
Cleaning output files:
out/production/module/foo/A.class
End of files
Compiling files:
src/A.kt
src/getACompanion.kt
src/getACompanionShort.kt
src/useACompanionImplicitly.kt
src/useACompanionShortImplicitly.kt
src/useAbarWithImplicitReceiver.kt
src/useAfooWithImplicitReceiver.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,5 @@
package use
import foo.*
fun getACompanion() = A.Companion
@@ -0,0 +1,5 @@
package use
import foo.*
fun getACompanionShort() = A
@@ -0,0 +1,3 @@
package other
fun f() {}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useACompanionImplicitly() {
getACompanion()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useACompanionShortImplicitly() {
getACompanionShort()
}
@@ -0,0 +1,7 @@
package use
import foo.*
fun useAbarWithImplicitReceiver() {
getACompanionShort().bar
}

Some files were not shown because too many files have changed in this diff Show More