Add tests for lookups to declarations form Java
Original commit: 4cb5398c04
This commit is contained in:
@@ -392,7 +392,9 @@ public abstract class AbstractIncrementalJpsTest(
|
||||
|
||||
fun prepareSources(relativePathToSrc: String, filePrefix: String) {
|
||||
val srcDir = File(workDir, relativePathToSrc)
|
||||
FileUtil.copyDir(testDataDir, srcDir) { it.name.startsWith(filePrefix) && (it.name.endsWith(".kt") || it.name.endsWith(".java")) }
|
||||
FileUtil.copyDir(testDataDir, srcDir) {
|
||||
it.isDirectory || it.name.startsWith(filePrefix) && (it.name.endsWith(".kt") || it.name.endsWith(".java"))
|
||||
}
|
||||
|
||||
srcDir.walk().forEach { mapWorkingToOriginalFile[it] = File(testDataDir, filePrefix + it.name) }
|
||||
|
||||
|
||||
@@ -47,6 +47,12 @@ public class LookupTrackerTestGenerated extends AbstractLookupTrackerTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("java")
|
||||
public void testJava() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/lookupTracker/java/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("localDeclarations")
|
||||
public void testLocalDeclarations() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/lookupTracker/localDeclarations/");
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package bar;
|
||||
|
||||
import foo.I;
|
||||
|
||||
public class C implements I {
|
||||
@Override
|
||||
public void ifunc() {}
|
||||
|
||||
public int field = 1;
|
||||
public void func() {}
|
||||
public class B {}
|
||||
|
||||
public static String sfield = "";
|
||||
public static void sfunc() {}
|
||||
public static class S {}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package baz;
|
||||
|
||||
public enum E {
|
||||
F,
|
||||
S;
|
||||
|
||||
public int field = 1;
|
||||
public void func() {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo;
|
||||
|
||||
public interface I {
|
||||
void ifunc();
|
||||
|
||||
static String isfield = "";
|
||||
static class IS {}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
Compiling files:
|
||||
src/usages.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
Unresolved reference: IS
|
||||
@@ -0,0 +1,35 @@
|
||||
package foo
|
||||
|
||||
import bar./*p:bar*/C
|
||||
import baz.*
|
||||
|
||||
/*p:foo*/fun usages() {
|
||||
val c = /*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C()
|
||||
|
||||
c./*c:bar.C*/field
|
||||
c./*c:bar.C*/field = 2
|
||||
c./*c:bar.C*/func()
|
||||
c./*c:bar.C*/B()
|
||||
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/sfield
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/sfield = "new"
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/sfunc()
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/S()
|
||||
|
||||
// inherited from I
|
||||
c./*c:bar.C*/ifunc()
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/isfield
|
||||
// expected error: Unresolved reference: IS
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/C./*c:bar.C*/IS()
|
||||
|
||||
|
||||
val i: /*p:foo*/I = c
|
||||
i./*c:foo.I*/ifunc()
|
||||
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/I./*c:foo.I*/isfield
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/I./*c:foo.I*/IS()
|
||||
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/F
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/F./*c:baz.E*/field
|
||||
/*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/S./*c:baz.E*/func()
|
||||
}
|
||||
Reference in New Issue
Block a user