diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java index 86c09ddcb19..d249065895d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ArgumentTypeResolver.java @@ -181,11 +181,11 @@ public class ArgumentTypeResolver { if (expression instanceof JetCallExpression) { result = callExpressionResolver.getCallExpressionTypeInfoForCall( (JetCallExpression) expression, ReceiverValue.NO_RECEIVER, null, - context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE), ResolveMode.INTERNAL); + context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE), ResolveMode.NESTED_CALL); } if (expression instanceof JetQualifiedExpression) { result = callExpressionResolver.getQualifiedExpressionExtendedTypeInfo( - (JetQualifiedExpression) expression, context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE), ResolveMode.INTERNAL); + (JetQualifiedExpression) expression, context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE), ResolveMode.NESTED_CALL); } if (result != null) { recordExpressionType(expression, context, result.getTypeInfo()); 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 018b18f6e82..e8a810ca12d 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 @@ -159,7 +159,7 @@ public class CallExpressionResolver { if (!results.isNothing()) { checkSuper(receiver, results, context.trace, callExpression); result[0] = true; - if (results.isSingleResult() && resolveMode == ResolveMode.NORMAL) { + if (results.isSingleResult() && resolveMode == ResolveMode.TOP_LEVEL_CALL) { if (CallResolverUtil.hasReturnTypeDependentOnNotInferredParams(results.getResultingCall())) { return null; } @@ -179,7 +179,7 @@ public class CallExpressionResolver { CallResolver callResolver = expressionTypingServices.getCallResolver(); Call call = CallMaker.makePropertyCall(receiver, callOperationNode, nameExpression); OverloadResolutionResults resolutionResult = callResolver.resolveSimpleProperty( - BasicCallResolutionContext.create(context.replaceBindingTrace(traceForVariable), call, ResolveMode.NORMAL)); + BasicCallResolutionContext.create(context.replaceBindingTrace(traceForVariable), call, ResolveMode.TOP_LEVEL_CALL)); if (!resolutionResult.isNothing()) { traceForVariable.commit(); checkSuper(receiver, resolutionResult, context.trace, nameExpression); @@ -223,7 +223,7 @@ public class CallExpressionResolver { Call call = CallMaker.makeCall(nameExpression, receiver, callOperationNode, nameExpression, Collections.emptyList()); TemporaryBindingTrace traceForFunction = TemporaryBindingTrace.create(context.trace, "trace to resolve as function", nameExpression); - ResolvedCall resolvedCall = getResolvedCallForFunction(call, nameExpression, receiver, context, ResolveMode.NORMAL, result); + ResolvedCall resolvedCall = getResolvedCallForFunction(call, nameExpression, receiver, context, ResolveMode.TOP_LEVEL_CALL, result); if (result[0]) { FunctionDescriptor functionDescriptor = resolvedCall != null ? resolvedCall.getResultingDescriptor() : null; traceForFunction.commit(); @@ -240,7 +240,7 @@ public class CallExpressionResolver { @NotNull public JetTypeInfo getCallExpressionTypeInfo(@NotNull JetCallExpression callExpression, @NotNull ReceiverValue receiver, @Nullable ASTNode callOperationNode, @NotNull ResolutionContext context) { - return getCallExpressionTypeInfoForCall(callExpression, receiver, callOperationNode, context, ResolveMode.NORMAL).getTypeInfo(); + return getCallExpressionTypeInfoForCall(callExpression, receiver, callOperationNode, context, ResolveMode.TOP_LEVEL_CALL).getTypeInfo(); } @NotNull @@ -250,7 +250,7 @@ public class CallExpressionResolver { ) { TypeInfoForCall typeInfoForCall = getCallExpressionTypeInfoForCallWithoutFinalTypeCheck(callExpression, receiver, callOperationNode, context, resolveMode); - if (resolveMode == ResolveMode.NORMAL) { + if (resolveMode == ResolveMode.TOP_LEVEL_CALL) { DataFlowUtils.checkType(typeInfoForCall.getType(), callExpression, context, typeInfoForCall.getDataFlowInfo()); } return typeInfoForCall; @@ -352,7 +352,7 @@ public class CallExpressionResolver { @NotNull public JetTypeInfo getQualifiedExpressionTypeInfo(@NotNull JetQualifiedExpression expression, @NotNull ResolutionContext context) { - return getQualifiedExpressionExtendedTypeInfo(expression, context, ResolveMode.NORMAL).getTypeInfo(); + return getQualifiedExpressionExtendedTypeInfo(expression, context, ResolveMode.TOP_LEVEL_CALL).getTypeInfo(); } @NotNull @@ -392,7 +392,7 @@ public class CallExpressionResolver { context.trace.record(BindingContext.EXPRESSION_TYPE, selectorExpression, selectorReturnType); } JetTypeInfo typeInfo = JetTypeInfo.create(selectorReturnType, selectorReturnTypeInfo.getDataFlowInfo()); - if (resolveMode == ResolveMode.NORMAL) { + if (resolveMode == ResolveMode.TOP_LEVEL_CALL) { DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo()); } return TypeInfoForCall.create(typeInfo, selectorReturnTypeInfo); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index 35409c331ee..b7900ea6e47 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -126,7 +126,7 @@ public class CallResolver { @NotNull JetType expectedType, @NotNull DataFlowInfo dataFlowInfo ) { - return resolveFunctionCall(BasicCallResolutionContext.create(trace, scope, call, expectedType, dataFlowInfo, ResolveMode.NORMAL, false)); + return resolveFunctionCall(BasicCallResolutionContext.create(trace, scope, call, expectedType, dataFlowInfo, ResolveMode.TOP_LEVEL_CALL, false)); } @NotNull @@ -292,7 +292,7 @@ public class CallResolver { if (prioritizedTasks.isEmpty()) { return results; } - if (context.resolveMode == ResolveMode.INTERNAL) return results; + if (context.resolveMode == ResolveMode.NESTED_CALL) return results; TracingStrategy tracing = prioritizedTasks.iterator().next().tracing; return completeTypeInferenceDependentOnExpectedType(context, results, tracing); @@ -335,7 +335,7 @@ public class CallResolver { if (!resolvedCall.hasUnknownTypeParameters()) { CallCandidateResolutionContext callCandidateResolutionContext = CallCandidateResolutionContext.createForCallBeingAnalyzed((ResolvedCallImpl) resolvedCall, context, tracing); - candidateResolver.completeValueArgumentsInference(callCandidateResolutionContext); + candidateResolver.completeNestedCallsInference(callCandidateResolutionContext); return results; } ResolvedCallImpl copy = CallResolverUtil.copy((ResolvedCallImpl) resolvedCall, context); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java index da8fb26217b..3599dee496e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CandidateResolver.java @@ -229,7 +229,7 @@ public class CandidateResolver { if (!constraintSystem.isSuccessful()) { resolvedCall.setResultingSubstitutor(constraintSystemWithoutExpectedTypeConstraint.getResultingSubstitutor()); - completeValueArgumentsInference(context); + completeNestedCallsInference(context); List argumentTypes = checkValueArgumentTypes(context, resolvedCall, context.trace, RESOLVE_FUNCTION_ARGUMENTS).argumentTypes; JetType receiverType = resolvedCall.getReceiverArgument().exists() ? resolvedCall.getReceiverArgument().getType() : null; @@ -256,7 +256,7 @@ public class CandidateResolver { } resolvedCall.setResultingSubstitutor(constraintSystem.getResultingSubstitutor()); - completeValueArgumentsInference(context); + completeNestedCallsInference(context); // Here we type check the arguments with inferred types expected checkAllValueArguments(context, context.trace, RESOLVE_FUNCTION_ARGUMENTS); @@ -273,7 +273,7 @@ public class CandidateResolver { } } - public void completeValueArgumentsInference( + public void completeNestedCallsInference( @NotNull CallCandidateResolutionContext context ) { ResolvedCallImpl resolvedCall = context.candidateCall; @@ -296,12 +296,12 @@ public class CandidateResolver { if (storedContextForArgument == null) continue; CallCandidateResolutionContext contextForArgument = - storedContextForArgument.replaceResolveMode(ResolveMode.NORMAL).replaceBindingTrace(context.trace).replaceExpectedType(expectedType); + storedContextForArgument.replaceResolveMode(ResolveMode.TOP_LEVEL_CALL).replaceBindingTrace(context.trace).replaceExpectedType(expectedType); if (contextForArgument.candidateCall.hasUnknownTypeParameters()) { completeTypeInferenceDependentOnExpectedTypeForCall(contextForArgument, true); } else { - completeValueArgumentsInference(contextForArgument); + completeNestedCallsInference(contextForArgument); } } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/ResolveMode.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/ResolveMode.java index a8ed7b02f32..49665d1c27d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/ResolveMode.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/context/ResolveMode.java @@ -17,6 +17,6 @@ package org.jetbrains.jet.lang.resolve.calls.context; public enum ResolveMode { - NORMAL, - INTERNAL + TOP_LEVEL_CALL, + NESTED_CALL } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java index 42308211449..9e79c7e5b07 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java @@ -106,6 +106,6 @@ public class ExpressionTypingContext extends ResolutionContext resolveCallWithGivenName(@NotNull Call call, @NotNull JetReferenceExpression functionReference, @NotNull Name name) { return expressionTypingServices.getCallResolver().resolveCallWithGivenName( - BasicCallResolutionContext.create(this, call, ResolveMode.NORMAL), functionReference, name); + BasicCallResolutionContext.create(this, call, ResolveMode.TOP_LEVEL_CALL), functionReference, name); } } diff --git a/compiler/testData/diagnostics/tests/inference/complicated/completeValueArgumentsInference.kt b/compiler/testData/diagnostics/tests/inference/complicated/completeNestedCallsInference.kt similarity index 100% rename from compiler/testData/diagnostics/tests/inference/complicated/completeValueArgumentsInference.kt rename to compiler/testData/diagnostics/tests/inference/complicated/completeNestedCallsInference.kt diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 65ed371d44a..8b0bf58e19e 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -2125,9 +2125,9 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/inference/complicated"), "kt", true); } - @TestMetadata("completeValueArgumentsInference.kt") - public void testCompleteValueArgumentsInference() throws Exception { - doTest("compiler/testData/diagnostics/tests/inference/complicated/completeValueArgumentsInference.kt"); + @TestMetadata("completeNestedCallsInference.kt") + public void testCompleteNestedCallsInference() throws Exception { + doTest("compiler/testData/diagnostics/tests/inference/complicated/completeNestedCallsInference.kt"); } }