diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/CallType.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/CallType.kt index e550b070ce4..874a4212013 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/CallType.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/CallType.kt @@ -62,7 +62,7 @@ sealed class CallType(val descriptorKindFilter: Descript object TYPE : CallType(DescriptorKindFilter(DescriptorKindFilter.CLASSIFIERS_MASK or DescriptorKindFilter.PACKAGES_MASK) exclude DescriptorKindExclude.EnumEntry) - object DELEGATE : CallType(DescriptorKindFilter.FUNCTIONS) + object DELEGATE : CallType(DescriptorKindFilter.FUNCTIONS exclude NonOperatorExclude) object ANNOTATION : CallType(DescriptorKindFilter(DescriptorKindFilter.CLASSIFIERS_MASK or DescriptorKindFilter.PACKAGES_MASK) exclude NonAnnotationClassifierExclude) diff --git a/idea/testData/quickfix/autoImports/delegateNoOperator.test b/idea/testData/quickfix/autoImports/delegateNoOperator.test new file mode 100644 index 00000000000..c922d0a12ff --- /dev/null +++ b/idea/testData/quickfix/autoImports/delegateNoOperator.test @@ -0,0 +1,20 @@ +// FILE: first.before.kt +// "Import" "false" +// ERROR: Missing 'getValue(kotlin.Nothing?, kotlin.reflect.KProperty<*>)' method on delegate of type 'kotlin.String' + +package b + +val x: String by "" // <--- should not propose to auto-import a.getValue, + // because that would not fix the error + +// FILE: second.kt +package a + +import kotlin.reflect.KProperty + +fun String.getValue(x: Any?, y: KProperty<*>) = "" + + + +// FILE: first.after.kt +// Should not be checked \ No newline at end of file diff --git a/idea/testData/quickfix/autoImports/indexCallExtensionGetNoOperator.test b/idea/testData/quickfix/autoImports/indexCallExtensionGetNoOperator.test index b993bd85307..c07fdefe555 100644 --- a/idea/testData/quickfix/autoImports/indexCallExtensionGetNoOperator.test +++ b/idea/testData/quickfix/autoImports/indexCallExtensionGetNoOperator.test @@ -29,20 +29,4 @@ fun Some.get(s: String) {} // FILE: first.after.kt -// "Import" "true" -// ERROR: Unresolved reference: foo()["str"] -// ERROR: No get method providing array access - -package testing - -import some.Some -import some.get - -fun foo(): Some = Some() - -fun testing() { - foo()["str"] -} - - - +// Should not be checked diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index 1fcb1df18b4..e1558112f9d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -101,6 +101,12 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes doTestWithExtraFile(fileName); } + @TestMetadata("delegateNoOperator.test") + public void testDelegateNoOperator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/delegateNoOperator.test"); + doTestWithExtraFile(fileName); + } + @TestMetadata("divOperator.before.Main.kt") public void testDivOperator() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/divOperator.before.Main.kt");