[Jps IC] Extra tests for symbol resolution in Kotlin IC

^KT-65429


Merge-request: IJ-MR-125243
Merged-by: Evgenii Mazhukin <evgenii.mazhukin@jetbrains.com>

GitOrigin-RevId: c1ce3b32cfbcbf4bfd3e5402c9c2816fa60775f9
This commit is contained in:
Evgenii Mazhukin
2024-02-02 20:07:23 +00:00
committed by intellij-monorepo-bot
parent 8a06083230
commit b4f44db922
28 changed files with 241 additions and 0 deletions
@@ -0,0 +1,33 @@
================ Step #1 =================
Cleaning output files:
out/production/module/B.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/B.kt
End of files
Exit code: OK
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Cleaning output files:
out/production/module/B.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/B.kt
// usage.kt should be recompiled
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,7 @@
fun usage() {
val b = B()
b.apply {
foo()
}
}
@@ -0,0 +1,33 @@
================ Step #1 =================
Cleaning output files:
out/production/module/A.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/A.kt
End of files
Exit code: OK
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Cleaning output files:
out/production/module/A.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/A.kt
// usage.kt should be recompiled
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,7 @@
fun usage() {
val b = B()
b.apply {
foo()
}
}
@@ -0,0 +1,4 @@
package a
class A {
}
@@ -0,0 +1,23 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/a/A.class
End of files
Cleaning output files:
out/production/module/c/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Compiling files:
src/A.kt
// usage.kt should be recompiled
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package b
fun A(defaultArgMakesCallUnambigousForSomeReason: Boolean = true) = 2
@@ -0,0 +1,3 @@
package a
val irrelevant = 2 // just to keep package "a" existing when A.kt is removed
@@ -0,0 +1,7 @@
package c
import a.*
import b.*
fun usage() {
A()
}
@@ -0,0 +1,5 @@
class A {
operator fun invoke() = 1
}
@@ -0,0 +1,5 @@
class A {
operator fun invoke() = 2
}
@@ -0,0 +1,33 @@
================ Step #1 =================
Cleaning output files:
out/production/module/A.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/A.kt
End of files
Exit code: OK
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
================ Step #2 =================
Cleaning output files:
out/production/module/A.class
out/production/module/META-INF/module.kotlin_module
End of files
Compiling files:
src/A.kt
// usage.kt should be recompiled
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,6 @@
fun usage() {
val foo = A()
foo()
}
@@ -2968,6 +2968,41 @@ public class IncrementalK2JvmJpsTestGenerated extends AbstractIncrementalK2JvmJp
}
}
@TestMetadata("resolution")
@TestDataPath(".")
@RunWith(JUnit3RunnerWithInners.class)
public static class ResolutionTests extends AbstractIncrementalK2JvmJpsTest {
@Override
protected void setUp() {
super.setUp();
setUpTests();
}
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
}
@TestMetadata("classOverFun")
public void testClassShadowsFunction() throws Exception {
runTest("resolution/classOverFun");
}
@TestMetadata("addMethodDirectly_implicitThis")
public void testAddMethodDirectly() throws Exception {
runTest("resolution/addMethodDirectly_implicitThis");
}
@TestMetadata("addMethodToParent_implicitThis")
public void testAddMethodToParent() throws Exception {
runTest("resolution/addMethodToParent_implicitThis");
}
@TestMetadata("invokeOverFun")
public void testInvokeShadowsFunction() throws Exception {
runTest("resolution/invokeOverFun");
}
}
@TestMetadata("multiModule/withJavaUsedInKotlin")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)