From 2b3350147149915dd52e681a918b846f0398adbb Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 28 Oct 2014 20:20:33 +0300 Subject: [PATCH] Smart completion: fixed items ordering issue --- .../jet/plugin/completion/smart/StaticMembers.kt | 9 ++------- .../handlers/smart/ClassObjectFieldKeywordName.kt | 2 +- .../smart/ClassObjectFieldKeywordName.kt.after | 2 +- .../handlers/smart/ClassObjectMethod1.kt | 2 +- .../handlers/smart/ClassObjectMethod1.kt.after | 2 +- .../handlers/smart/ClassObjectMethod2.kt | 2 +- .../handlers/smart/ClassObjectMethod2.kt.after | 2 +- .../handlers/smart/ClassObjectMethod3.kt | 2 +- .../handlers/smart/ClassObjectMethod3.kt.after | 2 +- .../handlers/smart/ClassObjectMethod4.kt | 2 +- .../handlers/smart/ClassObjectMethod4.kt.after | 2 +- idea/testData/completion/handlers/smart/Comma9.kt | 2 +- .../completion/handlers/smart/Comma9.kt.after | 2 +- .../completion/handlers/smart/EnumMember.kt | 2 +- .../completion/handlers/smart/EnumMember.kt.after | 2 +- .../handlers/smart/JavaEnumMemberInsertsImport.kt | 2 +- .../smart/JavaEnumMemberInsertsImport.kt.after | 2 +- .../completion/handlers/smart/JavaStaticField.kt | 2 +- .../handlers/smart/JavaStaticField.kt.after | 2 +- .../handlers/smart/JavaStaticFieldInsertImport.kt | 2 +- .../smart/JavaStaticFieldInsertImport.kt.after | 2 +- .../completion/handlers/smart/JavaStaticMethod.kt | 2 +- .../handlers/smart/JavaStaticMethod.kt.after | 2 +- .../completion/handlers/smart/MergeTail3.kt | 2 +- .../completion/handlers/smart/MergeTail3.kt.after | 2 +- .../completion/handlers/smart/MergeTail4.kt | 2 +- .../completion/handlers/smart/MergeTail4.kt.after | 2 +- .../completion/handlers/smart/ObjectFromType.kt | 2 +- .../handlers/smart/ObjectFromType.kt.after | 2 +- .../completion/smart/ClassObjectMembers.kt | 12 ++++++------ .../smart/ClassObjectMembersForNullable.kt | 8 ++++---- idea/testData/completion/smart/EnumMembers.kt | 4 ++-- idea/testData/completion/smart/EqOperator.kt | 4 ++-- idea/testData/completion/smart/JavaEnumMembers.kt | 4 ++-- .../smart/JavaEnumMembersForNullable.kt | 4 ++-- .../testData/completion/smart/JavaStaticFields.kt | 4 ++-- .../smart/JavaStaticFieldsForNullable.kt | 4 ++-- .../completion/smart/JavaStaticMethods.kt | 6 +++--- .../smart/NoExtensionMethodFromClassObject.kt | 4 ++-- idea/testData/completion/smart/NotEqOperator.kt | 4 ++-- idea/testData/completion/smart/ObjectsFromType.kt | 4 ++-- idea/testData/completion/smart/WhenEntryValue1.kt | 6 +++--- idea/testData/completion/smart/WhenEntryValue2.kt | 6 +++--- idea/testData/completion/smart/WhenEntryValue3.kt | 6 +++--- idea/testData/completion/smart/WhenEntryValue4.kt | 6 +++--- idea/testData/completion/smart/WhenEntryValue6.kt | 6 +++--- idea/testData/completion/smart/WhenEntryValue7.kt | 2 +- idea/testData/completion/smart/WhenEntryValue8.kt | 4 ++-- .../smart/NoNameSimilarityForQualifier.kt | 15 +++++++++++++++ .../completion/weighers/smart/NullableExpected.kt | 2 +- .../completion/weighers/smart/SmartPriority2.kt | 4 ++-- .../SmartCompletionWeigherTestGenerated.java | 7 ++++++- 52 files changed, 103 insertions(+), 88 deletions(-) create mode 100644 idea/testData/completion/weighers/smart/NoNameSimilarityForQualifier.kt diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt index 277553a260c..7503121c25e 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/StaticMembers.kt @@ -41,8 +41,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso context: JetExpression, enumEntriesToSkip: Set) { - val scope = bindingContext[BindingContext.RESOLUTION_SCOPE, context] - if (scope == null) return + val scope = bindingContext[BindingContext.RESOLUTION_SCOPE, context] ?: return val expectedInfosByClass = expectedInfos.groupBy { TypeUtils.getClassDescriptor(it.type) } for ((classDescriptor, expectedInfosForClass) in expectedInfosByClass) { @@ -64,8 +63,7 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso val classifier: (ExpectedInfo) -> ExpectedInfoClassification if (descriptor is CallableDescriptor) { - val returnType = descriptor.getReturnType() - if (returnType == null) return + val returnType = descriptor.getReturnType() ?: return classifier = { expectedInfo -> when { @@ -109,12 +107,9 @@ class StaticMembers(val bindingContext: BindingContext, val resolveSession: Reso private fun createLookupElement(memberDescriptor: DeclarationDescriptor, classDescriptor: ClassDescriptor): LookupElement { val lookupElement = createLookupElement(memberDescriptor, resolveSession, bindingContext) val qualifierPresentation = classDescriptor.getName().asString() - val lookupString = qualifierPresentation + "." + lookupElement.getLookupString() val qualifierText = qualifiedNameForSourceCode(classDescriptor) return object: LookupElementDecorator(lookupElement) { - override fun getLookupString() = lookupString - override fun renderElement(presentation: LookupElementPresentation) { getDelegate().renderElement(presentation) diff --git a/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt b/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt index a7412ac4f5f..519c3a6d66e 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt +++ b/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt @@ -10,4 +10,4 @@ fun foo(){ val v: `class`= } -// ELEMENT: class.val +// ELEMENT: val diff --git a/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt.after b/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt.after index 46abe9ef442..21a4a48eff8 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt.after +++ b/idea/testData/completion/handlers/smart/ClassObjectFieldKeywordName.kt.after @@ -10,4 +10,4 @@ fun foo(){ val v: `class`= `class`.`val` } -// ELEMENT: class.val +// ELEMENT: val diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt b/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt index d22cb06034e..162063cd52f 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt @@ -10,4 +10,4 @@ fun foo(){ val k : K = } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt.after b/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt.after index 7628ba55cd8..4925f54e351 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt.after +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod1.kt.after @@ -10,4 +10,4 @@ fun foo(){ val k : K = K.bar() } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt b/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt index d1940cb0329..97ffae689b7 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt @@ -10,4 +10,4 @@ fun foo(){ val k : K = } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt.after b/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt.after index a321bbcaddc..453af7507e1 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt.after +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod2.kt.after @@ -10,4 +10,4 @@ fun foo(){ val k : K = K.bar() } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt b/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt index 6d0e95a7202..0f8ed0a092c 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt @@ -10,4 +10,4 @@ fun foo(){ val k : K = } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt.after b/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt.after index a6b5465fd9c..1984477df96 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt.after +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod3.kt.after @@ -10,4 +10,4 @@ fun foo(){ val k : K = K.bar { } } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt b/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt index 0618629c605..c1b0dcbe4df 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt @@ -10,4 +10,4 @@ fun foo(){ val k : K = } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt.after b/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt.after index e2e05bffb7e..6e970d12d0d 100644 --- a/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt.after +++ b/idea/testData/completion/handlers/smart/ClassObjectMethod4.kt.after @@ -10,4 +10,4 @@ fun foo(){ val k : K = K.bar() } -// ELEMENT: K.bar +// ELEMENT: bar diff --git a/idea/testData/completion/handlers/smart/Comma9.kt b/idea/testData/completion/handlers/smart/Comma9.kt index 6392cdca7ca..a84d6e2826a 100644 --- a/idea/testData/completion/handlers/smart/Comma9.kt +++ b/idea/testData/completion/handlers/smart/Comma9.kt @@ -9,4 +9,4 @@ fun bar(){ foo() } -// ELEMENT: Foo.X +// ELEMENT: X diff --git a/idea/testData/completion/handlers/smart/Comma9.kt.after b/idea/testData/completion/handlers/smart/Comma9.kt.after index 3ffc41649c8..82cfa4aa405 100644 --- a/idea/testData/completion/handlers/smart/Comma9.kt.after +++ b/idea/testData/completion/handlers/smart/Comma9.kt.after @@ -9,4 +9,4 @@ fun bar(){ foo(Foo.X, ) } -// ELEMENT: Foo.X +// ELEMENT: X diff --git a/idea/testData/completion/handlers/smart/EnumMember.kt b/idea/testData/completion/handlers/smart/EnumMember.kt index 0834c5b4c79..be6cfd7746f 100644 --- a/idea/testData/completion/handlers/smart/EnumMember.kt +++ b/idea/testData/completion/handlers/smart/EnumMember.kt @@ -7,4 +7,4 @@ fun foo(){ val f : Foo = } -// ELEMENT: Foo.X +// ELEMENT: X diff --git a/idea/testData/completion/handlers/smart/EnumMember.kt.after b/idea/testData/completion/handlers/smart/EnumMember.kt.after index c77034e2c54..34bd657acf0 100644 --- a/idea/testData/completion/handlers/smart/EnumMember.kt.after +++ b/idea/testData/completion/handlers/smart/EnumMember.kt.after @@ -7,4 +7,4 @@ fun foo(){ val f : Foo = Foo.X } -// ELEMENT: Foo.X +// ELEMENT: X diff --git a/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt b/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt index 125cb9c7d7f..aaad4826375 100644 --- a/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt +++ b/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt @@ -2,4 +2,4 @@ fun foo(){ val e : java.lang.annotation.ElementType = } -// ELEMENT: ElementType.FIELD +// ELEMENT: FIELD diff --git a/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt.after b/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt.after index 7ce2f37dbdb..a3fdb0f308a 100644 --- a/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt.after +++ b/idea/testData/completion/handlers/smart/JavaEnumMemberInsertsImport.kt.after @@ -4,4 +4,4 @@ fun foo(){ val e : java.lang.annotation.ElementType = ElementType.FIELD } -// ELEMENT: ElementType.FIELD +// ELEMENT: FIELD diff --git a/idea/testData/completion/handlers/smart/JavaStaticField.kt b/idea/testData/completion/handlers/smart/JavaStaticField.kt index bd1239d3871..be4834a2f2f 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticField.kt +++ b/idea/testData/completion/handlers/smart/JavaStaticField.kt @@ -4,4 +4,4 @@ fun foo(){ var l : Locale = } -// ELEMENT: Locale.ENGLISH +// ELEMENT: ENGLISH diff --git a/idea/testData/completion/handlers/smart/JavaStaticField.kt.after b/idea/testData/completion/handlers/smart/JavaStaticField.kt.after index 98d1786fb19..9425611e4b5 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticField.kt.after +++ b/idea/testData/completion/handlers/smart/JavaStaticField.kt.after @@ -4,4 +4,4 @@ fun foo(){ var l : Locale = Locale.ENGLISH } -// ELEMENT: Locale.ENGLISH +// ELEMENT: ENGLISH diff --git a/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt b/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt index c0349b1f437..ae173770d87 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt +++ b/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt @@ -2,4 +2,4 @@ fun foo(){ var l : java.util.Locale = } -// ELEMENT: Locale.ENGLISH +// ELEMENT: ENGLISH diff --git a/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt.after b/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt.after index 58042f2eb61..6610962a210 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt.after +++ b/idea/testData/completion/handlers/smart/JavaStaticFieldInsertImport.kt.after @@ -4,4 +4,4 @@ fun foo(){ var l : java.util.Locale = Locale.ENGLISH } -// ELEMENT: Locale.ENGLISH +// ELEMENT: ENGLISH diff --git a/idea/testData/completion/handlers/smart/JavaStaticMethod.kt b/idea/testData/completion/handlers/smart/JavaStaticMethod.kt index 35e0875f7dc..2775b0ad2f1 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticMethod.kt +++ b/idea/testData/completion/handlers/smart/JavaStaticMethod.kt @@ -2,4 +2,4 @@ fun foo(){ val l : java.lang.Thread = } -// ELEMENT: Thread.currentThread +// ELEMENT: currentThread diff --git a/idea/testData/completion/handlers/smart/JavaStaticMethod.kt.after b/idea/testData/completion/handlers/smart/JavaStaticMethod.kt.after index 18dfed987a3..fc03644486c 100644 --- a/idea/testData/completion/handlers/smart/JavaStaticMethod.kt.after +++ b/idea/testData/completion/handlers/smart/JavaStaticMethod.kt.after @@ -2,4 +2,4 @@ fun foo(){ val l : java.lang.Thread = Thread.currentThread() } -// ELEMENT: Thread.currentThread +// ELEMENT: currentThread diff --git a/idea/testData/completion/handlers/smart/MergeTail3.kt b/idea/testData/completion/handlers/smart/MergeTail3.kt index bbffdfe6a77..abc34ca9cf0 100644 --- a/idea/testData/completion/handlers/smart/MergeTail3.kt +++ b/idea/testData/completion/handlers/smart/MergeTail3.kt @@ -13,4 +13,4 @@ fun foo() { foo( } -// ELEMENT: C.f1 +// ELEMENT: f1 diff --git a/idea/testData/completion/handlers/smart/MergeTail3.kt.after b/idea/testData/completion/handlers/smart/MergeTail3.kt.after index 1935ad5014c..5a653ff48d5 100644 --- a/idea/testData/completion/handlers/smart/MergeTail3.kt.after +++ b/idea/testData/completion/handlers/smart/MergeTail3.kt.after @@ -13,4 +13,4 @@ fun foo() { foo(C.f1() } -// ELEMENT: C.f1 +// ELEMENT: f1 diff --git a/idea/testData/completion/handlers/smart/MergeTail4.kt b/idea/testData/completion/handlers/smart/MergeTail4.kt index 72027284571..edd492204c6 100644 --- a/idea/testData/completion/handlers/smart/MergeTail4.kt +++ b/idea/testData/completion/handlers/smart/MergeTail4.kt @@ -13,4 +13,4 @@ fun foo() { foo( } -// ELEMENT: C.f3 +// ELEMENT: f3 diff --git a/idea/testData/completion/handlers/smart/MergeTail4.kt.after b/idea/testData/completion/handlers/smart/MergeTail4.kt.after index 2779f738243..5c5e0d2ddb2 100644 --- a/idea/testData/completion/handlers/smart/MergeTail4.kt.after +++ b/idea/testData/completion/handlers/smart/MergeTail4.kt.after @@ -13,4 +13,4 @@ fun foo() { foo(C.f3(), } -// ELEMENT: C.f3 +// ELEMENT: f3 diff --git a/idea/testData/completion/handlers/smart/ObjectFromType.kt b/idea/testData/completion/handlers/smart/ObjectFromType.kt index 808686aa2f7..f52e83eb2ee 100644 --- a/idea/testData/completion/handlers/smart/ObjectFromType.kt +++ b/idea/testData/completion/handlers/smart/ObjectFromType.kt @@ -10,4 +10,4 @@ fun foo(): Outer.T { return } -// ELEMENT: "T.Null" +// ELEMENT: Null diff --git a/idea/testData/completion/handlers/smart/ObjectFromType.kt.after b/idea/testData/completion/handlers/smart/ObjectFromType.kt.after index d0d4d7db74e..838d5e19272 100644 --- a/idea/testData/completion/handlers/smart/ObjectFromType.kt.after +++ b/idea/testData/completion/handlers/smart/ObjectFromType.kt.after @@ -10,4 +10,4 @@ fun foo(): Outer.T { return Outer.T.Null } -// ELEMENT: "T.Null" +// ELEMENT: Null diff --git a/idea/testData/completion/smart/ClassObjectMembers.kt b/idea/testData/completion/smart/ClassObjectMembers.kt index a511fe34741..c6d94a72037 100644 --- a/idea/testData/completion/smart/ClassObjectMembers.kt +++ b/idea/testData/completion/smart/ClassObjectMembers.kt @@ -14,10 +14,10 @@ fun foo(){ val k : K = } -// EXIST: { lookupString:"K.foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" } -// EXIST: { lookupString:"K.bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" } -// ABSENT: K.x +// EXIST: { lookupString:"foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" } +// EXIST: { lookupString:"bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" } +// ABSENT: { itemText: "K.x" } // ABSENT: { itemText:"K.kk" } -// EXIST: { lookupString:"K.kk", itemText:"!! K.kk", tailText:" (sample)", typeText:"K?" } -// EXIST: { lookupString:"K.kk", itemText:"?: K.kk", tailText:" (sample)", typeText:"K?" } -// ABSENT: K.privateVal +// EXIST: { lookupString:"kk", itemText:"!! K.kk", tailText:" (sample)", typeText:"K?" } +// EXIST: { lookupString:"kk", itemText:"?: K.kk", tailText:" (sample)", typeText:"K?" } +// ABSENT: { itemText: "K.privateVal" } diff --git a/idea/testData/completion/smart/ClassObjectMembersForNullable.kt b/idea/testData/completion/smart/ClassObjectMembersForNullable.kt index 977cc45852d..f9f86bf22ec 100644 --- a/idea/testData/completion/smart/ClassObjectMembersForNullable.kt +++ b/idea/testData/completion/smart/ClassObjectMembersForNullable.kt @@ -13,7 +13,7 @@ fun foo(){ val k : K? = } -// EXIST: { lookupString:"K.foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" } -// EXIST: { lookupString:"K.bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" } -// ABSENT: K.x -// EXIST: { lookupString:"K.kk", itemText:"K.kk", tailText:" (sample)", typeText:"K?" } +// EXIST: { lookupString:"foo", itemText:"K.foo", tailText:" (sample)", typeText:"K" } +// EXIST: { lookupString:"bar", itemText:"K.bar()", tailText:" (sample)", typeText:"K" } +// ABSENT: { itemText: "K.x" } +// EXIST: { lookupString:"kk", itemText:"K.kk", tailText:" (sample)", typeText:"K?" } diff --git a/idea/testData/completion/smart/EnumMembers.kt b/idea/testData/completion/smart/EnumMembers.kt index 285c8d40b2f..00b977d167c 100644 --- a/idea/testData/completion/smart/EnumMembers.kt +++ b/idea/testData/completion/smart/EnumMembers.kt @@ -9,5 +9,5 @@ fun foo(){ val f : Foo = } -// EXIST: { lookupString:"Foo.X", itemText:"Foo.X", tailText:" (sample)", typeText:"Foo" } -// EXIST: { lookupString:"Foo.Y", itemText:"Foo.Y", tailText:" (sample)", typeText:"Foo" } +// EXIST: { lookupString:"X", itemText:"Foo.X", tailText:" (sample)", typeText:"Foo" } +// EXIST: { lookupString:"Y", itemText:"Foo.Y", tailText:" (sample)", typeText:"Foo" } diff --git a/idea/testData/completion/smart/EqOperator.kt b/idea/testData/completion/smart/EqOperator.kt index 953d1a7412e..30565933755 100644 --- a/idea/testData/completion/smart/EqOperator.kt +++ b/idea/testData/completion/smart/EqOperator.kt @@ -7,8 +7,8 @@ fun f(e1: E, e2: E?, x: Any) { if (e1 == } -// EXIST: E.A -// EXIST: E.B +// EXIST: { lookupString:"A", itemText:"E.A", typeText:"E" } +// EXIST: { lookupString:"B", itemText:"E.B", typeText:"E" } // EXIST: { itemText:"e2" } // ABSENT: { itemText:"!! e2" } // ABSENT: e1 diff --git a/idea/testData/completion/smart/JavaEnumMembers.kt b/idea/testData/completion/smart/JavaEnumMembers.kt index 965153089a7..fb8f1ebe71e 100644 --- a/idea/testData/completion/smart/JavaEnumMembers.kt +++ b/idea/testData/completion/smart/JavaEnumMembers.kt @@ -4,5 +4,5 @@ fun foo(){ val e : ElementType = } -// EXIST: { lookupString:"ElementType.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:"TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" } +// EXIST: { lookupString:"FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" } diff --git a/idea/testData/completion/smart/JavaEnumMembersForNullable.kt b/idea/testData/completion/smart/JavaEnumMembersForNullable.kt index 90d6eff3375..16b86c12ae3 100644 --- a/idea/testData/completion/smart/JavaEnumMembersForNullable.kt +++ b/idea/testData/completion/smart/JavaEnumMembersForNullable.kt @@ -4,5 +4,5 @@ fun foo(){ var e : ElementType? = } -// EXIST: { lookupString:"ElementType.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:"TYPE", itemText:"ElementType.TYPE", tailText:" (java.lang.annotation)", typeText:"ElementType" } +// EXIST: { lookupString:"FIELD", itemText:"ElementType.FIELD", tailText:" (java.lang.annotation)", typeText:"ElementType" } diff --git a/idea/testData/completion/smart/JavaStaticFields.kt b/idea/testData/completion/smart/JavaStaticFields.kt index b35b2c543b8..6103877028d 100644 --- a/idea/testData/completion/smart/JavaStaticFields.kt +++ b/idea/testData/completion/smart/JavaStaticFields.kt @@ -2,5 +2,5 @@ fun foo(){ var l : java.util.Locale = } -// EXIST: { lookupString:"Locale.ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" } -// EXIST: { lookupString:"Locale.FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" } +// EXIST: { lookupString:"ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" } +// EXIST: { lookupString:"FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" } diff --git a/idea/testData/completion/smart/JavaStaticFieldsForNullable.kt b/idea/testData/completion/smart/JavaStaticFieldsForNullable.kt index e32351ddaf2..9e84c21d430 100644 --- a/idea/testData/completion/smart/JavaStaticFieldsForNullable.kt +++ b/idea/testData/completion/smart/JavaStaticFieldsForNullable.kt @@ -2,5 +2,5 @@ fun foo(){ var l : java.util.Locale? = } -// EXIST: { lookupString:"Locale.ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" } -// EXIST: { lookupString:"Locale.FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" } +// EXIST: { lookupString:"ENGLISH", itemText:"Locale.ENGLISH", tailText:" (java.util)", typeText:"Locale!" } +// EXIST: { lookupString:"FRENCH", itemText:"Locale.FRENCH", tailText:" (java.util)", typeText:"Locale!" } diff --git a/idea/testData/completion/smart/JavaStaticMethods.kt b/idea/testData/completion/smart/JavaStaticMethods.kt index 89dd605ab36..f82ca9c3eed 100644 --- a/idea/testData/completion/smart/JavaStaticMethods.kt +++ b/idea/testData/completion/smart/JavaStaticMethods.kt @@ -2,6 +2,6 @@ fun foo(){ val l : java.util.Calendar = } -// EXIST: { lookupString:"Calendar.getInstance", itemText:"Calendar.getInstance()", tailText:" (java.util)", typeText:"Calendar!" } -// EXIST: { lookupString:"Calendar.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()", tailText:" (java.util)", typeText:"Calendar!" } +// EXIST: { lookupString:"getInstance", itemText:"Calendar.getInstance(TimeZone!)", tailText:" (java.util)", typeText:"Calendar!" } +// EXIST: { lookupString:"getInstance", itemText:"Calendar.getInstance(TimeZone!, Locale!)", tailText:" (java.util)", typeText:"Calendar!" } diff --git a/idea/testData/completion/smart/NoExtensionMethodFromClassObject.kt b/idea/testData/completion/smart/NoExtensionMethodFromClassObject.kt index 9e80c386b49..e7ed76857cc 100644 --- a/idea/testData/completion/smart/NoExtensionMethodFromClassObject.kt +++ b/idea/testData/completion/smart/NoExtensionMethodFromClassObject.kt @@ -9,5 +9,5 @@ fun foo(): X { return } -// ABSENT: X.f -// EXIST: X.g +// ABSENT: f +// EXIST: { lookupString:"g", itemText:"X.g()" } diff --git a/idea/testData/completion/smart/NotEqOperator.kt b/idea/testData/completion/smart/NotEqOperator.kt index dd968a4aeb2..56880e7d4d7 100644 --- a/idea/testData/completion/smart/NotEqOperator.kt +++ b/idea/testData/completion/smart/NotEqOperator.kt @@ -7,8 +7,8 @@ fun f(e1: E, e2: E?, x: Any) { if (e1 != } -// EXIST: E.A -// EXIST: E.B +// EXIST: { lookupString:"A", itemText:"E.A" } +// EXIST: { lookupString:"B", itemText:"E.B" } // EXIST: e2 // ABSENT: e1 // ABSENT: x diff --git a/idea/testData/completion/smart/ObjectsFromType.kt b/idea/testData/completion/smart/ObjectsFromType.kt index b8e22374d81..b3e1600faba 100644 --- a/idea/testData/completion/smart/ObjectsFromType.kt +++ b/idea/testData/completion/smart/ObjectsFromType.kt @@ -10,5 +10,5 @@ fun foo(): T { return } -// EXIST: { lookupString:"T.Null", itemText:"T.Null", tailText:" (p)", typeText:"T" } -// ABSENT: T.Other +// EXIST: { lookupString:"Null", itemText:"T.Null", tailText:" (p)", typeText:"T" } +// ABSENT: Other diff --git a/idea/testData/completion/smart/WhenEntryValue1.kt b/idea/testData/completion/smart/WhenEntryValue1.kt index 622e95d31c1..8e4771b1f20 100644 --- a/idea/testData/completion/smart/WhenEntryValue1.kt +++ b/idea/testData/completion/smart/WhenEntryValue1.kt @@ -10,7 +10,7 @@ fun foo(e: E) { } } -// EXIST: E.A -// EXIST: E.B -// EXIST: E.C +// EXIST: { lookupString:"A", itemText:"E.A" } +// EXIST: { lookupString:"B", itemText:"E.B" } +// EXIST: { lookupString:"C", itemText:"E.C" } // EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"} diff --git a/idea/testData/completion/smart/WhenEntryValue2.kt b/idea/testData/completion/smart/WhenEntryValue2.kt index ae45ee0920a..28ab1419a10 100644 --- a/idea/testData/completion/smart/WhenEntryValue2.kt +++ b/idea/testData/completion/smart/WhenEntryValue2.kt @@ -10,7 +10,7 @@ fun foo(e: E) { } } -// ABSENT: E.A -// EXIST: E.B -// EXIST: E.C +// ABSENT: A +// EXIST: { lookupString:"B", itemText:"E.B" } +// EXIST: { lookupString:"C", itemText:"E.C" } // ABSENT:else diff --git a/idea/testData/completion/smart/WhenEntryValue3.kt b/idea/testData/completion/smart/WhenEntryValue3.kt index f7c38b8cd56..cedf5eaf0f6 100644 --- a/idea/testData/completion/smart/WhenEntryValue3.kt +++ b/idea/testData/completion/smart/WhenEntryValue3.kt @@ -11,7 +11,7 @@ fun foo(e: E) { } } -// ABSENT: E.A -// EXIST: E.B -// EXIST: E.C +// ABSENT: A +// EXIST: { lookupString:"B", itemText:"E.B" } +// EXIST: { lookupString:"C", itemText:"E.C" } // EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"} diff --git a/idea/testData/completion/smart/WhenEntryValue4.kt b/idea/testData/completion/smart/WhenEntryValue4.kt index 89cdc19f1ae..20d75af8558 100644 --- a/idea/testData/completion/smart/WhenEntryValue4.kt +++ b/idea/testData/completion/smart/WhenEntryValue4.kt @@ -11,7 +11,7 @@ fun foo(e: E) { } } -// EXIST: E.A -// EXIST: E.B -// EXIST: E.C +// EXIST: { lookupString:"A", itemText:"E.A" } +// EXIST: { lookupString:"B", itemText:"E.B" } +// EXIST: { lookupString:"C", itemText:"E.C" } // ABSENT: else diff --git a/idea/testData/completion/smart/WhenEntryValue6.kt b/idea/testData/completion/smart/WhenEntryValue6.kt index bc0930a875c..99ce6c4faad 100644 --- a/idea/testData/completion/smart/WhenEntryValue6.kt +++ b/idea/testData/completion/smart/WhenEntryValue6.kt @@ -11,8 +11,8 @@ fun foo(e: E?) { } } -// ABSENT: E.A -// EXIST: E.B -// EXIST: E.C +// ABSENT: A +// EXIST: B +// EXIST: C // EXIST: null // EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"} diff --git a/idea/testData/completion/smart/WhenEntryValue7.kt b/idea/testData/completion/smart/WhenEntryValue7.kt index f54582533b8..b44513a9685 100644 --- a/idea/testData/completion/smart/WhenEntryValue7.kt +++ b/idea/testData/completion/smart/WhenEntryValue7.kt @@ -11,5 +11,5 @@ fun foo(e: E) { } } -// EXIST: E.A +// EXIST: A // ABSENT: else diff --git a/idea/testData/completion/smart/WhenEntryValue8.kt b/idea/testData/completion/smart/WhenEntryValue8.kt index 114a8636857..a0d88c6d7e9 100644 --- a/idea/testData/completion/smart/WhenEntryValue8.kt +++ b/idea/testData/completion/smart/WhenEntryValue8.kt @@ -7,6 +7,6 @@ fun foo(e: ElementType) { } } -// ABSENT: ElementType.FIELD -// EXIST: ElementType.TYPE +// ABSENT: FIELD +// EXIST: TYPE // ABSENT: e diff --git a/idea/testData/completion/weighers/smart/NoNameSimilarityForQualifier.kt b/idea/testData/completion/weighers/smart/NoNameSimilarityForQualifier.kt new file mode 100644 index 00000000000..ff4f506c7c7 --- /dev/null +++ b/idea/testData/completion/weighers/smart/NoNameSimilarityForQualifier.kt @@ -0,0 +1,15 @@ +class Name { + class object { + fun create(): Name = Name() + } +} + +fun foo(name: Name){} + +fun bar() { + val v: (Name) -> Unit = { foo() } +} + +// ORDER: it +// ORDER: create +// ORDER: Name diff --git a/idea/testData/completion/weighers/smart/NullableExpected.kt b/idea/testData/completion/weighers/smart/NullableExpected.kt index 0c18bc04d77..388e7843b97 100644 --- a/idea/testData/completion/weighers/smart/NullableExpected.kt +++ b/idea/testData/completion/weighers/smart/NullableExpected.kt @@ -15,6 +15,6 @@ fun foo(p: C?) { // ORDER: p // ORDER: local // ORDER: global -// ORDER: C.INSTANCE +// ORDER: INSTANCE // ORDER: object // ORDER: null diff --git a/idea/testData/completion/weighers/smart/SmartPriority2.kt b/idea/testData/completion/weighers/smart/SmartPriority2.kt index 6377e81d09a..cce9b1dab4e 100644 --- a/idea/testData/completion/weighers/smart/SmartPriority2.kt +++ b/idea/testData/completion/weighers/smart/SmartPriority2.kt @@ -19,10 +19,10 @@ fun foo(pFoo: C, s: String) { // ORDER: pFoo // ORDER: nullableFoo // ORDER: nullableFoo -// ORDER: C.INSTANCE_FOO +// ORDER: INSTANCE_FOO // ORDER: local // ORDER: nonNullable // ORDER: nullableX // ORDER: nullableX -// ORDER: C.INSTANCE_X +// ORDER: INSTANCE_X // ORDER: object diff --git a/idea/tests/org/jetbrains/jet/completion/weighers/SmartCompletionWeigherTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/weighers/SmartCompletionWeigherTestGenerated.java index 988cf800957..e5b86db23ed 100644 --- a/idea/tests/org/jetbrains/jet/completion/weighers/SmartCompletionWeigherTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/weighers/SmartCompletionWeigherTestGenerated.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.completion.weighers; import com.intellij.testFramework.TestDataPath; import org.jetbrains.jet.JUnit3RunnerWithInners; import org.jetbrains.jet.JetTestUtils; -import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; import org.junit.runner.RunWith; @@ -180,6 +179,12 @@ public class SmartCompletionWeigherTestGenerated extends AbstractSmartCompletion 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") public void testNullableExpected() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/weighers/smart/NullableExpected.kt");