From c73c581b113cf62be4c3c8f64a022c0494d14ef4 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 7 Oct 2014 18:16:33 +0400 Subject: [PATCH] Call Resolver: Report UNRESOLVED_REFERENCE instead of EXPRESSION_EXPECTED_PACKAGE_FOUND when callee expession is resolved to package --- .../jet/lang/resolve/calls/CallExpressionResolver.java | 5 +++-- compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt | 2 +- .../copyPaste/imports/ClassResolvedToPackage.expected.kt | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java index ba19ea0255c..0775f641340 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java @@ -212,9 +212,10 @@ public class CallExpressionResolver { context, "trace to resolve as variable with 'invoke' call", callExpression); JetType type = getVariableType((JetSimpleNameExpression) calleeExpression, receiver, callOperationNode, context.replaceTraceAndCache(temporaryForVariable), result); - if (result[0]) { + Qualifier qualifier = temporaryForVariable.trace.get(BindingContext.QUALIFIER, calleeExpression); + if (result[0] && (qualifier == null || qualifier.getPackageView() == null)) { temporaryForVariable.commit(); - context.trace.report(FUNCTION_EXPECTED.on((JetReferenceExpression) calleeExpression, calleeExpression, + context.trace.report(FUNCTION_EXPECTED.on(calleeExpression, calleeExpression, type != null ? type : ErrorUtils.createErrorType(""))); return JetTypeInfo.create(null, context.dataFlowInfo); } diff --git a/compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt b/compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt index 3b22ed99606..5e88a21ab2a 100644 --- a/compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt +++ b/compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt @@ -13,7 +13,7 @@ fun x(f : Foo) { f.bar f.a() - c() + c() R() } diff --git a/idea/testData/copyPaste/imports/ClassResolvedToPackage.expected.kt b/idea/testData/copyPaste/imports/ClassResolvedToPackage.expected.kt index 423e1852166..a5383b9ca4c 100644 --- a/idea/testData/copyPaste/imports/ClassResolvedToPackage.expected.kt +++ b/idea/testData/copyPaste/imports/ClassResolvedToPackage.expected.kt @@ -1,6 +1,8 @@ package to +import a.a + fun f(i: a.a) { a.a - a.a() + a() } \ No newline at end of file