[LL FIR] get rid of on-air resolve of partial type qualifiers
It's very slow and leads to performance problems (see KT-58125) Instead, we do the following: - For a fully resolved type qualifier, when we want to resolve its part, we are looking for the corresponding symbol by traversing nested classes bottom up. - For an error qualifier, we are trying to resolve the maximum possible qualifier in the types transformer where all the type scopes are already available. ^KT-58125 fixed
This commit is contained in:
committed by
Space Team
parent
51cf0ce3e5
commit
481962d5f6
+7
@@ -0,0 +1,7 @@
|
||||
|
||||
class Foo
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
|
||||
class Foo
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.Baz
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.Baz.
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
|
||||
class Foo
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.Baz
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.Baz.Bazzzz
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
|
||||
class Foo
|
||||
|
||||
class C {
|
||||
val prop: <caret>Foo.Bar.Baz.
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in ROOT) class Foo
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: Foo.<caret>Bar.Baz
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in Foo) class Bar
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: Foo.<caret>Bar.Baz.
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in Foo) class Bar
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class Foo {
|
||||
class Bar
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: Foo.<caret>Bar.Baz.
|
||||
}
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in Foo) class Bar
|
||||
Reference in New Issue
Block a user