KT-1187 Wrong unnecessary completion

#KT-1187 Fixed
This commit is contained in:
Nikolay Krasko
2012-09-20 16:11:59 +04:00
parent b301bbe1f9
commit c7af6de16b
3 changed files with 13 additions and 1 deletions
@@ -36,6 +36,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.JetScopeUtils; import org.jetbrains.jet.lang.resolve.scopes.JetScopeUtils;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.ErrorUtils;
import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.NamespaceType; import org.jetbrains.jet.lang.types.NamespaceType;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils;
@@ -61,7 +62,7 @@ public final class TipsManager {
JetScope resolutionScope = context.get(BindingContext.RESOLUTION_SCOPE, expression); JetScope resolutionScope = context.get(BindingContext.RESOLUTION_SCOPE, expression);
JetType expressionType = context.get(BindingContext.EXPRESSION_TYPE, receiverExpression); JetType expressionType = context.get(BindingContext.EXPRESSION_TYPE, receiverExpression);
if (expressionType != null && resolutionScope != null) { if (expressionType != null && resolutionScope != null && !ErrorUtils.isErrorType(expressionType)) {
if (!(expressionType instanceof NamespaceType)) { if (!(expressionType instanceof NamespaceType)) {
ExpressionReceiver receiverDescriptor = new ExpressionReceiver(receiverExpression, expressionType); ExpressionReceiver receiverDescriptor = new ExpressionReceiver(receiverExpression, expressionType);
Set<DeclarationDescriptor> descriptors = new HashSet<DeclarationDescriptor>(); Set<DeclarationDescriptor> descriptors = new HashSet<DeclarationDescriptor>();
@@ -0,0 +1,7 @@
// KT-1187 Wrong unnecessary completion
fun anyfun() {
a.b.c.d.e.f.<caret>
}
// NUMBER: 0
@@ -56,6 +56,10 @@ public class JetBasicCompletionTest extends JetCompletionTestBase {
doTest(); doTest();
} }
public void testDoNotCompleteForErrorReceivers() {
doTest();
}
public void testExtendClassName() { public void testExtendClassName() {
doTest(); doTest();
} }