K2 IC: filter out builtins lookups
Do not record lookups to kotlin builtins, since it is considered useless. Related to #KT-66417
This commit is contained in:
committed by
Space Team
parent
5b62558798
commit
684d0b8690
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
|
|||||||
import org.jetbrains.kotlin.fir.resolve.calls.AbstractCallInfo
|
import org.jetbrains.kotlin.fir.resolve.calls.AbstractCallInfo
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
abstract class FirLookupTrackerComponent : FirSessionComponent {
|
abstract class FirLookupTrackerComponent : FirSessionComponent {
|
||||||
@@ -48,7 +49,7 @@ fun FirLookupTrackerComponent.recordTypeResolveAsLookup(type: ConeKotlinType?, s
|
|||||||
if (source == null && fileSource == null) return // TODO: investigate all cases
|
if (source == null && fileSource == null) return // TODO: investigate all cases
|
||||||
if (type is ConeErrorType) return // TODO: investigate whether some cases should be recorded, e.g. unresolved
|
if (type is ConeErrorType) return // TODO: investigate whether some cases should be recorded, e.g. unresolved
|
||||||
type.classId?.let {
|
type.classId?.let {
|
||||||
if (!it.isLocal) {
|
if (!it.isLocal && it !in StandardClassIds.allBuiltinTypes) {
|
||||||
if (it.shortClassName.asString() != "Companion") {
|
if (it.shortClassName.asString() != "Companion") {
|
||||||
recordLookup(it.shortClassName, it.packageFqName.asString(), source, fileSource)
|
recordLookup(it.shortClassName, it.packageFqName.asString(), source, fileSource)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -243,6 +243,8 @@ object StandardClassIds {
|
|||||||
val mutableCollectionToBaseCollection: Map<ClassId, ClassId> =
|
val mutableCollectionToBaseCollection: Map<ClassId, ClassId> =
|
||||||
baseCollectionToMutableEquivalent.entries.associateBy({ it.value }) { it.key }
|
baseCollectionToMutableEquivalent.entries.associateBy({ it.value }) { it.key }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val allBuiltinTypes = primitiveTypes + unsignedTypes + this.String + this.Unit + this.Any + this.Enum
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun String.baseId() = ClassId(StandardClassIds.BASE_KOTLIN_PACKAGE, Name.identifier(this))
|
private fun String.baseId() = ClassId(StandardClassIds.BASE_KOTLIN_PACKAGE, Name.identifier(this))
|
||||||
|
|||||||
+12
-12
@@ -7,20 +7,20 @@ import bar.*
|
|||||||
var b = ""
|
var b = ""
|
||||||
|
|
||||||
val c: /*p:bar p:foo*/String
|
val c: /*p:bar p:foo*/String
|
||||||
get() = /*p:foo.A p:kotlin(String)*/b
|
get() = /*p:foo.A*/b
|
||||||
|
|
||||||
var d: /*p:bar p:foo*/String = "ddd"
|
var d: /*p:bar p:foo*/String = "ddd"
|
||||||
get() = field
|
get() = field
|
||||||
set(v) { field = v }
|
set(v) { field = v }
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
/*p:foo.A p:kotlin(Int)*/a
|
/*p:foo.A*/a
|
||||||
/*p:foo.A p:kotlin(Unit)*/foo()
|
/*p:foo.A*/foo()
|
||||||
/*p:foo.A(a) p:kotlin(Int)*/this.a
|
/*p:foo.A(a)*/this.a
|
||||||
/*p:foo.A(foo) p:kotlin(Unit)*/this.foo()
|
/*p:foo.A(foo)*/this.foo()
|
||||||
/*p:bar p:foo p:foo.A p:foo.A.Companion p:kotlin(Unit)*/baz()
|
/*p:bar p:foo p:foo.A p:foo.A.Companion*/baz()
|
||||||
/*p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a) p:kotlin(Int)*/Companion.a
|
/*p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a)*/Companion.a
|
||||||
/*p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v) p:kotlin(String)*/O.v = "OK"
|
/*p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v)*/O.v = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
class B {
|
class B {
|
||||||
@@ -63,9 +63,9 @@ import bar.*
|
|||||||
|
|
||||||
val a = 1
|
val a = 1
|
||||||
fun foo() {
|
fun foo() {
|
||||||
/*p:foo.E p:kotlin(Int)*/a
|
/*p:foo.E*/a
|
||||||
/*p:bar p:foo p:foo.E p:foo.E(a) p:kotlin(Int) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
|
/*p:bar p:foo p:foo.E p:foo.E(a) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
|
||||||
/*p:foo.E p:kotlin(Unit)*/foo()
|
/*p:foo.E*/foo()
|
||||||
/*p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin(Unit) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
|
/*p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-21
@@ -3,35 +3,35 @@ package foo
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
||||||
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
|
/*p:foo p:foo.A(a)*/A().a
|
||||||
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
|
/*p:foo p:foo.A(b)*/A().b
|
||||||
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
|
/*p:foo p:foo.A(c)*/A().c
|
||||||
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
|
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||||
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
|
/*p:foo p:foo.A(foo)*/A().foo()
|
||||||
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
|
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.bar(1)
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.CO.bar(1)
|
||||||
/*p:foo*/A
|
/*p:foo*/A
|
||||||
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
|
/*p:foo p:foo.A(a) p:foo.A.Companion(a)*/A.a
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.baz()
|
||||||
/*p:foo*/A.Companion
|
/*p:foo*/A.Companion
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.Companion.baz()
|
||||||
/*p:foo*/A.O
|
/*p:foo*/A.O
|
||||||
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
|
/*p:foo p:foo.A.O(v)*/A.O.v = "OK"
|
||||||
|
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
|
/*p:foo.I(a)*/i.a = 2
|
||||||
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
|
/*p:foo p:foo.Obj(a)*/Obj.a
|
||||||
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
|
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo)*/Obj.foo()
|
||||||
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/ii.a
|
/*p:foo.I(a)*/ii.a
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
|
/*p:foo.I(foo)*/ii.foo()
|
||||||
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
|
/*p:foo p:foo.Obj(b)*/Obj.b
|
||||||
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
|
/*p:foo.I(foo)*/iii.foo()
|
||||||
|
|
||||||
/*p:bar p:foo*/E.X
|
/*p:bar p:foo*/E.X
|
||||||
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
|
/*p:bar p:foo p:foo.E(a)*/E.X.a
|
||||||
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
|
/*p:bar p:foo p:foo.E(foo)*/E.Y.foo()
|
||||||
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
||||||
/*p:bar p:foo*/E.valueOf("")
|
/*p:bar p:foo*/E.valueOf("")
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-21
@@ -3,37 +3,37 @@ package foo
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
||||||
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
|
/*p:foo p:foo.A(a)*/A().a
|
||||||
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
|
/*p:foo p:foo.A(b)*/A().b
|
||||||
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
|
/*p:foo p:foo.A(c)*/A().c
|
||||||
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
|
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||||
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
|
/*p:foo p:foo.A(foo)*/A().foo()
|
||||||
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
|
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.bar(1)
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.CO.bar(1)
|
||||||
/*p:foo*/A
|
/*p:foo*/A
|
||||||
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
|
/*p:foo p:foo.A(a) p:foo.A.Companion(a)*/A.a
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.baz()
|
||||||
/*p:foo*/A.Companion
|
/*p:foo*/A.Companion
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.Companion.baz()
|
||||||
/*p:foo*/A.O
|
/*p:foo*/A.O
|
||||||
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
|
/*p:foo p:foo.A.O(v)*/A.O.v = "OK"
|
||||||
/*p:bar(vala) p:foo p:foo(vala) p:foo.A(vala) p:foo.A.Companion(vala)*/A.vala
|
/*p:bar(vala) p:foo p:foo(vala) p:foo.A(vala) p:foo.A.Companion(vala)*/A.vala
|
||||||
/*p:bar(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
|
/*p:bar(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
|
||||||
|
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
|
/*p:foo.I(a)*/i.a = 2
|
||||||
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
|
/*p:foo p:foo.Obj(a)*/Obj.a
|
||||||
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
|
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo)*/Obj.foo()
|
||||||
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/ii.a
|
/*p:foo.I(a)*/ii.a
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
|
/*p:foo.I(foo)*/ii.foo()
|
||||||
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
|
/*p:foo p:foo.Obj(b)*/Obj.b
|
||||||
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
|
/*p:foo.I(foo)*/iii.foo()
|
||||||
|
|
||||||
/*p:bar p:foo*/E.X
|
/*p:bar p:foo*/E.X
|
||||||
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
|
/*p:bar p:foo p:foo.E(a)*/E.X.a
|
||||||
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
|
/*p:bar p:foo p:foo.E(foo)*/E.Y.foo()
|
||||||
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
||||||
/*p:bar p:foo*/E.valueOf("")
|
/*p:bar p:foo*/E.valueOf("")
|
||||||
/*p:bar p:bar(foo) p:foo p:foo(foo)*/E.foo
|
/*p:bar p:bar(foo) p:foo p:foo(foo)*/E.foo
|
||||||
|
|||||||
+8
-8
@@ -6,13 +6,13 @@ package foo.bar
|
|||||||
na == a
|
na == a
|
||||||
na == null
|
na == null
|
||||||
|
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a > b
|
/*p:foo.bar.A(compareTo)*/a > b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a < b
|
/*p:foo.bar.A(compareTo)*/a < b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= b
|
/*p:foo.bar.A(compareTo)*/a >= b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= b
|
/*p:foo.bar.A(compareTo)*/a <= b
|
||||||
|
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a > c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a > c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a < c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a < c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a >= c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a <= c
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -20,11 +20,11 @@ package foo.bar
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*p:foo.bar*/val x1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
|
/*p:foo.bar*/val x1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
|
||||||
/*p:foo.bar*/var y1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
|
/*p:foo.bar*/var y1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
|
||||||
|
|
||||||
/*p:foo.bar*/val x2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
/*p:foo.bar*/val x2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
||||||
/*p:foo.bar*/var y2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
/*p:foo.bar*/var y2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
||||||
|
|
||||||
/*p:foo.bar*/val x3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
|
/*p:foo.bar*/val x3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
|
||||||
/*p:foo.bar*/var y3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D2(setValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
|
/*p:foo.bar*/var y3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D2(setValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
|
||||||
|
|||||||
+5
-5
@@ -10,15 +10,15 @@ package foo.bar
|
|||||||
|
|
||||||
/*p:foo.bar(A) p:foo.bar.A(plus)*/a + b
|
/*p:foo.bar(A) p:foo.bar.A(plus)*/a + b
|
||||||
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar.A(minus)*/a - b
|
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar.A(minus)*/a - b
|
||||||
/*p:foo.bar(not) p:foo.bar.A(not) p:kotlin(Unit)*/!a
|
/*p:foo.bar(not) p:foo.bar.A(not)*/!a
|
||||||
|
|
||||||
// for val
|
// for val
|
||||||
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/a *= b
|
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign)*/a *= b
|
||||||
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/a /= b
|
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign)*/a /= b
|
||||||
|
|
||||||
// for var
|
// for var
|
||||||
/*p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
|
/*p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
|
||||||
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar(minusAssign) p:foo.bar.A(minus) p:foo.bar.A(minusAssign)*/d -= b
|
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar(minusAssign) p:foo.bar.A(minus) p:foo.bar.A(minusAssign)*/d -= b
|
||||||
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/d *= b
|
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign)*/d *= b
|
||||||
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/d /= b
|
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign)*/d /= b
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -1,16 +1,16 @@
|
|||||||
package foo.bar
|
package foo.bar
|
||||||
|
|
||||||
/*p:foo.bar*/fun testOther(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int, c: /*p:foo.bar*/Any, na: /*p:foo.bar*/A?) {
|
/*p:foo.bar*/fun testOther(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int, c: /*p:foo.bar*/Any, na: /*p:foo.bar*/A?) {
|
||||||
/*p:foo.bar(set) p:foo.bar.A(set) p:kotlin(Unit)*/a[1] = /*p:foo.bar.A(get) p:kotlin(Int)*/a[2]
|
/*p:foo.bar(set) p:foo.bar.A(set)*/a[1] = /*p:foo.bar.A(get)*/a[2]
|
||||||
|
|
||||||
/*p:foo.bar.A(contains) p:kotlin(Boolean)*/b in a
|
/*p:foo.bar.A(contains)*/b in a
|
||||||
/*p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin(Boolean) p:kotlin.Boolean(not)*/"s" !in a
|
/*p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin.Boolean(not)*/"s" !in a
|
||||||
|
|
||||||
/*p:foo.bar(A) p:foo.bar.A(invoke) p:kotlin(Unit)*/a()
|
/*p:foo.bar(A) p:foo.bar.A(invoke)*/a()
|
||||||
/*p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke) p:kotlin(Unit)*/a(1)
|
/*p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke)*/a(1)
|
||||||
|
|
||||||
val (/*p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
|
val (/*p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
|
||||||
|
|
||||||
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:kotlin(Boolean)*/a);
|
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next)*/a);
|
||||||
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:foo.bar.A?(iterator) p:kotlin(Boolean)*/na);
|
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:foo.bar.A?(iterator)*/na);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -13,7 +13,7 @@ package foo
|
|||||||
/*p:foo*/fun useListOfB(b: /*p:foo*/List</*p:foo*/B>) {}
|
/*p:foo*/fun useListOfB(b: /*p:foo*/List</*p:foo*/B>) {}
|
||||||
|
|
||||||
/*p:foo*/fun testInferredType() {
|
/*p:foo*/fun testInferredType() {
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfA(/*p:foo p:foo(A) p:kotlin.collections(List)*/getListOfA())
|
/*p:foo*/useListOfA(/*p:foo p:foo(A) p:kotlin.collections(List)*/getListOfA())
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfA(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
/*p:foo*/useListOfA(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfB(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
/*p:foo*/useListOfB(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -6,6 +6,6 @@ package foo
|
|||||||
/*p:foo*/fun extensionConsumer(fn: /*p:foo*/A.()->/*p:foo*/Unit) {}
|
/*p:foo*/fun extensionConsumer(fn: /*p:foo*/A.()->/*p:foo*/Unit) {}
|
||||||
|
|
||||||
/*p:foo*/fun testLambdaParameterType() {
|
/*p:foo*/fun testLambdaParameterType() {
|
||||||
/*p:foo p:kotlin(Unit)*/lambdaConsumer /*p:foo(A) p:kotlin(Function1) p:kotlin(Unit)*/{ /*p:kotlin(Unit)*/it }
|
/*p:foo*/lambdaConsumer /*p:foo(A) p:kotlin(Function1)*/{ it }
|
||||||
/*p:foo p:kotlin(Unit)*/extensionConsumer /*p:foo(A) p:kotlin(Function1) p:kotlin(Unit)*/{ /*p:kotlin(Unit)*/this }
|
/*p:foo*/extensionConsumer /*p:foo(A) p:kotlin(Function1)*/{ this }
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-12
@@ -3,12 +3,12 @@ package local.declarations
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:local.declarations*/fun f(p: /*p:bar p:local.declarations*/Any) {
|
/*p:local.declarations*/fun f(p: /*p:bar p:local.declarations*/Any) {
|
||||||
/*p:kotlin(String) p:kotlin.Any(toString)*/p.toString()
|
/*p:kotlin.Any(toString)*/p.toString()
|
||||||
|
|
||||||
val a = 1
|
val a = 1
|
||||||
val b = a
|
val b = a
|
||||||
fun localFun() = b
|
fun localFun() = b
|
||||||
fun /*p:bar p:local.declarations*/Int.localExtFun() = /*p:kotlin(Int)*/localFun()
|
fun /*p:bar p:local.declarations*/Int.localExtFun() = localFun()
|
||||||
|
|
||||||
abstract class LocalI {
|
abstract class LocalI {
|
||||||
abstract var a: /*p:bar p:local.declarations*/Int
|
abstract var a: /*p:bar p:local.declarations*/Int
|
||||||
@@ -30,20 +30,20 @@ import bar.*
|
|||||||
fun foo(): /*p:bar p:local.declarations*/LocalI = null as /*p:bar p:local.declarations*/LocalI
|
fun foo(): /*p:bar p:local.declarations*/LocalI = null as /*p:bar p:local.declarations*/LocalI
|
||||||
}
|
}
|
||||||
|
|
||||||
/*p:kotlin(Int)*/localFun()
|
localFun()
|
||||||
/*p:IOT(localExtFun) p:kotlin(Int)*/1.localExtFun()
|
/*p:IOT(localExtFun)*/1.localExtFun()
|
||||||
|
|
||||||
val c = LocalC()
|
val c = LocalC()
|
||||||
/*p:kotlin(Int)*/c.a
|
c.a
|
||||||
/*p:kotlin(String)*/c.b
|
c.b
|
||||||
/*p:kotlin(Unit)*/c.foo()
|
c.foo()
|
||||||
/*p:kotlin(Int)*/c.bar()
|
c.bar()
|
||||||
|
|
||||||
val i: /*p:bar p:local.declarations*/LocalI = c
|
val i: /*p:bar p:local.declarations*/LocalI = c
|
||||||
/*p:kotlin(Int)*/i.a
|
i.a
|
||||||
/*p:kotlin(Unit)*/i.foo()
|
i.foo()
|
||||||
|
|
||||||
/*p:kotlin(String)*/o.a
|
o.a
|
||||||
val ii = o.foo()
|
val ii = o.foo()
|
||||||
/*p:kotlin(Int)*/ii.a
|
ii.a
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package foo
|
|||||||
/*p:bar(SAMInterface)*/import bar.SAMInterface
|
/*p:bar(SAMInterface)*/import bar.SAMInterface
|
||||||
|
|
||||||
/*p:foo*/fun foo(c: /*p:bar p:foo*/C) {
|
/*p:foo*/fun foo(c: /*p:bar p:foo*/C) {
|
||||||
/*p:bar(foo) p:bar.C(foo) p:foo(foo) p:kotlin(Unit)*/c.foo()
|
/*p:bar(foo) p:bar.C(foo) p:foo(foo)*/c.foo()
|
||||||
/*p:bar(SAMInterface) p:bar.C(foo) p:bar/SAMInterface(<SAM-CONSTRUCTOR>) p:kotlin(Unit)*/c.foo /*p:kotlin(Function1) p:kotlin(Unit)*/{ /*p:kotlin(Unit)*/}
|
/*p:bar(SAMInterface) p:bar.C(foo) p:bar/SAMInterface(<SAM-CONSTRUCTOR>)*/c.foo /*p:kotlin(Function1)*/{ }
|
||||||
|
|
||||||
/*p:bar p:bar(bar) p:foo p:foo(bar) p:kotlin(Unit)*/C.bar()
|
/*p:bar p:bar(bar) p:foo p:foo(bar)*/C.bar()
|
||||||
/*p:bar p:bar(SAMInterface) p:bar/SAMInterface(<SAM-CONSTRUCTOR>) p:foo p:kotlin(Unit)*/C.bar /*p:kotlin(Function1) p:kotlin(Unit)*/{/*p:kotlin(Unit)*/}
|
/*p:bar p:bar(SAMInterface) p:bar/SAMInterface(<SAM-CONSTRUCTOR>) p:foo*/C.bar /*p:kotlin(Function1)*/{}
|
||||||
|
|
||||||
/*p:bar p:foo*/SAMInterface()
|
/*p:bar p:foo*/SAMInterface()
|
||||||
/*p:bar*/SAMInterface /*p:kotlin(Function1) p:kotlin(Unit)*/{/*p:kotlin(Unit)*/}
|
/*p:bar*/SAMInterface /*p:kotlin(Function1)*/{}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-12
@@ -7,20 +7,20 @@ import bar.*
|
|||||||
var b = ""
|
var b = ""
|
||||||
|
|
||||||
val c: /*p:bar p:foo*/String
|
val c: /*p:bar p:foo*/String
|
||||||
get() = /*p:foo.A p:kotlin(String)*/b
|
get() = /*p:foo.A*/b
|
||||||
|
|
||||||
var d: /*p:bar p:foo*/String = "ddd"
|
var d: /*p:bar p:foo*/String = "ddd"
|
||||||
get() = field
|
get() = field
|
||||||
set(v) { field = v }
|
set(v) { field = v }
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
/*p:foo.A p:kotlin(Int)*/a
|
/*p:foo.A*/a
|
||||||
/*p:foo.A p:kotlin(Unit)*/foo()
|
/*p:foo.A*/foo()
|
||||||
/*p:foo.A(a) p:kotlin(Int)*/this.a
|
/*p:foo.A(a)*/this.a
|
||||||
/*p:foo.A(foo) p:kotlin(Unit)*/this.foo()
|
/*p:foo.A(foo)*/this.foo()
|
||||||
/*p:bar p:foo p:foo.A p:foo.A.Companion p:kotlin(Unit)*/baz()
|
/*p:bar p:foo p:foo.A p:foo.A.Companion*/baz()
|
||||||
/*p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a) p:kotlin(Int)*/Companion.a
|
/*p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a)*/Companion.a
|
||||||
/*p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v) p:kotlin(String)*/O.v = "OK"
|
/*p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v)*/O.v = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
class B {
|
class B {
|
||||||
@@ -63,9 +63,9 @@ import bar.*
|
|||||||
|
|
||||||
val a = 1
|
val a = 1
|
||||||
fun foo() {
|
fun foo() {
|
||||||
/*p:foo.E p:kotlin(Int)*/a
|
/*p:foo.E*/a
|
||||||
/*p:bar p:foo p:foo.E p:foo.E(a) p:kotlin(Int) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
|
/*p:bar p:foo p:foo.E p:foo.E(a) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
|
||||||
/*p:foo.E p:kotlin(Unit)*/foo()
|
/*p:foo.E*/foo()
|
||||||
/*p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin(Unit) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
|
/*p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-21
@@ -3,35 +3,35 @@ package foo
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
||||||
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
|
/*p:foo p:foo.A(a)*/A().a
|
||||||
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
|
/*p:foo p:foo.A(b)*/A().b
|
||||||
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
|
/*p:foo p:foo.A(c)*/A().c
|
||||||
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
|
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||||
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
|
/*p:foo p:foo.A(foo)*/A().foo()
|
||||||
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
|
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.bar(1)
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.CO.bar(1)
|
||||||
/*p:foo*/A
|
/*p:foo*/A
|
||||||
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
|
/*p:foo p:foo.A(a) p:foo.A.Companion(a)*/A.a
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.baz()
|
||||||
/*p:foo*/A.Companion
|
/*p:foo*/A.Companion
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.Companion.baz()
|
||||||
/*p:foo*/A.O
|
/*p:foo*/A.O
|
||||||
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
|
/*p:foo p:foo.A.O(v)*/A.O.v = "OK"
|
||||||
|
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
|
/*p:foo.I(a)*/i.a = 2
|
||||||
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
|
/*p:foo p:foo.Obj(a)*/Obj.a
|
||||||
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
|
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo)*/Obj.foo()
|
||||||
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/ii.a
|
/*p:foo.I(a)*/ii.a
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
|
/*p:foo.I(foo)*/ii.foo()
|
||||||
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
|
/*p:foo p:foo.Obj(b)*/Obj.b
|
||||||
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
|
/*p:foo.I(foo)*/iii.foo()
|
||||||
|
|
||||||
/*p:bar p:foo*/E.X
|
/*p:bar p:foo*/E.X
|
||||||
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
|
/*p:bar p:foo p:foo.E(a)*/E.X.a
|
||||||
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
|
/*p:bar p:foo p:foo.E(foo)*/E.Y.foo()
|
||||||
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
||||||
/*p:bar p:foo*/E.valueOf("")
|
/*p:bar p:foo*/E.valueOf("")
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-21
@@ -3,37 +3,37 @@ package foo
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
||||||
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
|
/*p:foo p:foo.A(a)*/A().a
|
||||||
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
|
/*p:foo p:foo.A(b)*/A().b
|
||||||
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
|
/*p:foo p:foo.A(c)*/A().c
|
||||||
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
|
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||||
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
|
/*p:foo p:foo.A(foo)*/A().foo()
|
||||||
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
|
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.bar(1)
|
||||||
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
|
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar)*/A.B.CO.bar(1)
|
||||||
/*p:foo*/A
|
/*p:foo*/A
|
||||||
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
|
/*p:foo p:foo.A(a) p:foo.A.Companion(a)*/A.a
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.baz()
|
||||||
/*p:foo*/A.Companion
|
/*p:foo*/A.Companion
|
||||||
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
|
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz)*/A.Companion.baz()
|
||||||
/*p:foo*/A.O
|
/*p:foo*/A.O
|
||||||
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
|
/*p:foo p:foo.A.O(v)*/A.O.v = "OK"
|
||||||
/*p:bar(vala) p:foo p:foo(vala) p:foo.A(vala) p:foo.A.Companion(vala)*/A.vala
|
/*p:bar(vala) p:foo p:foo(vala) p:foo.A(vala) p:foo.A.Companion(vala)*/A.vala
|
||||||
/*p:bar(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
|
/*p:bar(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
|
||||||
|
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
|
/*p:foo.I(a)*/i.a = 2
|
||||||
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
|
/*p:foo p:foo.Obj(a)*/Obj.a
|
||||||
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
|
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo)*/Obj.foo()
|
||||||
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
||||||
/*p:foo.I(a) p:kotlin(Int)*/ii.a
|
/*p:foo.I(a)*/ii.a
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
|
/*p:foo.I(foo)*/ii.foo()
|
||||||
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
|
/*p:foo p:foo.Obj(b)*/Obj.b
|
||||||
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
|
||||||
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
|
/*p:foo.I(foo)*/iii.foo()
|
||||||
|
|
||||||
/*p:bar p:foo*/E.X
|
/*p:bar p:foo*/E.X
|
||||||
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
|
/*p:bar p:foo p:foo.E(a)*/E.X.a
|
||||||
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
|
/*p:bar p:foo p:foo.E(foo)*/E.Y.foo()
|
||||||
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
/*p:bar p:foo p:kotlin(Array)*/E.values()
|
||||||
/*p:bar p:foo*/E.valueOf("")
|
/*p:bar p:foo*/E.valueOf("")
|
||||||
/*p:bar p:bar(foo) p:foo p:foo(foo)*/E.foo
|
/*p:bar p:bar(foo) p:foo p:foo(foo)*/E.foo
|
||||||
|
|||||||
+8
-8
@@ -6,13 +6,13 @@ package foo.bar
|
|||||||
na == a
|
na == a
|
||||||
na == null
|
na == null
|
||||||
|
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a > b
|
/*p:foo.bar.A(compareTo)*/a > b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a < b
|
/*p:foo.bar.A(compareTo)*/a < b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= b
|
/*p:foo.bar.A(compareTo)*/a >= b
|
||||||
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= b
|
/*p:foo.bar.A(compareTo)*/a <= b
|
||||||
|
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a > c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a > c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a < c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a < c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a >= c
|
||||||
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= c
|
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo)*/a <= c
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -20,11 +20,11 @@ package foo.bar
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*p:foo.bar*/val x1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
|
/*p:foo.bar*/val x1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
|
||||||
/*p:foo.bar*/var y1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
|
/*p:foo.bar*/var y1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
|
||||||
|
|
||||||
/*p:foo.bar*/val x2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
/*p:foo.bar*/val x2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
||||||
/*p:foo.bar*/var y2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
/*p:foo.bar*/var y2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
|
||||||
|
|
||||||
/*p:foo.bar*/val x3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
|
/*p:foo.bar*/val x3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
|
||||||
/*p:foo.bar*/var y3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D2(setValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
|
/*p:foo.bar*/var y3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D2(setValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
|
||||||
|
|||||||
+5
-5
@@ -10,15 +10,15 @@ package foo.bar
|
|||||||
|
|
||||||
/*p:foo.bar(A) p:foo.bar.A(plus)*/a + b
|
/*p:foo.bar(A) p:foo.bar.A(plus)*/a + b
|
||||||
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar.A(minus)*/a - b
|
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar.A(minus)*/a - b
|
||||||
/*p:foo.bar(not) p:foo.bar.A(not) p:kotlin(Unit)*/!a
|
/*p:foo.bar(not) p:foo.bar.A(not)*/!a
|
||||||
|
|
||||||
// for val
|
// for val
|
||||||
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/a *= b
|
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign)*/a *= b
|
||||||
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/a /= b
|
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign)*/a /= b
|
||||||
|
|
||||||
// for var
|
// for var
|
||||||
/*p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
|
/*p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
|
||||||
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar(minusAssign) p:foo.bar.A(minus) p:foo.bar.A(minusAssign)*/d -= b
|
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar(minusAssign) p:foo.bar.A(minus) p:foo.bar.A(minusAssign)*/d -= b
|
||||||
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/d *= b
|
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign)*/d *= b
|
||||||
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/d /= b
|
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign)*/d /= b
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
package foo.bar
|
package foo.bar
|
||||||
|
|
||||||
/*p:foo.bar*/fun testOther(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int, c: /*p:foo.bar*/Any, na: /*p:foo.bar*/A?) {
|
/*p:foo.bar*/fun testOther(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int, c: /*p:foo.bar*/Any, na: /*p:foo.bar*/A?) {
|
||||||
/*p:foo.bar(set) p:foo.bar.A(set) p:kotlin(Unit)*/a[1] = /*p:foo.bar.A(get) p:kotlin(Int)*/a[2]
|
/*p:foo.bar(set) p:foo.bar.A(set)*/a[1] = /*p:foo.bar.A(get)*/a[2]
|
||||||
|
|
||||||
/*p:foo.bar.A(contains) p:kotlin(Boolean)*/b in a
|
/*p:foo.bar.A(contains)*/b in a
|
||||||
/*p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin(Boolean) p:kotlin.Boolean(not)*/"s" !in a
|
/*p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin.Boolean(not)*/"s" !in a
|
||||||
|
|
||||||
/*p:foo.bar(A) p:foo.bar.A(invoke) p:kotlin(Unit)*/a()
|
/*p:foo.bar(A) p:foo.bar.A(invoke)*/a()
|
||||||
/*p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke) p:kotlin(Unit)*/a(1)
|
/*p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke)*/a(1)
|
||||||
|
|
||||||
val (/*p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
|
val (/*p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
|
||||||
|
|
||||||
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:kotlin(Boolean)*/a);
|
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next)*/a);
|
||||||
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:foo.bar.A?(iterator) p:kotlin(Boolean)*/na);
|
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:foo.bar.A?(iterator)*/na);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -13,7 +13,7 @@ package foo
|
|||||||
/*p:foo*/fun useListOfB(b: /*p:foo*/List</*p:foo*/B>) {}
|
/*p:foo*/fun useListOfB(b: /*p:foo*/List</*p:foo*/B>) {}
|
||||||
|
|
||||||
/*p:foo*/fun testInferredType() {
|
/*p:foo*/fun testInferredType() {
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfA(/*p:foo p:foo(A) p:kotlin.collections(List)*/getListOfA())
|
/*p:foo*/useListOfA(/*p:foo p:foo(A) p:kotlin.collections(List)*/getListOfA())
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfA(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
/*p:foo*/useListOfA(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
||||||
/*p:foo p:kotlin(Unit)*/useListOfB(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
/*p:foo*/useListOfB(/*p:foo p:foo(B) p:kotlin.collections(List)*/getListOfB())
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -6,6 +6,6 @@ package foo
|
|||||||
/*p:foo*/fun extensionConsumer(fn: /*p:foo*/A.()->/*p:foo*/Unit) {}
|
/*p:foo*/fun extensionConsumer(fn: /*p:foo*/A.()->/*p:foo*/Unit) {}
|
||||||
|
|
||||||
/*p:foo*/fun testLambdaParameterType() {
|
/*p:foo*/fun testLambdaParameterType() {
|
||||||
/*p:foo p:kotlin(Unit)*/lambdaConsumer /*p:foo(A) p:kotlin(Function1) p:kotlin(Unit)*/{ /*p:kotlin(Unit)*/it }
|
/*p:foo*/lambdaConsumer /*p:foo(A) p:kotlin(Function1)*/{ it }
|
||||||
/*p:foo p:kotlin(Unit)*/extensionConsumer /*p:foo(A) p:kotlin(Function1) p:kotlin(Unit)*/{ /*p:kotlin(Unit)*/this }
|
/*p:foo*/extensionConsumer /*p:foo(A) p:kotlin(Function1)*/{ this }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,32 +6,32 @@ import baz.*
|
|||||||
/*p:foo*/fun usages() {
|
/*p:foo*/fun usages() {
|
||||||
val c = /*p:bar*/C()
|
val c = /*p:bar*/C()
|
||||||
|
|
||||||
/*p:bar.C(field) p:kotlin(Int)*/c.field
|
/*p:bar.C(field)*/c.field
|
||||||
/*p:bar.C(field) p:kotlin(Int)*/c.field = 2
|
/*p:bar.C(field)*/c.field = 2
|
||||||
/*p:bar.C(func) p:kotlin(Unit)*/c.func()
|
/*p:bar.C(func)*/c.func()
|
||||||
/*p:bar(B) p:bar.C(B) p:bar.C.B(B)*/c.B()
|
/*p:bar(B) p:bar.C(B) p:bar.C.B(B)*/c.B()
|
||||||
|
|
||||||
/*p:bar p:baz p:foo*/C.sfield
|
/*p:bar p:baz p:foo*/C.sfield
|
||||||
/*p:bar p:baz p:foo*/C.sfield = "new"
|
/*p:bar p:baz p:foo*/C.sfield = "new"
|
||||||
/*p:bar p:baz p:foo p:kotlin(Unit)*/C.sfunc()
|
/*p:bar p:baz p:foo*/C.sfunc()
|
||||||
/*p:bar p:bar(S) p:baz p:foo*/C.S()
|
/*p:bar p:bar(S) p:baz p:foo*/C.S()
|
||||||
|
|
||||||
// inherited from I
|
// inherited from I
|
||||||
/*p:bar.C(ifunc) p:kotlin(Unit)*/c.ifunc()
|
/*p:bar.C(ifunc)*/c.ifunc()
|
||||||
/*p:bar p:baz p:foo*/C.isfield
|
/*p:bar p:baz p:foo*/C.isfield
|
||||||
// expected error: Unresolved reference: IS
|
// expected error: Unresolved reference: IS
|
||||||
/*p:bar p:bar(IS) p:baz p:baz(IS) p:foo p:foo(IS)*/C.IS()
|
/*p:bar p:bar(IS) p:baz p:baz(IS) p:foo p:foo(IS)*/C.IS()
|
||||||
|
|
||||||
|
|
||||||
val i: /*p:bar p:baz p:foo*/I = c
|
val i: /*p:bar p:baz p:foo*/I = c
|
||||||
/*p:foo.I(ifunc) p:kotlin(Unit)*/i.ifunc()
|
/*p:foo.I(ifunc)*/i.ifunc()
|
||||||
|
|
||||||
/*p:bar p:baz p:foo*/I.isfield
|
/*p:bar p:baz p:foo*/I.isfield
|
||||||
/*p:bar p:baz p:foo p:foo(IS)*/I.IS()
|
/*p:bar p:baz p:foo p:foo(IS)*/I.IS()
|
||||||
|
|
||||||
/*p:bar p:baz p:foo*/E.F
|
/*p:bar p:baz p:foo*/E.F
|
||||||
/*p:bar p:baz p:baz.E(field) p:foo p:kotlin(Int)*/E.F.field
|
/*p:bar p:baz p:baz.E(field) p:foo*/E.F.field
|
||||||
/*p:bar p:baz p:baz.E(func) p:foo p:kotlin(Unit)*/E.S.func()
|
/*p:bar p:baz p:baz.E(func) p:foo*/E.S.func()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun classifiers(
|
fun classifiers(
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
package foo
|
package foo
|
||||||
|
|
||||||
/*p:foo*/fun useAChild(a: /*p:foo*/AChild) {
|
/*p:foo*/fun useAChild(a: /*p:foo*/AChild) {
|
||||||
/*p:foo.A(f) p:foo.AChild(f) p:kotlin(Unit)*/a.f()
|
/*p:foo.A(f) p:foo.AChild(f)*/a.f()
|
||||||
}
|
}
|
||||||
+12
-12
@@ -3,12 +3,12 @@ package local.declarations
|
|||||||
import bar.*
|
import bar.*
|
||||||
|
|
||||||
/*p:local.declarations*/fun f(p: /*p:bar p:local.declarations*/Any) {
|
/*p:local.declarations*/fun f(p: /*p:bar p:local.declarations*/Any) {
|
||||||
/*p:kotlin(String) p:kotlin.Any(toString)*/p.toString()
|
/*p:kotlin.Any(toString)*/p.toString()
|
||||||
|
|
||||||
val a = 1
|
val a = 1
|
||||||
val b = a
|
val b = a
|
||||||
fun localFun() = b
|
fun localFun() = b
|
||||||
fun /*p:bar p:local.declarations*/Int.localExtFun() = /*p:kotlin(Int)*/localFun()
|
fun /*p:bar p:local.declarations*/Int.localExtFun() = localFun()
|
||||||
|
|
||||||
abstract class LocalI {
|
abstract class LocalI {
|
||||||
abstract var a: /*p:bar p:local.declarations*/Int
|
abstract var a: /*p:bar p:local.declarations*/Int
|
||||||
@@ -30,20 +30,20 @@ import bar.*
|
|||||||
fun foo(): /*p:bar p:local.declarations*/LocalI = null as /*p:bar p:local.declarations*/LocalI
|
fun foo(): /*p:bar p:local.declarations*/LocalI = null as /*p:bar p:local.declarations*/LocalI
|
||||||
}
|
}
|
||||||
|
|
||||||
/*p:kotlin(Int)*/localFun()
|
localFun()
|
||||||
/*p:IOT(localExtFun) p:kotlin(Int)*/1.localExtFun()
|
/*p:IOT(localExtFun)*/1.localExtFun()
|
||||||
|
|
||||||
val c = LocalC()
|
val c = LocalC()
|
||||||
/*p:kotlin(Int)*/c.a
|
c.a
|
||||||
/*p:kotlin(String)*/c.b
|
c.b
|
||||||
/*p:kotlin(Unit)*/c.foo()
|
c.foo()
|
||||||
/*p:kotlin(Int)*/c.bar()
|
c.bar()
|
||||||
|
|
||||||
val i: /*p:bar p:local.declarations*/LocalI = c
|
val i: /*p:bar p:local.declarations*/LocalI = c
|
||||||
/*p:kotlin(Int)*/i.a
|
i.a
|
||||||
/*p:kotlin(Unit)*/i.foo()
|
i.foo()
|
||||||
|
|
||||||
/*p:kotlin(String)*/o.a
|
o.a
|
||||||
val ii = o.foo()
|
val ii = o.foo()
|
||||||
/*p:kotlin(Int)*/ii.a
|
ii.a
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-13
@@ -7,24 +7,24 @@ package foo.bar
|
|||||||
val j = /*p:<root> p:foo*/JavaClass()
|
val j = /*p:<root> p:foo*/JavaClass()
|
||||||
val k = /*p:<root> p:foo*/KotlinClass()
|
val k = /*p:<root> p:foo*/KotlinClass()
|
||||||
|
|
||||||
/*p:JavaClass(getFoo) p:kotlin(Int)*/j.getFoo()
|
/*p:JavaClass(getFoo)*/j.getFoo()
|
||||||
/*p:<root>(setFoo) p:JavaClass(setFoo) p:foo(setFoo) p:foo.bar(setFoo)*/j.setFoo(2)
|
/*p:<root>(setFoo) p:JavaClass(setFoo) p:foo(setFoo) p:foo.bar(setFoo)*/j.setFoo(2)
|
||||||
/*p:JavaClass(foo) p:kotlin(Int)*/j.foo = 2
|
/*p:JavaClass(foo)*/j.foo = 2
|
||||||
/*p:JavaClass(foo) p:kotlin(Int)*/j.foo
|
/*p:JavaClass(foo)*/j.foo
|
||||||
/*p:JavaClass(bar)*/j.bar
|
/*p:JavaClass(bar)*/j.bar
|
||||||
/*p:JavaClass(bar)*/j.bar = ""
|
/*p:JavaClass(bar)*/j.bar = ""
|
||||||
/*p:JavaClass(bazBaz) p:kotlin(Int)*/j.bazBaz
|
/*p:JavaClass(bazBaz)*/j.bazBaz
|
||||||
/*p:JavaClass(bazBaz) p:kotlin(Int)*/j.bazBaz = ""
|
/*p:JavaClass(bazBaz)*/j.bazBaz = ""
|
||||||
/*p:JavaClass(setBoo) p:kotlin(Unit)*/j.setBoo(2)
|
/*p:JavaClass(setBoo)*/j.setBoo(2)
|
||||||
/*p:<root>(boo) p:JavaClass(boo) p:foo(boo) p:foo.bar(boo)*/j.boo = 2
|
/*p:<root>(boo) p:JavaClass(boo) p:foo(boo) p:foo.bar(boo)*/j.boo = 2
|
||||||
/*p:foo.KotlinClass(getFoo) p:kotlin(Int)*/k.getFoo() // getFoo may be an inner class in JavaClass
|
/*p:foo.KotlinClass(getFoo)*/k.getFoo() // getFoo may be an inner class in JavaClass
|
||||||
/*p:foo.KotlinClass(setFoo) p:kotlin(Unit)*/k.setFoo(2)
|
/*p:foo.KotlinClass(setFoo)*/k.setFoo(2)
|
||||||
/*p:foo.KotlinClass(foo) p:kotlin(Int)*/k.foo = 2
|
/*p:foo.KotlinClass(foo)*/k.foo = 2
|
||||||
/*p:foo.KotlinClass(foo) p:kotlin(Int)*/k.foo
|
/*p:foo.KotlinClass(foo)*/k.foo
|
||||||
/*p:JavaClass(bar) p:foo.KotlinClass(bar)*/k.bar
|
/*p:JavaClass(bar) p:foo.KotlinClass(bar)*/k.bar
|
||||||
/*p:JavaClass(bar) p:foo.KotlinClass(bar)*/k.bar = ""
|
/*p:JavaClass(bar) p:foo.KotlinClass(bar)*/k.bar = ""
|
||||||
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz) p:kotlin(Int)*/k.bazBaz
|
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz)*/k.bazBaz
|
||||||
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz) p:kotlin(Int)*/k.bazBaz = ""
|
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz)*/k.bazBaz = ""
|
||||||
/*p:JavaClass(setBoo) p:foo.KotlinClass(setBoo) p:kotlin(Unit)*/k.setBoo(2)
|
/*p:JavaClass(setBoo) p:foo.KotlinClass(setBoo)*/k.setBoo(2)
|
||||||
/*p:<root>(boo) p:foo(boo) p:foo.KotlinClass(boo) p:foo.bar(boo)*/k.boo = 2
|
/*p:<root>(boo) p:foo(boo) p:foo.KotlinClass(boo) p:foo.bar(boo)*/k.boo = 2
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
package top
|
package top
|
||||||
|
|
||||||
/*p:top*/fun typeAliasUsage(a: /*p:top*/TypeAlias) {
|
/*p:top*/fun typeAliasUsage(a: /*p:top*/TypeAlias) {
|
||||||
/*p:kotlin(Int) p:top.Foo(prop) p:top.TypeAlias(prop)*/a.prop
|
/*p:top.Foo(prop) p:top.TypeAlias(prop)*/a.prop
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user