Code completion: do not list instance members from context with no instance

#KT-6388 Fixed
 #KT-4422 Fixed
 #KT-5516 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-12-19 21:42:15 +03:00
parent d33e60b876
commit 311a3a75c8
22 changed files with 307 additions and 18 deletions
@@ -0,0 +1,25 @@
class C {
val field = 0
class NestedClass
inner class InnerClass
object AnObject
class object {
val classObjectField = 0
class ClassObjectClass
fun foo(){
<caret>
}
}
}
fun C.extensionForC(){}
// ABSENT: field
// EXIST: NestedClass
// EXIST: InnerClass
// EXIST: AnObject
// EXIST: classObjectField
// EXIST: ClassObjectClass
// ABSENT: extensionForC
@@ -0,0 +1,18 @@
class C {
val field = 0
class NestedClass
inner class InnerClass
inner class N {
fun foo(){
<caret>
}
}
}
fun C.extensionForC(){}
// EXIST: field
// EXIST: NestedClass
// EXIST: InnerClass
// EXIST: extensionForC
@@ -0,0 +1,23 @@
class C {
val field = 0
class NestedClass
inner class InnerClass
class N {
fun foo(){
<caret>
}
}
class object {
fun fromClassObject(){}
}
}
fun C.extensionForC(){}
// ABSENT: field
// EXIST: NestedClass
// EXIST: InnerClass
// EXIST: fromClassObject
// ABSENT: extensionForC
@@ -0,0 +1,11 @@
object O {
fun foo() {}
class Nested {
fun bar() {
<caret>
}
}
}
// EXIST: foo
@@ -1,7 +1,7 @@
package a.b
class Some {
class Nested {
inner class Inner {
fun foo() {
"".<caret>
}
@@ -17,5 +17,5 @@ val String.extProp: Int get() = 1
// EXIST: { lookupString: "extFun", itemText: "extFun", tailText: "() for String in a.b", typeText: "Unit" }
// EXIST: { lookupString: "extProp", itemText: "extProp", tailText: " for String in a.b", typeText: "Int" }
// EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in Some.Nested", typeText: "Unit" }
// EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in Some.Inner", typeText: "Unit" }
// EXIST: { lookupString: "memberExtProp", itemText: "memberExtProp", tailText: " for String in Some", typeText: "Int" }
@@ -0,0 +1,11 @@
class X {
fun String.f() {}
}
fun fn() {
with (X()) {
"sss".<caret>
}
}
// EXIST: f
@@ -0,0 +1,11 @@
class C {
fun String.memberExtForString(){}
class object {
fun foo() {
"".<caret>
}
}
}
// ABSENT: memberExtForString
@@ -0,0 +1,6 @@
package second
import first.OuterClass
fun OuterClass.outerExtension() {
}
@@ -0,0 +1,12 @@
package first
class OuterClass {
class Nested {
fun foo() {
out<caret>
}
}
}
// INVOCATION_COUNT: 2
// ABSENT: outerExtension