diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java index 3872b09ae6e..4565ff78205 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java @@ -45,6 +45,7 @@ import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; +import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.plugin.caches.resolve.IDELightClassGenerationSupport; @@ -308,7 +309,7 @@ public class JetShortNamesCache extends PsiShortNamesCache { JetType expressionType = context.get(BindingContext.EXPRESSION_TYPE, receiverExpression); JetScope scope = context.get(BindingContext.RESOLUTION_SCOPE, receiverExpression); - if (expressionType != null && scope != null) { + if (expressionType != null && scope != null && !ErrorUtils.isErrorType(expressionType)) { Collection extensionFunctionsNames = getAllJetExtensionFunctionsNames(searchScope); Set functionFQNs = new java.util.HashSet(); diff --git a/idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt b/idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt index 19006b4d1f8..f623ee069b5 100644 --- a/idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt +++ b/idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt @@ -4,4 +4,5 @@ fun anyfun() { a.b.c.d.e.f. } +// TIME: 1 // NUMBER: 0 \ No newline at end of file diff --git a/idea/testData/completion/basic/common/DoNotCompleteForErrorReceiversForce.kt b/idea/testData/completion/basic/common/DoNotCompleteForErrorReceiversForce.kt new file mode 100644 index 00000000000..e2d9d3a115f --- /dev/null +++ b/idea/testData/completion/basic/common/DoNotCompleteForErrorReceiversForce.kt @@ -0,0 +1,8 @@ +/// KT-1187 Wrong unnecessary completion + +fun anyfun() { + a.b.c.d.e.f. +} + +// TIME: 2 +// NUMBER: 0 \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/completion/JetBasicJSCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JetBasicJSCompletionTestGenerated.java index d842aa95c82..c5a058ae5d1 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetBasicJSCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JetBasicJSCompletionTestGenerated.java @@ -104,6 +104,11 @@ public class JetBasicJSCompletionTestGenerated extends AbstractJetJSCompletionTe doTest("idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt"); } + @TestMetadata("DoNotCompleteForErrorReceiversForce.kt") + public void testDoNotCompleteForErrorReceiversForce() throws Exception { + doTest("idea/testData/completion/basic/common/DoNotCompleteForErrorReceiversForce.kt"); + } + @TestMetadata("ExtendClassName.kt") public void testExtendClassName() throws Exception { doTest("idea/testData/completion/basic/common/ExtendClassName.kt"); diff --git a/idea/tests/org/jetbrains/jet/completion/JetBasicJavaCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JetBasicJavaCompletionTestGenerated.java index 8dad2867c6c..8a8c8e48997 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetBasicJavaCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JetBasicJavaCompletionTestGenerated.java @@ -104,6 +104,11 @@ public class JetBasicJavaCompletionTestGenerated extends AbstractJavaCompletionT doTest("idea/testData/completion/basic/common/DoNotCompleteForErrorReceivers.kt"); } + @TestMetadata("DoNotCompleteForErrorReceiversForce.kt") + public void testDoNotCompleteForErrorReceiversForce() throws Exception { + doTest("idea/testData/completion/basic/common/DoNotCompleteForErrorReceiversForce.kt"); + } + @TestMetadata("ExtendClassName.kt") public void testExtendClassName() throws Exception { doTest("idea/testData/completion/basic/common/ExtendClassName.kt");