a823bfd600
- 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).
55 lines
1.9 KiB
Plaintext
Vendored
55 lines
1.9 KiB
Plaintext
Vendored
package foo
|
|
|
|
import bar.*
|
|
|
|
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
|
|
/*p:foo p:foo.A(a)*/A().a
|
|
/*p:foo p:foo.A(b)*/A().b
|
|
/*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.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
|
|
/*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)*/A.baz()
|
|
/*p:foo*/A.Companion
|
|
/*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 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(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
|
|
|
|
/*p:foo.I(a)*/i.a = 2
|
|
/*p:foo p:foo.Obj(a)*/Obj.a
|
|
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo)*/Obj.foo()
|
|
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
|
|
/*p:foo.I(a)*/ii.a
|
|
/*p:foo.I(foo)*/ii.foo()
|
|
/*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()
|
|
/*p:foo.I(foo)*/iii.foo()
|
|
|
|
/*p:bar p:foo p:foo.E(X)*/E.X
|
|
/*p:bar p:foo p:foo.E(X) p:foo.E(a)*/E.X.a
|
|
/*p:bar p:foo p:foo.E(Y) p:foo.E(foo)*/E.Y.foo()
|
|
/*p:bar p:foo p:foo.E(values) p:kotlin(Array)*/E.values()
|
|
/*p:bar p:foo p:foo.E(valueOf)*/E.valueOf("")
|
|
/*p:bar p:bar(foo) p:foo p:foo(foo) p:foo.E(foo)*/E.foo
|
|
/*p:bar p:bar(bar) p:foo p:foo(bar) p:foo.E(bar)*/E.bar()
|
|
}
|
|
|
|
/*p:foo*/fun classifiers(
|
|
a: /*p:bar p:foo*/A,
|
|
ab: /*p:bar p:foo*/A.B,
|
|
ac: /*p:bar p:foo*/A.C,
|
|
abCo: /*p:bar p:foo*/A.B.CO,
|
|
aCompanion: /*p:bar p:foo*/A.Companion,
|
|
aO: /*p:bar p:foo*/A.O,
|
|
i: /*p:bar p:foo*/I,
|
|
ni: /*p:bar p:foo*/I.NI,
|
|
obj: /*p:bar p:foo*/Obj,
|
|
e: /*p:bar p:foo*/E
|
|
) {}
|