K2 IC: refactor and optimize lookup tracking
- encapsulate semantic more into helpers - allow lazy scopes iteration - simplify reporting code in tower resolver - fix some inconsistencies and wrong lookups - remove redundant lookup recordings - remove lookup scopes for non-star imports The commit is a refactoring and doesn't change the behaviour of neither IC nor CRI. Changes in the lookups are mostly due to the previous obviously wrong lookups (see changed test data).
This commit is contained in:
committed by
Space Team
parent
fe4e0e9c2e
commit
a823bfd600
+1
-1
@@ -8,7 +8,7 @@ import bar.*
|
||||
/*p:foo p:foo.A(c)*/A().c
|
||||
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||
/*p:foo p:foo.A(foo)*/A().foo()
|
||||
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||
/*p:foo p:foo.A.B(a)*/A.B().a
|
||||
/*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)*/A.B.CO.bar(1)
|
||||
/*p:foo*/A
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import bar.*
|
||||
/*p:foo p:foo.A(c)*/A().c
|
||||
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||
/*p:foo p:foo.A(foo)*/A().foo()
|
||||
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||
/*p:foo p:foo.A.B(a)*/A.B().a
|
||||
/*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)*/A.B.CO.bar(1)
|
||||
/*p:foo*/A
|
||||
|
||||
+13
-13
@@ -3,28 +3,28 @@ package foo.bar
|
||||
/*p:kotlin.reflect(KProperty)*/import kotlin.reflect.KProperty
|
||||
|
||||
/*p:foo.bar*/class D1 {
|
||||
operator fun getValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>) = 1
|
||||
operator fun getValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>) = 1
|
||||
}
|
||||
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D1.setValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>, v: /*p:foo.bar p:kotlin.reflect*/Int) {}
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D1.setValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>, v: /*p:foo.bar*/Int) {}
|
||||
|
||||
/*p:foo.bar(D2)*/open class D2 {
|
||||
operator fun setValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>, v: /*p:foo.bar p:kotlin.reflect*/Int) {}
|
||||
operator fun setValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>, v: /*p:foo.bar*/Int) {}
|
||||
}
|
||||
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D2.getValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>) = 1
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D2.provideDelegate(p: /*p:foo.bar p:kotlin.reflect*/Any?, k: /*p:foo.bar p:kotlin.reflect*/Any) = this
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D2.getValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>) = 1
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D2.provideDelegate(p: /*p:foo.bar*/Any?, k: /*p:foo.bar*/Any) = this
|
||||
|
||||
/*p:foo.bar*/class D3 : /*p:foo.bar p:kotlin.reflect*/D2() {
|
||||
operator fun provideDelegate(p: /*p:foo.bar p:kotlin.reflect*/Any?, k: /*p:foo.bar p:kotlin.reflect*/Any) = this
|
||||
/*p:foo.bar*/class D3 : /*p:foo.bar*/D2() {
|
||||
operator fun provideDelegate(p: /*p:foo.bar*/Any?, k: /*p:foo.bar*/Any) = this
|
||||
}
|
||||
|
||||
|
||||
/*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.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/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(KProperty0)*/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(KMutableProperty0)*/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.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.reflect p:kotlin.reflect(KMutableProperty0) 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(KProperty0)*/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(KMutableProperty0)*/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.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.reflect p:kotlin.reflect(KMutableProperty0) 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(KProperty0)*/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(KMutableProperty0)*/D3()
|
||||
|
||||
+1
-1
@@ -12,5 +12,5 @@ package foo.bar
|
||||
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)*/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)*/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)*/na);
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,11 +5,11 @@ package foo
|
||||
/*p:foo*/fun <T> identity(): (/*p:foo*/T) -> /*p:foo*/T = null as (/*p:foo*/T) -> /*p:foo*/T
|
||||
|
||||
/*p:foo*/fun <T> compute(f: () -> /*p:foo*/T) {
|
||||
val result = /*p:kotlin(Function0) p:kotlin.Function0(invoke) p:kotlin.Function0<T>(invoke)*/f()
|
||||
val result = /*p:kotlin(Function0) p:kotlin.Function0(invoke)*/f()
|
||||
}
|
||||
|
||||
/*p:foo*/class Bar<T>(val t: /*p:foo*/T) {
|
||||
init {
|
||||
val a = /*p:foo.Bar p:foo.Bar<T>*/t
|
||||
val a = /*p:foo.Bar*/t
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ import bar.*
|
||||
}
|
||||
|
||||
localFun()
|
||||
/*p:IOT(localExtFun)*/1.localExtFun()
|
||||
1.localExtFun()
|
||||
|
||||
val c = LocalC()
|
||||
c.a
|
||||
|
||||
+8
-8
@@ -3,15 +3,15 @@ package foo
|
||||
import bar.*
|
||||
/*p:baz(C)*/import baz.C
|
||||
|
||||
/*p:foo*/val a = /*p:bar p:baz p:foo*/A()
|
||||
/*p:foo*/var b: /*p:bar p:baz p:foo*/baz.B = /*p:bar p:baz p:baz(B) p:foo*/baz.B()
|
||||
/*p:foo*/val a = /*p:bar p:foo*/A()
|
||||
/*p:foo*/var b: /*p:bar p:foo*/baz.B = /*p:bar p:baz(B) p:foo*/baz.B()
|
||||
|
||||
/*p:foo*/fun function(p: /*p:bar p:baz p:foo*/B): /*p:bar p:baz p:foo*/B {
|
||||
/*p:baz p:foo*/a
|
||||
return /*p:bar p:baz p:foo*/B()
|
||||
/*p:foo*/fun function(p: /*p:bar p:foo*/B): /*p:bar p:foo*/B {
|
||||
/*p:foo*/a
|
||||
return /*p:bar p:foo*/B()
|
||||
}
|
||||
|
||||
/*p:foo*/fun /*p:bar p:baz p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:bar p:baz p:foo*/Array</*p:bar p:baz p:foo*/B>, e: /*p:bar p:baz p:foo*/MyEnum, c: /**???*//*p:bar p:baz p:foo*/C): /*p:bar p:baz p:foo*/MyInterface {
|
||||
/*p:bar p:baz p:foo p:foo.MyClass*/b
|
||||
return /*p:bar p:baz p:foo p:foo.MyClass*/MyClass()
|
||||
/*p:foo*/fun /*p:bar p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:bar p:foo*/Array</*p:bar p:foo*/B>, e: /*p:bar p:foo*/MyEnum, c: /**???*//*p:bar p:foo*/C): /*p:bar p:foo*/MyInterface {
|
||||
/*p:bar p:foo p:foo.MyClass*/b
|
||||
return /*p:bar p:foo p:foo.MyClass*/MyClass()
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package foo
|
||||
/*p:bar(C)*/import bar.C
|
||||
/*p:bar(SAMInterface)*/import bar.SAMInterface
|
||||
|
||||
/*p:foo*/fun foo(c: /*p:bar p:foo*/C) {
|
||||
/*p:bar(foo) p:bar.C(foo) p:foo(foo)*/c.foo()
|
||||
/*p:bar(SAMInterface) p:bar.C(foo) p:bar/SAMInterface(<SAM-CONSTRUCTOR>)*/c.foo /*p:kotlin(Function1)*/{ }
|
||||
/*p:foo*/fun foo(c: /*p:foo*/C) {
|
||||
/*p:bar.C(foo) p:foo(foo)*/c.foo()
|
||||
/*p:bar(SAMInterface) p:bar.C(foo) p:bar.SAMInterface(<SAM-CONSTRUCTOR>)*/c.foo /*p:kotlin(Function1)*/{ }
|
||||
|
||||
/*p:bar p:bar(bar) p:bar.C(bar) p:foo p:foo(bar)*/C.bar()
|
||||
/*p:bar p:bar(SAMInterface) p:bar.C(bar) p:bar/SAMInterface(<SAM-CONSTRUCTOR>) p:foo*/C.bar /*p:kotlin(Function1)*/{}
|
||||
/*p:bar.C(bar) p:foo p:foo(bar)*/C.bar()
|
||||
/*p:bar(SAMInterface) p:bar.C(bar) p:bar.SAMInterface(<SAM-CONSTRUCTOR>) p:foo*/C.bar /*p:kotlin(Function1)*/{}
|
||||
|
||||
/*p:bar p:foo*/SAMInterface()
|
||||
/*p:bar*/SAMInterface /*p:kotlin(Function1)*/{}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import bar.*
|
||||
/*p:foo p:foo.A(c)*/A().c
|
||||
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||
/*p:foo p:foo.A(foo)*/A().foo()
|
||||
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||
/*p:foo p:foo.A.B(a)*/A.B().a
|
||||
/*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)*/A.B.CO.bar(1)
|
||||
/*p:foo*/A
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import bar.*
|
||||
/*p:foo p:foo.A(c)*/A().c
|
||||
/*p:foo p:foo.A(d)*/A().d = "new value"
|
||||
/*p:foo p:foo.A(foo)*/A().foo()
|
||||
/*p:foo p:foo(B) p:foo.A.B(a)*/A.B().a
|
||||
/*p:foo p:foo.A.B(a)*/A.B().a
|
||||
/*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)*/A.B.CO.bar(1)
|
||||
/*p:foo*/A
|
||||
|
||||
+13
-13
@@ -3,28 +3,28 @@ package foo.bar
|
||||
/*p:kotlin.reflect(KProperty)*/import kotlin.reflect.KProperty
|
||||
|
||||
/*p:foo.bar*/class D1 {
|
||||
operator fun getValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>) = 1
|
||||
operator fun getValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>) = 1
|
||||
}
|
||||
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D1.setValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>, v: /*p:foo.bar p:kotlin.reflect*/Int) {}
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D1.setValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>, v: /*p:foo.bar*/Int) {}
|
||||
|
||||
/*p:foo.bar(D2)*/open class D2 {
|
||||
operator fun setValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>, v: /*p:foo.bar p:kotlin.reflect*/Int) {}
|
||||
operator fun setValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>, v: /*p:foo.bar*/Int) {}
|
||||
}
|
||||
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D2.getValue(t: /*p:foo.bar p:kotlin.reflect*/Any?, p: /*p:foo.bar p:kotlin.reflect*/KProperty<*>) = 1
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar p:kotlin.reflect*/D2.provideDelegate(p: /*p:foo.bar p:kotlin.reflect*/Any?, k: /*p:foo.bar p:kotlin.reflect*/Any) = this
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D2.getValue(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/KProperty<*>) = 1
|
||||
/*p:foo.bar*/operator fun /*p:foo.bar*/D2.provideDelegate(p: /*p:foo.bar*/Any?, k: /*p:foo.bar*/Any) = this
|
||||
|
||||
/*p:foo.bar*/class D3 : /*p:foo.bar p:kotlin.reflect*/D2() {
|
||||
operator fun provideDelegate(p: /*p:foo.bar p:kotlin.reflect*/Any?, k: /*p:foo.bar p:kotlin.reflect*/Any) = this
|
||||
/*p:foo.bar*/class D3 : /*p:foo.bar*/D2() {
|
||||
operator fun provideDelegate(p: /*p:foo.bar*/Any?, k: /*p:foo.bar*/Any) = this
|
||||
}
|
||||
|
||||
|
||||
/*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.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/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(KProperty0)*/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(KMutableProperty0)*/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.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.reflect p:kotlin.reflect(KMutableProperty0) 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(KProperty0)*/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(KMutableProperty0)*/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.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.reflect p:kotlin.reflect(KMutableProperty0) 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(KProperty0)*/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(KMutableProperty0)*/D3()
|
||||
|
||||
@@ -12,5 +12,5 @@ package foo.bar
|
||||
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)*/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)*/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)*/na);
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,11 +5,11 @@ package foo
|
||||
/*p:foo*/fun <T> identity(): (/*p:foo*/T) -> /*p:foo*/T = null as (/*p:foo*/T) -> /*p:foo*/T
|
||||
|
||||
/*p:foo*/fun <T> compute(f: () -> /*p:foo*/T) {
|
||||
val result = /*p:kotlin(Function0) p:kotlin.Function0(invoke) p:kotlin.Function0<T>(invoke)*/f()
|
||||
val result = /*p:kotlin(Function0) p:kotlin.Function0(invoke)*/f()
|
||||
}
|
||||
|
||||
/*p:foo*/class Bar<T>(val t: /*p:foo*/T) {
|
||||
init {
|
||||
val a = /*p:foo.Bar p:foo.Bar<T>*/t
|
||||
val a = /*p:foo.Bar*/t
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,37 +9,37 @@ import baz.*
|
||||
/*p:bar.C(field)*/c.field
|
||||
/*p:bar.C(field)*/c.field = 2
|
||||
/*p:bar.C(func)*/c.func()
|
||||
/*p:bar(B) p:bar.C(B) p:bar.C.B(B)*/c.B()
|
||||
/*p:bar(C.B) p:bar.C(B)*/c.B()
|
||||
|
||||
/*p:bar p:bar.C(sfield) p:baz p:foo*/C.sfield
|
||||
/*p:bar p:bar.C(sfield) p:baz p:foo*/C.sfield = "new"
|
||||
/*p:bar p:bar.C(sfunc) p:baz p:foo*/C.sfunc()
|
||||
/*p:bar p:bar(S) p:bar.C(S) p:baz p:foo*/C.S()
|
||||
/*p:bar.C(sfield) p:baz p:foo*/C.sfield
|
||||
/*p:bar.C(sfield) p:baz p:foo*/C.sfield = "new"
|
||||
/*p:bar.C(sfunc) p:baz p:foo*/C.sfunc()
|
||||
/*p:bar p:bar.C(S) p:baz p:foo*/C.S()
|
||||
|
||||
// inherited from I
|
||||
/*p:bar.C(ifunc)*/c.ifunc()
|
||||
/*p:bar p:bar.C(isfield) p:baz p:foo*/C.isfield
|
||||
/*p:bar.C(isfield) p:baz p:foo*/C.isfield
|
||||
// expected error: Unresolved reference: IS
|
||||
/*p:bar p:bar(IS) p:bar.C(IS) p:baz p:baz(IS) p:foo p:foo(IS)*/C.IS()
|
||||
/*p:bar.C(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:baz p:foo*/I = c
|
||||
/*p:foo.I(ifunc)*/i.ifunc()
|
||||
|
||||
/*p:bar p:baz p:foo p:foo.I(isfield)*/I.isfield
|
||||
/*p:bar p:baz p:foo p:foo(IS) p:foo.I(IS)*/I.IS()
|
||||
/*p:baz p:foo p:foo.I(isfield)*/I.isfield
|
||||
/*p:baz p:foo p:foo.I(IS)*/I.IS()
|
||||
|
||||
/*p:bar p:baz p:baz.E(F) p:foo*/E.F
|
||||
/*p:bar p:baz p:baz.E(F) p:baz.E(field) p:foo*/E.F.field
|
||||
/*p:bar p:baz p:baz.E(S) p:baz.E(func) p:foo*/E.S.func()
|
||||
/*p:baz p:baz.E(F) p:foo*/E.F
|
||||
/*p:baz p:baz.E(F) p:baz.E(field) p:foo*/E.F.field
|
||||
/*p:baz p:baz.E(S) p:baz.E(func) p:foo*/E.S.func()
|
||||
}
|
||||
|
||||
fun classifiers(
|
||||
c: /*p:bar p:baz p:foo*/C,
|
||||
b: /*p:bar p:baz p:foo*/C.B,
|
||||
s: /*p:bar p:baz p:foo*/C.S,
|
||||
cis: /*p:bar p:baz p:foo*/C.IS,
|
||||
i: /*p:bar p:baz p:foo*/I,
|
||||
iis: /*p:bar p:baz p:foo*/I.IS,
|
||||
e: /*p:bar p:baz p:foo*/E
|
||||
c: /*p:baz p:foo*/C,
|
||||
b: /*p:baz p:foo*/C.B,
|
||||
s: /*p:baz p:foo*/C.S,
|
||||
cis: /*p:baz p:foo*/C.IS,
|
||||
i: /*p:baz p:foo*/I,
|
||||
iis: /*p:baz p:foo*/I.IS,
|
||||
e: /*p:baz p:foo*/E
|
||||
) {}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ import bar.*
|
||||
}
|
||||
|
||||
localFun()
|
||||
/*p:IOT(localExtFun)*/1.localExtFun()
|
||||
1.localExtFun()
|
||||
|
||||
val c = LocalC()
|
||||
c.a
|
||||
|
||||
+8
-8
@@ -3,15 +3,15 @@ package foo
|
||||
import bar.*
|
||||
/*p:baz(C)*/import baz.C
|
||||
|
||||
/*p:foo*/val a = /*p:bar p:baz p:foo*/A()
|
||||
/*p:foo*/var b: /*p:bar p:baz p:foo*/baz.B = /*p:bar p:baz p:baz(B) p:foo*/baz.B()
|
||||
/*p:foo*/val a = /*p:bar p:foo*/A()
|
||||
/*p:foo*/var b: /*p:bar p:foo*/baz.B = /*p:bar p:baz(B) p:foo*/baz.B()
|
||||
|
||||
/*p:foo*/fun function(p: /*p:bar p:baz p:foo*/B): /*p:bar p:baz p:foo*/B {
|
||||
/*p:baz p:foo*/a
|
||||
return /*p:bar p:baz p:foo*/B()
|
||||
/*p:foo*/fun function(p: /*p:bar p:foo*/B): /*p:bar p:foo*/B {
|
||||
/*p:foo*/a
|
||||
return /*p:bar p:foo*/B()
|
||||
}
|
||||
|
||||
/*p:foo*/fun /*p:bar p:baz p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:bar p:baz p:foo*/Array</*p:bar p:baz p:foo*/B>, e: /*p:bar p:baz p:foo*/MyEnum, c: /**???*//*p:bar p:baz p:foo*/C): /*p:bar p:baz p:foo*/MyInterface {
|
||||
/*p:bar p:baz p:foo p:foo.MyClass*/b
|
||||
return /*p:bar p:baz p:foo p:foo.MyClass*/MyClass()
|
||||
/*p:foo*/fun /*p:bar p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:bar p:foo*/Array</*p:bar p:foo*/B>, e: /*p:bar p:foo*/MyEnum, c: /*p:bar p:foo*/C): /*p:bar p:foo*/MyInterface {
|
||||
/*p:bar p:foo p:foo.MyClass*/b
|
||||
return /*p:bar p:foo p:foo.MyClass*/MyClass()
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package foo
|
||||
|
||||
/*p:<root>(JavaClass)*/import JavaClass
|
||||
|
||||
/*p:foo*/class KotlinClass : /*p:<root> p:foo*/JavaClass() {
|
||||
/*p:foo*/class KotlinClass : /*p:foo*/JavaClass() {
|
||||
override fun getFoo() = 2
|
||||
fun setFoo(i: /*p:<root> p:foo*/Int) {}
|
||||
fun setFoo(i: /*p:foo*/Int) {}
|
||||
}
|
||||
|
||||
+5
-5
@@ -4,11 +4,11 @@ package foo.bar
|
||||
/*p:foo(KotlinClass)*/import foo.KotlinClass
|
||||
|
||||
/*p:foo.bar*/fun test() {
|
||||
val j = /*p:<root> p:foo*/JavaClass()
|
||||
val k = /*p:<root> p:foo*/KotlinClass()
|
||||
val j = /*p:<root>*/JavaClass()
|
||||
val k = /*p:foo*/KotlinClass()
|
||||
|
||||
/*p:JavaClass(getFoo)*/j.getFoo()
|
||||
/*p:<root>(setFoo) p:JavaClass(setFoo) p:foo(setFoo) p:foo.bar(setFoo)*/j.setFoo(2)
|
||||
/*p:JavaClass(setFoo) p:foo.bar(setFoo)*/j.setFoo(2)
|
||||
/*p:JavaClass(foo)*/j.foo = 2
|
||||
/*p:JavaClass(foo)*/j.foo
|
||||
/*p:JavaClass(bar)*/j.bar
|
||||
@@ -16,7 +16,7 @@ package foo.bar
|
||||
/*p:JavaClass(bazBaz)*/j.bazBaz
|
||||
/*p:JavaClass(bazBaz)*/j.bazBaz = ""
|
||||
/*p:JavaClass(setBoo)*/j.setBoo(2)
|
||||
/*p:<root>(boo) p:JavaClass(boo) p:foo(boo) p:foo.bar(boo)*/j.boo = 2
|
||||
/*p:JavaClass(boo) p:foo.bar(boo)*/j.boo = 2
|
||||
/*p:foo.KotlinClass(getFoo)*/k.getFoo() // getFoo may be an inner class in JavaClass
|
||||
/*p:foo.KotlinClass(setFoo)*/k.setFoo(2)
|
||||
/*p:foo.KotlinClass(foo)*/k.foo = 2
|
||||
@@ -26,5 +26,5 @@ package foo.bar
|
||||
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz)*/k.bazBaz
|
||||
/*p:JavaClass(bazBaz) p:foo.KotlinClass(bazBaz)*/k.bazBaz = ""
|
||||
/*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:foo.KotlinClass(boo) p:foo.bar(boo)*/k.boo = 2
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user