KT-6122 Code completion in when in enum extension methods suggests non-qualified enum entry names

#KT-6122 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-12-23 15:20:04 +03:00
parent 49b36cc942
commit 91220faf06
5 changed files with 48 additions and 3 deletions
@@ -113,9 +113,8 @@ public class ReferenceVariantsHelper(
// process instance members that can be called via implicit receiver's instances
val receivers = resolutionScope.getImplicitReceiversWithInstance()
receivers.flatMapTo(descriptorsSet) {
it.getType().getMemberScope().getDescriptorsFiltered(kindFilter exclude DescriptorKindExclude.Extensions, nameFilter)
}
val fromReceiversFilter = kindFilter.withoutKinds(DescriptorKindFilter.CLASSIFIERS_MASK) exclude DescriptorKindExclude.Extensions
receivers.flatMapTo(descriptorsSet) { it.getType().getMemberScope().getDescriptorsFiltered(fromReceiversFilter, nameFilter) }
val dataFlowInfo = context.getDataFlowInfo(expression)
val receiverValues = receivers.map { it.getValue() }
@@ -0,0 +1,11 @@
enum class E {
A
B
}
fun E.foo() {
<caret>
}
// ABSENT: A
// ABSENT: B
@@ -0,0 +1,11 @@
class Outer {
class Nested
inner class Inner
}
fun Outer.foo() {
<caret>
}
// ABSENT: Nested
// ABSENT: Inner
@@ -706,6 +706,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
doTest(fileName);
}
@TestMetadata("NoEnumMembersFromImplicitQualifier.kt")
public void testNoEnumMembersFromImplicitQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoEnumMembersFromImplicitQualifier.kt");
doTest(fileName);
}
@TestMetadata("NoExtensionsAfterQualifier.kt")
public void testNoExtensionsAfterQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoExtensionsAfterQualifier.kt");
@@ -718,6 +724,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
doTest(fileName);
}
@TestMetadata("NoNestedClassesFromImplicitQualifier.kt")
public void testNoNestedClassesFromImplicitQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoNestedClassesFromImplicitQualifier.kt");
doTest(fileName);
}
@TestMetadata("NoPackageFacadeClasses.kt")
public void testNoPackageFacadeClasses() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoPackageFacadeClasses.kt");
@@ -706,6 +706,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest(fileName);
}
@TestMetadata("NoEnumMembersFromImplicitQualifier.kt")
public void testNoEnumMembersFromImplicitQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoEnumMembersFromImplicitQualifier.kt");
doTest(fileName);
}
@TestMetadata("NoExtensionsAfterQualifier.kt")
public void testNoExtensionsAfterQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoExtensionsAfterQualifier.kt");
@@ -718,6 +724,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest(fileName);
}
@TestMetadata("NoNestedClassesFromImplicitQualifier.kt")
public void testNoNestedClassesFromImplicitQualifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoNestedClassesFromImplicitQualifier.kt");
doTest(fileName);
}
@TestMetadata("NoPackageFacadeClasses.kt")
public void testNoPackageFacadeClasses() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/NoPackageFacadeClasses.kt");