[AA] Refactoring: Move Java reference resolve tests to java subfolder

This commit is contained in:
Marco Pennekamp
2023-12-19 14:26:15 +01:00
committed by Space Team
parent 5d3738c804
commit c611f1923f
25 changed files with 310 additions and 240 deletions
@@ -0,0 +1,4 @@
@java.lang.annotation.Retention(va<caret>lue = java.lang.annotation.RetentionPolicy.RUNTIME)
annotation class Anno()
@@ -0,0 +1,2 @@
Resolved to:
0: value: java.lang.annotation.RetentionPolicy
@@ -0,0 +1,14 @@
// FILE: main.kt
class A {
fun foo() {
<caret>JavaClass("")
}
}
// FILE: JavaClass.java
import org.jetbrains.annotations.NotNull;
public class JavaClass {
public JavaClass(@NotNull String s) {
}
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in JavaClass) constructor(s: kotlin.String)
@@ -0,0 +1,3 @@
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.R<caret>UNTIME)
annotation class Anno()
@@ -0,0 +1,2 @@
Resolved to:
0: (in java.lang.annotation.RetentionPolicy) RUNTIME
@@ -0,0 +1,4 @@
import java.lang.annotation.RetentionPolicy
val values = RetentionPolicy.val<caret>ueOf("")
@@ -0,0 +1,2 @@
Resolved to:
0: (in java.lang.annotation.RetentionPolicy) fun valueOf(value: kotlin.String): java.lang.annotation.RetentionPolicy
@@ -0,0 +1,2 @@
Resolved to:
0: (in java.util) open class HashSet<E : kotlin.Any!> : java.util.AbstractSet<E!>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableSet<E>
@@ -0,0 +1 @@
val h: java.util.<caret>HashSet<Int>? = null
@@ -0,0 +1,2 @@
Resolved to:
0: (in java.util) open class HashSet<E : kotlin.Any!> : java.util.AbstractSet<(E & kotlin.Any..E?)>(), kotlin.Cloneable, java.io.Serializable, kotlin.collections.MutableSet<E>
@@ -0,0 +1,20 @@
// FILE: pkg/Foo.java
package pkg;
public class Foo {
public static void bar() {
System.out.println("Foo.bar()");
}
}
// FILE: main.kt
import pkg.Foo
fun box() {
// NB: if we put bar<caret>(), LPAR, value arguments, function call, containing function and file will be visited in order.
// Among them, only function call can be converted to [KtReference], and the corresponding form is [KtInvokeFunctionReference],
// whose resolution picks implicit invoke() only, hence failed. That is expected for reference resolution with both FE1.0 and FIR.
// In reality, i.e., in IDE, users will click the part of function call "name", which results in simple name reference instead.
Foo.ba<caret>r()
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in pkg.Foo) open fun bar()
@@ -0,0 +1,16 @@
// FILE: main.kt
fun some() {
val jClass = JavaTest.SomeJavaClass()
jClass.<caret>setListener {}
}
// FILE: JavaTest.java
public class JavaTest {
public interface SAMInterface {
void onEvent(int event);
}
public static class SomeJavaClass {
public void setListener(SAMInterface listener) {}
}
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in JavaTest.SomeJavaClass) open fun setListener(listener: JavaTest.SAMInterface!)
@@ -0,0 +1,3 @@
Resolved to:
0: (in JavaClass) open fun setSomething(value: kotlin.Int)
1: (in JavaClass) var JavaClass.something: kotlin.Int
@@ -0,0 +1,19 @@
// FILE: main.kt
fun JavaClass.foo(javaClass: JavaClass) {
print(javaClass.<caret>something)
javaClass.<caret>something = 1
javaClass.<caret>something += 1
javaClass.<caret>something++
--javaClass.<caret>something
<caret>something++
(<caret>something)++
(<caret>something) = 1
(javaClass.<caret>something) = 1
}
// FILE: JavaClass.java
public class JavaClass {
public int getSomething() { return 1; }
public void setSomething(int value) {}
}
@@ -0,0 +1,2 @@
Resolved to:
0: (in JavaClass) open var something: kotlin.Int