diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index a8973e53394..32f3698bc8a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -146,7 +146,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (innerExpression == null) { return JetTypeInfo.create(null, context.dataFlowInfo); } - JetTypeInfo typeInfo = facade.getType(innerExpression, context.replaceScope(context.scope), isStatement); + JetTypeInfo typeInfo = facade.getTypeInfo(innerExpression, context.replaceScope(context.scope), isStatement); return DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo()); } @@ -213,14 +213,14 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = operationType == JetTokens.AS_SAFE ? TypeUtils.makeNullable(targetType) : targetType; } else { - facade.getType(expression.getLeft(), context.replaceExpectedType(NO_EXPECTED_TYPE)); + facade.getTypeInfo(expression.getLeft(), context.replaceExpectedType(NO_EXPECTED_TYPE)); } return DataFlowUtils.checkType(result, expression, context, context.dataFlowInfo); } private boolean checkBinaryWithTypeRHS(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context, @NotNull JetType targetType) { - JetType actualType = facade.getType(expression.getLeft(), context).getType(); + JetType actualType = facade.getTypeInfo(expression.getLeft(), context).getType(); if (actualType == null) return false; JetSimpleNameExpression operationSign = expression.getOperationSign(); @@ -532,7 +532,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetExpression selectorExpression = expression.getSelectorExpression(); JetExpression receiverExpression = expression.getReceiverExpression(); ExpressionTypingContext contextWithNoExpectedType = context.replaceExpectedType(NO_EXPECTED_TYPE); - JetTypeInfo receiverTypeInfo = facade.getType(receiverExpression, contextWithNoExpectedType.replaceNamespacesAllowed(true)); + JetTypeInfo receiverTypeInfo = facade.getTypeInfo(receiverExpression, contextWithNoExpectedType.replaceNamespacesAllowed(true)); JetType receiverType = receiverTypeInfo.getType(); if (selectorExpression == null) return JetTypeInfo.create(null, context.dataFlowInfo); if (receiverType == null) receiverType = ErrorUtils.createErrorType("Type for " + expression.getText()); @@ -764,7 +764,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { referencedName = referencedName == null ? " " : referencedName; context.labelResolver.enterLabeledElement(new LabelName(referencedName.substring(1)), baseExpression); // TODO : Some processing for the label? - JetTypeInfo typeInfo = facade.getType(baseExpression, context, isStatement); + JetTypeInfo typeInfo = facade.getTypeInfo(baseExpression, context, isStatement); context.labelResolver.exitLabeledElement(baseExpression); return DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo()); } @@ -772,7 +772,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { IElementType operationType = operationSign.getReferencedNameElementType(); // Type check the base expression - JetTypeInfo typeInfo = facade.getType(baseExpression, context.replaceExpectedType(NO_EXPECTED_TYPE)); + JetTypeInfo typeInfo = facade.getTypeInfo(baseExpression, context.replaceExpectedType(NO_EXPECTED_TYPE)); JetType type = typeInfo.getType(); if (type == null) { return typeInfo; @@ -961,7 +961,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = booleanType; } else if (operationType == JetTokens.ANDAND || operationType == JetTokens.OROR) { - JetType leftType = facade.getType(left, context.replaceScope(context.scope)).getType(); + JetType leftType = facade.getTypeInfo(left, context.replaceScope(context.scope)).getType(); WritableScopeImpl leftScope = newWritableScopeImpl(context, "Left scope of && or ||"); DataFlowInfo flowInfoLeft = DataFlowUtils.extractDataFlowInfoFromCondition(left, operationType == JetTokens.ANDAND, leftScope, context); // TODO: This gets computed twice: here and in extractDataFlowInfoFromCondition() for the whole condition WritableScopeImpl rightScope = operationType == JetTokens.ANDAND @@ -969,7 +969,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { : newWritableScopeImpl(context, "Right scope of && or ||"); JetType rightType = right == null ? null - : facade.getType(right, context.replaceDataFlowInfo(flowInfoLeft).replaceScope(rightScope)).getType(); + : facade.getTypeInfo(right, context.replaceDataFlowInfo(flowInfoLeft).replaceScope(rightScope)).getType(); if (leftType != null && !isBoolean(leftType)) { context.trace.report(TYPE_MISMATCH.on(left, booleanType, leftType)); } @@ -979,17 +979,19 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = booleanType; } else if (operationType == JetTokens.ELVIS) { - JetType leftType = facade.getType(left, context.replaceScope(context.scope)).getType(); + JetType leftType = facade.getTypeInfo(left, context.replaceScope(context.scope)).getType(); JetType rightType = right == null ? null - : facade.getType(right, contextWithExpectedType.replaceScope(context.scope)).getType(); + : facade.getTypeInfo(right, contextWithExpectedType.replaceScope(context.scope)).getType(); if (leftType != null) { if (!leftType.isNullable()) { context.trace.report(USELESS_ELVIS.on(left, leftType)); } if (rightType != null) { DataFlowUtils.checkType(TypeUtils.makeNullableAsSpecified(leftType, rightType.isNullable()), left, contextWithExpectedType); - return JetTypeInfo.create(TypeUtils.makeNullableAsSpecified(CommonSupertypes.commonSupertype(Arrays.asList(leftType, rightType)), rightType.isNullable()), context.dataFlowInfo); + return JetTypeInfo.create(TypeUtils.makeNullableAsSpecified( + CommonSupertypes.commonSupertype(Arrays.asList(leftType, rightType)), rightType.isNullable()), + context.dataFlowInfo); } } } @@ -1018,9 +1020,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetExpression right = expression.getRight(); // TODO : duplicated effort for == and != - JetType leftType = facade.getType(left, context.replaceScope(context.scope)).getType(); + JetType leftType = facade.getTypeInfo(left, context.replaceScope(context.scope)).getType(); if (leftType != null && right != null) { - JetType rightType = facade.getType(right, context.replaceScope(context.scope)).getType(); + JetType rightType = facade.getTypeInfo(right, context.replaceScope(context.scope)).getType(); if (rightType != null) { if (TypeUtils.isIntersectionEmpty(leftType, rightType)) { @@ -1103,7 +1105,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { public void visitStringTemplateEntryWithExpression(JetStringTemplateEntryWithExpression entry) { JetExpression entryExpression = entry.getExpression(); if (entryExpression != null) { - facade.getType(entryExpression, context); + facade.getTypeInfo(entryExpression, context); } value[0] = CompileTimeConstantResolver.OUT_OF_RANGE; } @@ -1140,7 +1142,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (baseExpression == null) { return JetTypeInfo.create(null, data.dataFlowInfo); } - return facade.getType(baseExpression, data); + return facade.getTypeInfo(baseExpression, data); } @Override @@ -1165,7 +1167,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @NotNull ExpressionTypingContext context, @NotNull BindingTrace traceForResolveResult, boolean isGet) { - JetType arrayType = facade.getType(arrayAccessExpression.getArrayExpression(), context).getType(); + JetType arrayType = facade.getTypeInfo(arrayAccessExpression.getArrayExpression(), context).getType(); if (arrayType == null) return null; ExpressionReceiver receiver = new ExpressionReceiver(arrayAccessExpression.getArrayExpression(), arrayType); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java index 9e302b454ee..f62506382e1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java @@ -65,7 +65,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { private void checkCondition(@NotNull JetScope scope, @Nullable JetExpression condition, ExpressionTypingContext context) { if (condition != null) { - JetType conditionType = facade.getType(condition, context.replaceScope(scope)).getType(); + JetType conditionType = facade.getTypeInfo(condition, context.replaceScope(scope)).getType(); if (conditionType != null && !isBoolean(conditionType)) { context.trace.report(TYPE_MISMATCH_IN_CONDITION.on(condition, conditionType)); @@ -100,7 +100,9 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { if (type != null && JetStandardClasses.isNothing(type)) { facade.setResultingDataFlowInfo(elseInfo); } - return DataFlowUtils.checkImplicitCast(DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType), expression, contextWithExpectedType, isStatement, context.dataFlowInfo); + return DataFlowUtils.checkImplicitCast( + DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType), expression, + contextWithExpectedType, isStatement, context.dataFlowInfo); } return JetTypeInfo.create(null, context.dataFlowInfo); } @@ -205,7 +207,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { context.trace.record(BindingContext.BLOCK, function); } else { - facade.getType(body, context.replaceScope(context.scope)); + facade.getTypeInfo(body, context.replaceScope(context.scope)); } } else if (body != null) { @@ -419,7 +421,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { if (catchBody != null) { WritableScope catchScope = newWritableScopeImpl(context, "Catch scope"); catchScope.addVariableDescriptor(variableDescriptor); - JetType type = facade.getType(catchBody, context.replaceScope(catchScope)).getType(); + JetType type = facade.getTypeInfo(catchBody, context.replaceScope(catchScope)).getType(); if (type != null) { types.add(type); } @@ -427,9 +429,9 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { } } if (finallyBlock != null) { - facade.getType(finallyBlock.getFinalExpression(), context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE)); + facade.getTypeInfo(finallyBlock.getFinalExpression(), context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE)); } - JetType type = facade.getType(tryBlock, context).getType(); + JetType type = facade.getTypeInfo(tryBlock, context).getType(); if (type != null) { types.add(type); } @@ -446,7 +448,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetExpression thrownExpression = expression.getThrownExpression(); if (thrownExpression != null) { JetType throwableType = JetStandardLibrary.getInstance().getThrowable().getDefaultType(); - facade.getType(thrownExpression, context.replaceExpectedType(throwableType).replaceScope(context.scope)); + facade.getTypeInfo(thrownExpression, context.replaceExpectedType(throwableType).replaceScope(context.scope)); } return DataFlowUtils.checkType(JetStandardClasses.getNothingType(), expression, context, context.dataFlowInfo); } @@ -501,7 +503,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { } } if (returnedExpression != null) { - facade.getType(returnedExpression, context.replaceExpectedType(expectedType).replaceScope(context.scope)); + facade.getTypeInfo(returnedExpression, context.replaceExpectedType(expectedType).replaceScope(context.scope)); } else { if (expectedType != TypeUtils.NO_EXPECTED_TYPE && expectedType != null && !JetStandardClasses.isUnit(expectedType)) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingFacade.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingFacade.java index 9311190026a..68db9342cb4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingFacade.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingFacade.java @@ -26,11 +26,11 @@ import org.jetbrains.jet.lang.types.JetTypeInfo; */ public interface ExpressionTypingFacade { @NotNull - JetTypeInfo safeGetType(@NotNull JetExpression expression, ExpressionTypingContext context); + JetTypeInfo safeGetTypeInfo(@NotNull JetExpression expression, ExpressionTypingContext context); @NotNull - JetTypeInfo getType(@NotNull JetExpression expression, ExpressionTypingContext context); + JetTypeInfo getTypeInfo(@NotNull JetExpression expression, ExpressionTypingContext context); @NotNull - JetTypeInfo getType(@NotNull JetExpression expression, ExpressionTypingContext context, boolean isStatement); + JetTypeInfo getTypeInfo(@NotNull JetExpression expression, ExpressionTypingContext context, boolean isStatement); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java index 3bf1540bee6..4cee67c1b5a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java @@ -120,13 +120,13 @@ public class ExpressionTypingServices { ExpressionTypingContext context = ExpressionTypingContext.newContext( this, trace, scope, dataFlowInfo, expectedType, false ); - return expressionTypingFacade.getType(expression, context).getType(); + return expressionTypingFacade.getTypeInfo(expression, context).getType(); } public JetType getTypeWithNamespaces(@NotNull final JetScope scope, @NotNull JetExpression expression, @NotNull BindingTrace trace) { ExpressionTypingContext context = ExpressionTypingContext.newContext( this, trace, scope, DataFlowInfo.EMPTY, NO_EXPECTED_TYPE, true); - return expressionTypingFacade.getType(expression, context).getType(); + return expressionTypingFacade.getTypeInfo(expression, context).getType(); // return ((ExpressionTypingContext) ExpressionTyperVisitorWithNamespaces).INSTANCE.getType(expression, ExpressionTypingContext.newRootContext(semanticServices, trace, scope, DataFlowInfo.getEmpty(), TypeUtils.NO_EXPECTED_TYPE, TypeUtils.NO_EXPECTED_TYPE)); } @@ -171,7 +171,7 @@ public class ExpressionTypingServices { getBlockReturnedType(newContext.scope, blockExpression, CoercionStrategy.COERCION_TO_UNIT, context, trace); } else { - expressionTypingFacade.getType(bodyExpression, newContext, !blockBody); + expressionTypingFacade.getTypeInfo(bodyExpression, newContext, !blockBody); } } @@ -215,7 +215,7 @@ public class ExpressionTypingServices { JetExpression bodyExpression = function.getBodyExpression(); assert bodyExpression != null; JetScope functionInnerScope = FunctionDescriptorUtil.getFunctionInnerScope(outerScope, functionDescriptor, trace); - expressionTypingFacade.getType(bodyExpression, ExpressionTypingContext.newContext( + expressionTypingFacade.getTypeInfo(bodyExpression, ExpressionTypingContext.newContext( this, trace, functionInnerScope, DataFlowInfo.EMPTY, NO_EXPECTED_TYPE, false), !function.hasBlockBody()); //todo function literals @@ -285,13 +285,13 @@ public class ExpressionTypingServices { final boolean[] mismatch = new boolean[1]; ObservableBindingTrace errorInterceptingTrace = makeTraceInterceptingTypeMismatch(temporaryTraceExpectingUnit, statementExpression, mismatch); newContext = createContext(newContext, errorInterceptingTrace, scope, newContext.dataFlowInfo, context.expectedType); - result = blockLevelVisitor.getType(statementExpression, newContext, true); + result = blockLevelVisitor.getTypeInfo(statementExpression, newContext, true); if (mismatch[0]) { TemporaryBindingTrace temporaryTraceNoExpectedType = TemporaryBindingTrace.create(trace); mismatch[0] = false; ObservableBindingTrace interceptingTrace = makeTraceInterceptingTypeMismatch(temporaryTraceNoExpectedType, statementExpression, mismatch); newContext = createContext(newContext, interceptingTrace, scope, newContext.dataFlowInfo, NO_EXPECTED_TYPE); - result = blockLevelVisitor.getType(statementExpression, newContext, true); + result = blockLevelVisitor.getTypeInfo(statementExpression, newContext, true); if (mismatch[0]) { temporaryTraceExpectingUnit.commit(); } @@ -305,11 +305,11 @@ public class ExpressionTypingServices { } else { newContext = createContext(newContext, trace, scope, newContext.dataFlowInfo, context.expectedType); - result = blockLevelVisitor.getType(statementExpression, newContext, true); + result = blockLevelVisitor.getTypeInfo(statementExpression, newContext, true); } } else { - result = blockLevelVisitor.getType(statementExpression, newContext, true); + result = blockLevelVisitor.getTypeInfo(statementExpression, newContext, true); if (coercionStrategyForLastExpression == CoercionStrategy.COERCION_TO_UNIT) { boolean mightBeUnit = false; if (statementExpression instanceof JetDeclaration) { @@ -331,7 +331,7 @@ public class ExpressionTypingServices { } } else { - result = blockLevelVisitor.getType(statementExpression, newContext, true); + result = blockLevelVisitor.getTypeInfo(statementExpression, newContext, true); } DataFlowInfo newDataFlowInfo = blockLevelVisitor.getResultingDataFlowInfo(); 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 ff35f88cf7b..519ac39f5d6 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 @@ -71,12 +71,12 @@ public class ExpressionTypingUtils { @Nullable protected static ExpressionReceiver getExpressionReceiver(@NotNull ExpressionTypingFacade facade, @NotNull JetExpression expression, ExpressionTypingContext context) { - return getExpressionReceiver(expression, facade.getType(expression, context).getType()); + return getExpressionReceiver(expression, facade.getTypeInfo(expression, context).getType()); } @NotNull protected static ExpressionReceiver safeGetExpressionReceiver(@NotNull ExpressionTypingFacade facade, @NotNull JetExpression expression, ExpressionTypingContext context) { - return new ExpressionReceiver(expression, facade.safeGetType(expression, context).getType()); + return new ExpressionReceiver(expression, facade.safeGetTypeInfo(expression, context).getType()); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java index d95f0d34bd7..b88a66b37e2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java @@ -92,8 +92,8 @@ public class ExpressionTypingVisitorDispatcher extends JetVisitor visitor) { + private JetTypeInfo getTypeInfo(@NotNull JetExpression expression, ExpressionTypingContext context, JetVisitor visitor) { if (context.trace.get(BindingContext.PROCESSED, expression)) { - return JetTypeInfo.create(context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, expression), context.dataFlowInfo); + return JetTypeInfo.create(context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, expression), + context.dataFlowInfo); } JetTypeInfo result; try { result = expression.accept(visitor, context); // Some recursive definitions (object expressions) must put their types in the cache manually: if (context.trace.get(BindingContext.PROCESSED, expression)) { - return JetTypeInfo.create(context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, expression), result.getDataFlowInfo()); + return JetTypeInfo.create(context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, expression), + result.getDataFlowInfo()); } if (result.getType() instanceof DeferredType) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java index 88520c4a0ab..1e7a3a14883 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java @@ -112,7 +112,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito JetExpression initializer = property.getInitializer(); if (property.getPropertyTypeRef() != null && initializer != null) { JetType outType = propertyDescriptor.getType(); - JetType initializerType = facade.getType(initializer, context.replaceExpectedType(outType).replaceScope(scope)).getType(); + JetType initializerType = facade.getTypeInfo(initializer, context.replaceExpectedType(outType).replaceScope(scope)).getType(); } { @@ -169,7 +169,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito result = visitAssignmentOperation(expression, context); } else { - return facade.getType(expression, context); + return facade.getTypeInfo(expression, context); } return DataFlowUtils.checkType(result, expression, context, context.dataFlowInfo); } @@ -187,9 +187,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito JetExpression left = JetPsiUtil.deparenthesize(expression.getLeft()); if (left == null) return null; - JetType leftType = facade.getType(left, context).getType(); + JetType leftType = facade.getTypeInfo(left, context).getType(); if (leftType == null) { - facade.getType(right, context); + facade.getTypeInfo(right, context); context.trace.report(UNRESOLVED_REFERENCE.on(operationSign)); temporaryBindingTrace.commit(); return null; @@ -217,7 +217,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito for (ResolvedCall call : ambiguityResolutionResults.getResultingCalls()) { descriptors.add(call.getResultingDescriptor()); } - facade.getType(right, context); + facade.getTypeInfo(right, context); context.trace.record(AMBIGUOUS_REFERENCE_TARGET, operationSign, descriptors); } else if (assignmentOperationType != null) { @@ -250,9 +250,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito basic.checkLValue(context.trace, arrayAccessExpression); return checkAssignmentType(assignmentType, expression, contextWithExpectedType); } - JetType leftType = facade.getType(expression.getLeft(), context.replaceScope(scope)).getType(); + JetType leftType = facade.getTypeInfo(expression.getLeft(), context.replaceScope(scope)).getType(); if (right != null) { - JetType rightType = facade.getType(right, context.replaceExpectedType(leftType).replaceScope(scope)).getType(); + JetType rightType = facade.getTypeInfo(right, context.replaceExpectedType(leftType).replaceScope(scope)).getType(); } if (leftType != null) { //if leftType == null, some another error has been generated basic.checkLValue(context.trace, expression.getLeft()); @@ -263,7 +263,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito @Override public JetTypeInfo visitExpression(JetExpression expression, ExpressionTypingContext context) { - return facade.getType(expression, context); + return facade.getTypeInfo(expression, context); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java index 216fe3d86de..b15315267ca 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java @@ -55,7 +55,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { public JetTypeInfo visitIsExpression(JetIsExpression expression, ExpressionTypingContext contextWithExpectedType) { ExpressionTypingContext context = contextWithExpectedType.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE); JetExpression leftHandSide = expression.getLeftHandSide(); - JetType knownType = facade.safeGetType(leftHandSide, context.replaceScope(context.scope)).getType(); + JetType knownType = facade.safeGetTypeInfo(leftHandSide, context.replaceScope(context.scope)).getType(); JetPattern pattern = expression.getPattern(); DataFlowInfo newDataFlowInfo = context.dataFlowInfo; if (pattern != null) { @@ -146,7 +146,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { if (rangeExpression == null) return; if (expectedCondition) { context.trace.report(EXPECTED_CONDITION.on(condition)); - facade.getType(rangeExpression, context); + facade.getTypeInfo(rangeExpression, context); return; } if (!facade.checkInExpression(condition, condition.getOperationReference(), subjectExpression, rangeExpression, context)) { @@ -246,7 +246,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { public void visitExpressionPattern(JetExpressionPattern pattern) { JetExpression expression = pattern.getExpression(); if (expression == null) return; - JetType type = facade.getType(expression, context.replaceScope(scopeToExtend)).getType(); + JetType type = facade.getTypeInfo(expression, context.replaceScope(scopeToExtend)).getType(); if (conditionExpected) { JetType booleanType = JetStandardLibrary.getInstance().getBooleanType(); if (type != null && !JetTypeChecker.INSTANCE.equalTypes(booleanType, type)) {