Call Resolver: Report UNRESOLVED_REFERENCE instead of EXPRESSION_EXPECTED_PACKAGE_FOUND when callee expession is resolved to package
This commit is contained in:
+3
-2
@@ -212,9 +212,10 @@ public class CallExpressionResolver {
|
|||||||
context, "trace to resolve as variable with 'invoke' call", callExpression);
|
context, "trace to resolve as variable with 'invoke' call", callExpression);
|
||||||
JetType type = getVariableType((JetSimpleNameExpression) calleeExpression, receiver, callOperationNode,
|
JetType type = getVariableType((JetSimpleNameExpression) calleeExpression, receiver, callOperationNode,
|
||||||
context.replaceTraceAndCache(temporaryForVariable), result);
|
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();
|
temporaryForVariable.commit();
|
||||||
context.trace.report(FUNCTION_EXPECTED.on((JetReferenceExpression) calleeExpression, calleeExpression,
|
context.trace.report(FUNCTION_EXPECTED.on(calleeExpression, calleeExpression,
|
||||||
type != null ? type : ErrorUtils.createErrorType("")));
|
type != null ? type : ErrorUtils.createErrorType("")));
|
||||||
return JetTypeInfo.create(null, context.dataFlowInfo);
|
return JetTypeInfo.create(null, context.dataFlowInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ fun x(f : Foo) {
|
|||||||
f.<!NO_VALUE_FOR_PARAMETER, FUNCTION_CALL_EXPECTED!>bar<!>
|
f.<!NO_VALUE_FOR_PARAMETER, FUNCTION_CALL_EXPECTED!>bar<!>
|
||||||
|
|
||||||
f.<!FUNCTION_EXPECTED!>a<!>()
|
f.<!FUNCTION_EXPECTED!>a<!>()
|
||||||
<!EXPRESSION_EXPECTED_PACKAGE_FOUND, FUNCTION_EXPECTED!>c<!>()
|
<!UNRESOLVED_REFERENCE!>c<!>()
|
||||||
<!FUNCTION_EXPECTED!>R<!>()
|
<!FUNCTION_EXPECTED!>R<!>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package to
|
package to
|
||||||
|
|
||||||
|
import a.a
|
||||||
|
|
||||||
fun f(i: a.a) {
|
fun f(i: a.a) {
|
||||||
a.a
|
a.a
|
||||||
a.a()
|
a()
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user