Files
kotlin-fork/jps/jps-plugin/testData/incremental/lookupTracker/jvm/classifierMembers/usages.kt.new.2
T
Ilya Chernikov a823bfd600 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).
2024-03-12 11:38:07 +00:00

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
) {}