Optimize imports to prevent accedential changes in resolve because of import priorities

#KT-11640 Fixed
This commit is contained in:
Valentin Kipyatkov
2016-09-15 15:30:56 +03:00
parent 7628fa1608
commit 95a3a29382
40 changed files with 651 additions and 191 deletions
+6
View File
@@ -0,0 +1,6 @@
Additional checking of reference Getter: E2
Additional checking of reference KtSimpleNameReference: E2
Additional checking of reference Getter: E22
Additional checking of reference KtSimpleNameReference: E22
Additional checking of reference Getter: E31
Additional checking of reference KtSimpleNameReference: E31
@@ -0,0 +1,3 @@
Additional checking of reference Getter: run
Additional checking of reference KtSimpleNameReference: run
Additional checking of reference KtInvokeFunctionReference: run("")
@@ -0,0 +1,6 @@
package bug.a
class A(val foo: MyFunction)
class MyFunction
operator fun MyFunction.invoke() = println("invoke convention")
+13
View File
@@ -0,0 +1,13 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 2
package bug.b
import bug.a.*
import bug.a.invoke
fun A.foo() = println("extension function")
fun main(args: Array<String>) {
val a = A(MyFunction())
a.foo()
}
+13
View File
@@ -0,0 +1,13 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 2
package bug.b
import bug.a.*
import bug.a.invoke
fun A.foo() = println("extension function")
fun main(args: Array<String>) {
val a = A(MyFunction())
a.foo()
}
+6
View File
@@ -0,0 +1,6 @@
Additional checking of reference KtInvokeFunctionReference: A(MyFunction())
Additional checking of reference KtInvokeFunctionReference: MyFunction()
Additional checking of reference KtInvokeFunctionReference: foo()
Changed resolve of KtInvokeFunctionReference: foo()
Additional checking of reference KtInvokeFunctionReference: println("extension function")
Trying to build import list again with locked imports: bug.a.invoke
@@ -0,0 +1,6 @@
package bug.a
class A(val foo: MyFunction)
class MyFunction
operator fun MyFunction.invoke() = println("invoke convention")
+15
View File
@@ -0,0 +1,15 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 10
package bug.b
import bug.a.*
fun A.foo() = println("extension function")
fun main(args: Array<String>) {
val func = MyFunction()
func()
val a = A(func)
a.foo()
}
+15
View File
@@ -0,0 +1,15 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 10
package bug.b
import bug.a.*
fun A.foo() = println("extension function")
fun main(args: Array<String>) {
val func = MyFunction()
func()
val a = A(func)
a.foo()
}
+3
View File
@@ -0,0 +1,3 @@
Additional checking of reference KtInvokeFunctionReference: foo()
Changed resolve of KtInvokeFunctionReference: foo()
Trying to build import list again with locked imports: bug.a.*
+3
View File
@@ -0,0 +1,3 @@
Additional checking of reference Getter: Inner2
Additional checking of reference KtSimpleNameReference: Inner2
Additional checking of reference KtInvokeFunctionReference: Inner2()
@@ -0,0 +1,7 @@
package pack1
fun foo(o: Any){}
val u1 = 1
val u2 = 1
val u3 = 1
@@ -0,0 +1,7 @@
package pack2
fun foo(o: String){}
val v1 = 1
val v2 = 1
val v3 = 1
+15
View File
@@ -0,0 +1,15 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 3
import pack1.foo
import pack1.u1
import pack1.u2
import pack1.u3
import pack1.u4
import pack1.u5
import pack2.*
fun f() {
foo("")
v1 + v2 + v3
u1 + u2 + u3
}
+11
View File
@@ -0,0 +1,11 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 3
import pack1.*
import pack1.foo
import pack2.*
fun f() {
foo("")
v1 + v2 + v3
u1 + u2 + u3
}
+8
View File
@@ -0,0 +1,8 @@
Additional checking of reference Getter: foo
Additional checking of reference KtSimpleNameReference: foo
Changed resolve of KtSimpleNameReference: foo
Additional checking of reference KtInvokeFunctionReference: foo("")
Trying to build import list again with locked imports: pack1.foo, pack2.*
Additional checking of reference Getter: foo
Additional checking of reference KtSimpleNameReference: foo
Additional checking of reference KtInvokeFunctionReference: foo("")
@@ -0,0 +1,3 @@
package p1
class A(p: Int)
@@ -0,0 +1,3 @@
package p2
class A(s: String)
@@ -0,0 +1,8 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 2
import p1.*
import p2.A
fun f() {
A(1)
A("")
}
@@ -0,0 +1,8 @@
// NAME_COUNT_TO_USE_STAR_IMPORT: 2
import p1.*
import p2.A
fun f() {
A(1)
A("")
}
@@ -0,0 +1,9 @@
Additional checking of reference Getter: A
Additional checking of reference Getter: A
Additional checking of reference KtSimpleNameReference: A
Changed resolve of KtSimpleNameReference: A
Additional checking of reference KtSimpleNameReference: A
Changed resolve of KtSimpleNameReference: A
Additional checking of reference KtInvokeFunctionReference: A("")
Additional checking of reference KtInvokeFunctionReference: A(1)
Trying to build import list again with locked imports: p2.A, p1.*