KT-36860 Collect extensions from object on first completion
- This should not affect the performance of the completion, since all object extensions are collected on the last step, when all main variants are already collected - Add more tests - Also, disable completion of extensions from objects as callable references (^KT-37395 Fixed) - ^KT-36860 Fixed
This commit is contained in:
committed by
Roman Golyshev
parent
7dc9a2fc64
commit
90750483ee
-1
@@ -11,6 +11,5 @@ fun usage(t: T) {
|
||||
t.foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
class T
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
infix fun T.fooExtension(i: Int) {}
|
||||
}
|
||||
}
|
||||
|
||||
fun usage(t: T) {
|
||||
t foo<caret>
|
||||
}
|
||||
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class T
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
fun T.fooExtension() {}
|
||||
val T.fooProperty get() = 10
|
||||
}
|
||||
}
|
||||
|
||||
fun usage(t: T) {
|
||||
t.<caret>
|
||||
}
|
||||
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class T
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
fun T.fooExtension() {}
|
||||
val T.fooProperty get() = 10
|
||||
}
|
||||
}
|
||||
|
||||
fun usage(t: T) {
|
||||
t?.foo<caret>
|
||||
}
|
||||
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
-1
@@ -11,6 +11,5 @@ fun T.usage() {
|
||||
foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
Vendored
-1
@@ -21,7 +21,6 @@ fun usage(b: B) {
|
||||
b.foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooForAny", itemText: "fooForAny" }
|
||||
|
||||
// EXIST: { lookupString: "fooForT", itemText: "fooForT" }
|
||||
|
||||
Vendored
+1
-2
@@ -21,7 +21,6 @@ fun B.usage() {
|
||||
foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooForAny", itemText: "fooForAny" }
|
||||
|
||||
// EXIST: { lookupString: "fooForT", itemText: "fooForT" }
|
||||
@@ -30,7 +29,7 @@ fun B.usage() {
|
||||
// EXIST: { lookupString: "fooForTGeneric", itemText: "fooForTGeneric" }
|
||||
// EXIST: { lookupString: "fooForBGeneric", itemText: "fooForBGeneric" }
|
||||
|
||||
// EXIST: fooNoReceiver
|
||||
// ABSENT: fooNoReceiver
|
||||
|
||||
// ABSENT: fooForC
|
||||
// ABSENT: fooForCGeneric
|
||||
|
||||
Vendored
-1
@@ -17,7 +17,6 @@ class A {
|
||||
}
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooForA", itemText: "fooForA" }
|
||||
// EXIST: { lookupString: "fooForB", itemText: "fooForB" }
|
||||
// EXIST: { lookupString: "fooForT", itemText: "fooForT" }
|
||||
|
||||
Vendored
-1
@@ -9,6 +9,5 @@ fun usage(t: T) {
|
||||
t.foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
Vendored
-1
@@ -9,6 +9,5 @@ fun T.usage() {
|
||||
foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
Vendored
-1
@@ -14,6 +14,5 @@ fun T.usage() {
|
||||
foo<caret>
|
||||
}
|
||||
|
||||
// INVOCATION_COUNT: 2
|
||||
// EXIST: { lookupString: "fooExtension", itemText: "fooExtension" }
|
||||
// EXIST: { lookupString: "fooProperty", itemText: "fooProperty" }
|
||||
Reference in New Issue
Block a user