From a59a671c4a3e359a49143055516ec7b5def0a366 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 11 Apr 2012 18:56:13 +0400 Subject: [PATCH] KT-1763 UnsupportedOperationException during creating ImportClassAndFunFix #KT-1763 fixed --- .../types/expressions/ExpressionTypingUtils.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java index 9e853dde7b2..63a39a71045 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java @@ -30,14 +30,17 @@ import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.inference.*; -import org.jetbrains.jet.lang.resolve.scopes.*; +import org.jetbrains.jet.lang.resolve.scopes.JetScope; +import org.jetbrains.jet.lang.resolve.scopes.WritableScope; +import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; -import org.jetbrains.jet.lang.types.checker.JetTypeChecker; -import org.jetbrains.jet.lang.types.lang.JetStandardClasses; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.NamespaceType; import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lang.types.Variance; +import org.jetbrains.jet.lang.types.checker.JetTypeChecker; +import org.jetbrains.jet.lang.types.lang.JetStandardClasses; import org.jetbrains.jet.lang.types.lang.JetStandardLibrary; import java.util.ArrayList; @@ -209,6 +212,12 @@ public class ExpressionTypingUtils { @NotNull CallableDescriptor receiverArgument ) { JetType type = expectedReceiver.getType(); + + if (type instanceof NamespaceType) { + // This fake class ruins standard algorithms + return false; + } + if (checkReceiverResolution(expectedReceiver, type, receiverArgument)) return true; if (type.isNullable()) { JetType notNullableType = TypeUtils.makeNotNullable(type);