Add JS lookup tracker tests

This commit is contained in:
Alexey Tsvetkov
2017-07-31 23:07:06 +03:00
parent 6cfd090b20
commit 82c977f2d2
35 changed files with 611 additions and 0 deletions
@@ -0,0 +1,5 @@
package bar
// To force creating bar package
/*p:bar(Dummy)*/private class Dummy
@@ -0,0 +1,11 @@
==== INITIAL BUILD ====
Compiling files:
src/bar.kt
src/constraints.kt
src/foo.kt
src/usages.kt
Exit code: COMPILATION_ERROR
Unresolved reference: vala
Unresolved reference: vara
Unresolved reference: foo
Unresolved reference: bar
@@ -0,0 +1,7 @@
package foo
import bar.*
/*p:foo*/fun <T : /*p:foo*/A?, B : /*p:foo p:bar*/Iterable</*p:foo p:bar*/Number>, C, D> test()
where C : /*p:foo p:bar*/Number, C : /*p:foo p:bar*/Comparable</*p:foo p:bar*/Number>, D : B
{}
@@ -0,0 +1,71 @@
package foo
import bar.*
/*p:foo*/class A {
val a = /*p:kotlin(Int)*/1
var b = /*p:kotlin(String)*/""
val c: /*c:foo.A c:foo.A.Companion p:foo p:bar*/String
get() = /*c:foo.A p:kotlin(String)*/b
var d: /*c:foo.A c:foo.A.Companion p:foo p:bar*/String = /*p:kotlin(String)*/"ddd"
get() = /*p:kotlin(String)*/field
set(v) { /*p:kotlin(String)*/field = /*p:kotlin(String)*/v }
fun foo() {
/*c:foo.A p:kotlin(Int)*/a
/*c:foo.A*/foo()
/*p:foo(A) p:kotlin(Int)*/this./*c:foo.A*/a
/*p:foo(A)*/this./*c:foo.A*/foo()
/*c:foo.A c:foo.A.Companion p:foo p:bar*/baz()
/*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin(Int)*/Companion./*c:foo.A.Companion*/a
/*c:foo.A c:foo.A.Companion p:foo p:bar p:kotlin(String)*/O./*c:foo.A.O*/v = /*p:kotlin(String)*/"OK"
}
class B {
val a = /*p:kotlin(Int)*/1
companion object CO {
fun bar(a: /*c:foo.A.B.CO c:foo.A.B c:foo.A c:foo.A.Companion p:foo p:bar*/Int) {}
}
}
inner class C
companion object {
val a = /*p:kotlin(Int)*/1
fun baz() {}
}
object O {
var v = /*p:kotlin(String)*/"vvv"
}
}
/*p:foo*/interface I {
var a: /*c:foo.I p:foo p:bar*/Int
fun foo()
class NI
}
/*p:foo*/object Obj : /*p:foo*/I {
override var a = /*p:kotlin(Int)*/1
override fun foo() {}
val b = /*p:kotlin(Int)*/1
fun bar(): /*c:foo.Obj p:foo*/I = /*p:kotlin(Nothing) p:foo(I)*/null as /*c:foo.Obj p:foo*/I
}
/*p:foo*/enum class E {
X,
Y;
val a = /*p:kotlin(Int)*/1
fun foo() {
/*c:foo.E p:kotlin(Int)*/a
/*c:foo.E p:foo p:bar p:kotlin(Int)*/Y./*c:foo.E*/a
/*c:foo.E*/foo()
/*c:foo.E p:foo p:bar*/X./*c:foo.E*/foo()
}
}
@@ -0,0 +1,54 @@
package foo
import bar.*
/*p:foo*/fun usages(i: /*p:foo*/I) {
/*p:foo c:foo.A.Companion(invoke) p:foo(invoke) p:kotlin(Int)*/A()./*c:foo.A*/a
/*p:foo c:foo.A.Companion(invoke) p:foo(invoke) p:kotlin(String)*/A()./*c:foo.A*/b
/*p:foo c:foo.A.Companion(invoke) p:foo(invoke) p:kotlin(String)*/A()./*c:foo.A*/c
/*p:foo c:foo.A.Companion(invoke) p:foo(invoke) p:kotlin(String)*/A()./*c:foo.A*/d = /*p:kotlin(String)*/"new value"
/*p:foo c:foo.A.Companion(invoke) p:foo(invoke)*/A()./*c:foo.A*/foo()
/*p:foo p:kotlin(Int)*/A./*c:foo.A c:foo.A.Companion c:foo.A.B.CO(invoke)*/B()./*c:foo.A.B*/a
/*p:foo*/A./*c:foo.A*/B./*c:foo.A.B c:foo.A.B.CO*/bar(1)
/*p:foo*/A./*c:foo.A*/B./*c:foo.A.B*/CO./*c:foo.A.B.CO*/bar(1)
/*p:foo c:foo.A(Companion)*/A
/*p:foo p:kotlin(Int)*/A./*c:foo.A.Companion c:foo.A*/a
/*p:foo*/A./*c:foo.A c:foo.A.Companion*/baz()
/*p:foo c:foo.A(Companion)*/A./*c:foo.A.Companion c:foo.A*/Companion
/*p:foo*/A./*c:foo.A*/Companion./*c:foo.A.Companion*/baz()
/*p:foo c:foo.A(O)*/A./*c:foo.A.Companion c:foo.A*/O
/*p:foo p:kotlin(String)*/A./*c:foo.A*/O./*c:foo.A.O*/v = /*p:kotlin(String)*/"OK"
/*p:foo*/A./*c:foo.A.Companion c:foo.A p:foo p:bar*/vala
/*p:foo*/A./*c:foo.A c:foo.A.Companion p:foo p:bar*/vara()
/*p:foo(I) p:kotlin(Int)*/i./*c:foo.I*/a = /*p:kotlin(Int)*/2
/*p:foo p:kotlin(Int)*/Obj./*c:foo.Obj*/a
/*p:foo*/Obj./*c:foo.Obj*/foo()
var ii: /*p:foo*/I = /*p:foo*/Obj
/*p:foo(I) p:kotlin(Int)*/ii./*c:foo.I*/a
/*p:foo(I)*/ii./*c:foo.I*/foo()
/*p:foo p:kotlin(Int)*/Obj./*c:foo.Obj*/b
val iii = /*p:foo p:foo(I)*/Obj./*c:foo.Obj*/bar()
/*p:foo(I)*/iii./*c:foo.I*/foo()
/*p:foo p:bar*/E./*c:foo.E*/X
/*p:foo p:bar p:kotlin(Int)*/E./*c:foo.E*/X./*c:foo.E*/a
/*p:foo p:bar*/E./*c:foo.E*/Y./*c:foo.E*/foo()
/*p:foo p:bar p:kotlin(Array)*/E./*c:foo.E*/values()
/*p:foo p:bar*/E./*c:foo.E*/valueOf(/*p:kotlin(String)*/"")
/*p:foo p:bar*/E./*c:foo.E*/foo
/*p:foo p:bar*/E./*c:foo.E*/bar()
}
/*p:foo*/fun classifiers(
a: /*p:foo*/A,
ab: /*p:foo*/A./*c:foo.A*/B,
ac: /*p:foo*/A./*c:foo.A*/C,
abCo: /*p:foo*/A./*c:foo.A*/B./*c:foo.A.B*/CO,
aCompanion: /*p:foo*/A./*c:foo.A*/Companion,
aO: /*p:foo*/A./*c:foo.A*/O,
i: /*p:foo*/I,
ni: /*p:foo*/I./*c:foo.I*/NI,
obj: /*p:foo*/Obj,
e: /*p:foo*/E
) {}