Smart completion: fixed items ordering issue
This commit is contained in:
@@ -41,8 +41,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso
|
|||||||
context: JetExpression,
|
context: JetExpression,
|
||||||
enumEntriesToSkip: Set<DeclarationDescriptor>) {
|
enumEntriesToSkip: Set<DeclarationDescriptor>) {
|
||||||
|
|
||||||
val scope = bindingContext[BindingContext.RESOLUTION_SCOPE, context]
|
val scope = bindingContext[BindingContext.RESOLUTION_SCOPE, context] ?: return
|
||||||
if (scope == null) return
|
|
||||||
|
|
||||||
val expectedInfosByClass = expectedInfos.groupBy { TypeUtils.getClassDescriptor(it.type) }
|
val expectedInfosByClass = expectedInfos.groupBy { TypeUtils.getClassDescriptor(it.type) }
|
||||||
for ((classDescriptor, expectedInfosForClass) in expectedInfosByClass) {
|
for ((classDescriptor, expectedInfosForClass) in expectedInfosByClass) {
|
||||||
@@ -64,8 +63,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso
|
|||||||
|
|
||||||
val classifier: (ExpectedInfo) -> ExpectedInfoClassification
|
val classifier: (ExpectedInfo) -> ExpectedInfoClassification
|
||||||
if (descriptor is CallableDescriptor) {
|
if (descriptor is CallableDescriptor) {
|
||||||
val returnType = descriptor.getReturnType()
|
val returnType = descriptor.getReturnType() ?: return
|
||||||
if (returnType == null) return
|
|
||||||
classifier = {
|
classifier = {
|
||||||
expectedInfo ->
|
expectedInfo ->
|
||||||
when {
|
when {
|
||||||
@@ -109,12 +107,9 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso
|
|||||||
private fun createLookupElement(memberDescriptor: DeclarationDescriptor, classDescriptor: ClassDescriptor): LookupElement {
|
private fun createLookupElement(memberDescriptor: DeclarationDescriptor, classDescriptor: ClassDescriptor): LookupElement {
|
||||||
val lookupElement = createLookupElement(memberDescriptor, resolveSession, bindingContext)
|
val lookupElement = createLookupElement(memberDescriptor, resolveSession, bindingContext)
|
||||||
val qualifierPresentation = classDescriptor.getName().asString()
|
val qualifierPresentation = classDescriptor.getName().asString()
|
||||||
val lookupString = qualifierPresentation + "." + lookupElement.getLookupString()
|
|
||||||
val qualifierText = qualifiedNameForSourceCode(classDescriptor)
|
val qualifierText = qualifiedNameForSourceCode(classDescriptor)
|
||||||
|
|
||||||
return object: LookupElementDecorator<LookupElement>(lookupElement) {
|
return object: LookupElementDecorator<LookupElement>(lookupElement) {
|
||||||
override fun getLookupString() = lookupString
|
|
||||||
|
|
||||||
override fun renderElement(presentation: LookupElementPresentation) {
|
override fun renderElement(presentation: LookupElementPresentation) {
|
||||||
getDelegate().renderElement(presentation)
|
getDelegate().renderElement(presentation)
|
||||||
|
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val v: `class`= <caret>
|
val v: `class`= <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: class.val
|
// ELEMENT: val
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val v: `class`= `class`.`val`<caret>
|
val v: `class`= `class`.`val`<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: class.val
|
// ELEMENT: val
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = <caret>
|
val k : K = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = K.bar()<caret>
|
val k : K = K.bar()<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = <caret>
|
val k : K = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = K.bar(<caret>)
|
val k : K = K.bar(<caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = <caret>
|
val k : K = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = K.bar { <caret> }
|
val k : K = K.bar { <caret> }
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = <caret>
|
val k : K = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(){
|
|||||||
val k : K = K.bar(<caret>)
|
val k : K = K.bar(<caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: K.bar
|
// ELEMENT: bar
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun bar(){
|
|||||||
foo(<caret>)
|
foo(<caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Foo.X
|
// ELEMENT: X
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ fun bar(){
|
|||||||
foo(Foo.X, <caret>)
|
foo(Foo.X, <caret>)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Foo.X
|
// ELEMENT: X
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun foo(){
|
|||||||
val f : Foo = <caret>
|
val f : Foo = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Foo.X
|
// ELEMENT: X
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ fun foo(){
|
|||||||
val f : Foo = Foo.X<caret>
|
val f : Foo = Foo.X<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Foo.X
|
// ELEMENT: X
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ fun foo(){
|
|||||||
val e : java.lang.annotation.ElementType = <caret>
|
val e : java.lang.annotation.ElementType = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: ElementType.FIELD
|
// ELEMENT: FIELD
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ fun foo(){
|
|||||||
val e : java.lang.annotation.ElementType = ElementType.FIELD<caret>
|
val e : java.lang.annotation.ElementType = ElementType.FIELD<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: ElementType.FIELD
|
// ELEMENT: FIELD
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ fun foo(){
|
|||||||
var l : Locale = <caret>
|
var l : Locale = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Locale.ENGLISH
|
// ELEMENT: ENGLISH
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ fun foo(){
|
|||||||
var l : Locale = Locale.ENGLISH<caret>
|
var l : Locale = Locale.ENGLISH<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Locale.ENGLISH
|
// ELEMENT: ENGLISH
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ fun foo(){
|
|||||||
var l : java.util.Locale = <caret>
|
var l : java.util.Locale = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Locale.ENGLISH
|
// ELEMENT: ENGLISH
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ fun foo(){
|
|||||||
var l : java.util.Locale = Locale.ENGLISH<caret>
|
var l : java.util.Locale = Locale.ENGLISH<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Locale.ENGLISH
|
// ELEMENT: ENGLISH
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ fun foo(){
|
|||||||
val l : java.lang.Thread = <caret>
|
val l : java.lang.Thread = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Thread.currentThread
|
// ELEMENT: currentThread
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ fun foo(){
|
|||||||
val l : java.lang.Thread = Thread.currentThread()<caret>
|
val l : java.lang.Thread = Thread.currentThread()<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: Thread.currentThread
|
// ELEMENT: currentThread
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ fun foo() {
|
|||||||
foo(<caret>
|
foo(<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: C.f1
|
// ELEMENT: f1
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ fun foo() {
|
|||||||
foo(C.f1()<caret>
|
foo(C.f1()<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: C.f1
|
// ELEMENT: f1
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ fun foo() {
|
|||||||
foo(<caret>
|
foo(<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: C.f3
|
// ELEMENT: f3
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ fun foo() {
|
|||||||
foo(C.f3(), <caret>
|
foo(C.f3(), <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: C.f3
|
// ELEMENT: f3
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(): Outer.T {
|
|||||||
return <caret>
|
return <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: "T.Null"
|
// ELEMENT: Null
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ fun foo(): Outer.T {
|
|||||||
return Outer.T.Null<caret>
|
return Outer.T.Null<caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ELEMENT: "T.Null"
|
// ELEMENT: Null
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ fun foo(){
|
|||||||
val k : K = <caret>
|
val k : K = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"K.foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" }
|
// EXIST: { lookupString:"foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" }
|
||||||
// EXIST: { lookupString:"K.bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" }
|
// EXIST: { lookupString:"bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" }
|
||||||
// ABSENT: K.x
|
// ABSENT: { itemText: "K.x" }
|
||||||
// ABSENT: { itemText:"K.kk" }
|
// ABSENT: { itemText:"K.kk" }
|
||||||
// EXIST: { lookupString:"K.kk", itemText:"!! K.kk", tailText:" (sample)", typeText:"K?" }
|
// EXIST: { lookupString:"kk", itemText:"!! K.kk", tailText:" (sample)", typeText:"K?" }
|
||||||
// EXIST: { lookupString:"K.kk", itemText:"?: K.kk", tailText:" (sample)", typeText:"K?" }
|
// EXIST: { lookupString:"kk", itemText:"?: K.kk", tailText:" (sample)", typeText:"K?" }
|
||||||
// ABSENT: K.privateVal
|
// ABSENT: { itemText: "K.privateVal" }
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ fun foo(){
|
|||||||
val k : K? = <caret>
|
val k : K? = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"K.foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" }
|
// EXIST: { lookupString:"foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" }
|
||||||
// EXIST: { lookupString:"K.bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" }
|
// EXIST: { lookupString:"bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" }
|
||||||
// ABSENT: K.x
|
// ABSENT: { itemText: "K.x" }
|
||||||
// EXIST: { lookupString:"K.kk", itemText:"K.kk", tailText:" (sample)", typeText:"K?" }
|
// EXIST: { lookupString:"kk", itemText:"K.kk", tailText:" (sample)", typeText:"K?" }
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ fun foo(){
|
|||||||
val f : Foo = <caret>
|
val f : Foo = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"Foo.X", itemText:"Foo.X", tailText:" (sample)", typeText:"Foo" }
|
// EXIST: { lookupString:"X", itemText:"Foo.X", tailText:" (sample)", typeText:"Foo" }
|
||||||
// EXIST: { lookupString:"Foo.Y", itemText:"Foo.Y", tailText:" (sample)", typeText:"Foo" }
|
// EXIST: { lookupString:"Y", itemText:"Foo.Y", tailText:" (sample)", typeText:"Foo" }
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ fun f(e1: E, e2: E?, x: Any) {
|
|||||||
if (e1 == <caret>
|
if (e1 == <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: E.A
|
// EXIST: { lookupString:"A", itemText:"E.A", typeText:"E" }
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B", typeText:"E" }
|
||||||
// EXIST: { itemText:"e2" }
|
// EXIST: { itemText:"e2" }
|
||||||
// ABSENT: { itemText:"!! e2" }
|
// ABSENT: { itemText:"!! e2" }
|
||||||
// ABSENT: e1
|
// ABSENT: e1
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ fun foo(){
|
|||||||
val e : ElementType = <caret>
|
val e : ElementType = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"ElementType.TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
// EXIST: { lookupString:"TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
||||||
// EXIST: { lookupString:"ElementType.FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
// EXIST: { lookupString:"FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ fun foo(){
|
|||||||
var e : ElementType? = <caret>
|
var e : ElementType? = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"ElementType.TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
// EXIST: { lookupString:"TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
||||||
// EXIST: { lookupString:"ElementType.FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
// EXIST: { lookupString:"FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" }
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ fun foo(){
|
|||||||
var l : java.util.Locale = <caret>
|
var l : java.util.Locale = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"Locale.ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" }
|
// EXIST: { lookupString:"ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" }
|
||||||
// EXIST: { lookupString:"Locale.FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" }
|
// EXIST: { lookupString:"FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" }
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ fun foo(){
|
|||||||
var l : java.util.Locale? = <caret>
|
var l : java.util.Locale? = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"Locale.ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" }
|
// EXIST: { lookupString:"ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" }
|
||||||
// EXIST: { lookupString:"Locale.FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" }
|
// EXIST: { lookupString:"FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" }
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ fun foo(){
|
|||||||
val l : java.util.Calendar = <caret>
|
val l : java.util.Calendar = <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"Calendar.getInstance", itemText:"Calendar.getInstance()", tailText:" (java.util)", typeText:"Calendar!" }
|
// EXIST: { lookupString:"getInstance", itemText:"Calendar.getInstance()", tailText:" (java.util)", typeText:"Calendar!" }
|
||||||
// EXIST: { lookupString:"Calendar.getInstance", itemText:"Calendar.getInstance(TimeZone!)", tailText:" (java.util)", typeText:"Calendar!" }
|
// EXIST: { lookupString:"getInstance", itemText:"Calendar.getInstance(TimeZone!)", tailText:" (java.util)", typeText:"Calendar!" }
|
||||||
// EXIST: { lookupString:"Calendar.getInstance", itemText:"Calendar.getInstance(TimeZone!, Locale!)", tailText:" (java.util)", typeText:"Calendar!" }
|
// EXIST: { lookupString:"getInstance", itemText:"Calendar.getInstance(TimeZone!, Locale!)", tailText:" (java.util)", typeText:"Calendar!" }
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ fun foo(): X {
|
|||||||
return <caret>
|
return <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABSENT: X.f
|
// ABSENT: f
|
||||||
// EXIST: X.g
|
// EXIST: { lookupString:"g", itemText:"X.g()" }
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ fun f(e1: E, e2: E?, x: Any) {
|
|||||||
if (e1 != <caret>
|
if (e1 != <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: E.A
|
// EXIST: { lookupString:"A", itemText:"E.A" }
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B" }
|
||||||
// EXIST: e2
|
// EXIST: e2
|
||||||
// ABSENT: e1
|
// ABSENT: e1
|
||||||
// ABSENT: x
|
// ABSENT: x
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ fun foo(): T {
|
|||||||
return <caret>
|
return <caret>
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: { lookupString:"T.Null", itemText:"T.Null", tailText:" (p)", typeText:"T" }
|
// EXIST: { lookupString:"Null", itemText:"T.Null", tailText:" (p)", typeText:"T" }
|
||||||
// ABSENT: T.Other
|
// ABSENT: Other
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ fun foo(e: E) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: E.A
|
// EXIST: { lookupString:"A", itemText:"E.A" }
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B" }
|
||||||
// EXIST: E.C
|
// EXIST: { lookupString:"C", itemText:"E.C" }
|
||||||
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ fun foo(e: E) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABSENT: E.A
|
// ABSENT: A
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B" }
|
||||||
// EXIST: E.C
|
// EXIST: { lookupString:"C", itemText:"E.C" }
|
||||||
// ABSENT:else
|
// ABSENT:else
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ fun foo(e: E) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABSENT: E.A
|
// ABSENT: A
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B" }
|
||||||
// EXIST: E.C
|
// EXIST: { lookupString:"C", itemText:"E.C" }
|
||||||
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ fun foo(e: E) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: E.A
|
// EXIST: { lookupString:"A", itemText:"E.A" }
|
||||||
// EXIST: E.B
|
// EXIST: { lookupString:"B", itemText:"E.B" }
|
||||||
// EXIST: E.C
|
// EXIST: { lookupString:"C", itemText:"E.C" }
|
||||||
// ABSENT: else
|
// ABSENT: else
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ fun foo(e: E?) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABSENT: E.A
|
// ABSENT: A
|
||||||
// EXIST: E.B
|
// EXIST: B
|
||||||
// EXIST: E.C
|
// EXIST: C
|
||||||
// EXIST: null
|
// EXIST: null
|
||||||
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"}
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ fun foo(e: E) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// EXIST: E.A
|
// EXIST: A
|
||||||
// ABSENT: else
|
// ABSENT: else
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ fun foo(e: ElementType) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABSENT: ElementType.FIELD
|
// ABSENT: FIELD
|
||||||
// EXIST: ElementType.TYPE
|
// EXIST: TYPE
|
||||||
// ABSENT: e
|
// ABSENT: e
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
class Name {
|
||||||
|
class object {
|
||||||
|
fun create(): Name = Name()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(name: Name){}
|
||||||
|
|
||||||
|
fun bar() {
|
||||||
|
val v: (Name) -> Unit = { foo(<caret>) }
|
||||||
|
}
|
||||||
|
|
||||||
|
// ORDER: it
|
||||||
|
// ORDER: create
|
||||||
|
// ORDER: Name
|
||||||
@@ -15,6 +15,6 @@ fun foo(p: C?) {
|
|||||||
// ORDER: p
|
// ORDER: p
|
||||||
// ORDER: local
|
// ORDER: local
|
||||||
// ORDER: global
|
// ORDER: global
|
||||||
// ORDER: C.INSTANCE
|
// ORDER: INSTANCE
|
||||||
// ORDER: object
|
// ORDER: object
|
||||||
// ORDER: null
|
// ORDER: null
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ fun foo(pFoo: C, s: String) {
|
|||||||
// ORDER: pFoo
|
// ORDER: pFoo
|
||||||
// ORDER: nullableFoo
|
// ORDER: nullableFoo
|
||||||
// ORDER: nullableFoo
|
// ORDER: nullableFoo
|
||||||
// ORDER: C.INSTANCE_FOO
|
// ORDER: INSTANCE_FOO
|
||||||
// ORDER: local
|
// ORDER: local
|
||||||
// ORDER: nonNullable
|
// ORDER: nonNullable
|
||||||
// ORDER: nullableX
|
// ORDER: nullableX
|
||||||
// ORDER: nullableX
|
// ORDER: nullableX
|
||||||
// ORDER: C.INSTANCE_X
|
// ORDER: INSTANCE_X
|
||||||
// ORDER: object
|
// ORDER: object
|
||||||
|
|||||||
+6
-1
@@ -19,7 +19,6 @@ package org.jetbrains.jet.completion.weighers;
|
|||||||
import com.intellij.testFramework.TestDataPath;
|
import com.intellij.testFramework.TestDataPath;
|
||||||
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.InnerTestClasses;
|
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.jet.test.TestMetadata;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
@@ -180,6 +179,12 @@ public class SmartCompletionWeigherTestGenerated extends AbstractSmartCompletion
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NoNameSimilarityForQualifier.kt")
|
||||||
|
public void testNoNameSimilarityForQualifier() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/weighers/smart/NoNameSimilarityForQualifier.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("NullableExpected.kt")
|
@TestMetadata("NullableExpected.kt")
|
||||||
public void testNullableExpected() throws Exception {
|
public void testNullableExpected() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/weighers/smart/NullableExpected.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/weighers/smart/NullableExpected.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user