added checkType of TypeInfo method
This commit is contained in:
+2
-2
@@ -284,7 +284,7 @@ public class CallExpressionResolver {
|
||||
JetTypeInfo typeInfo = getCallExpressionTypeInfoWithoutFinalTypeCheck(
|
||||
callExpression, receiver, callOperationNode, context);
|
||||
if (context.contextDependency == ContextDependency.INDEPENDENT) {
|
||||
DataFlowUtils.checkType(typeInfo.getType(), callExpression, context, typeInfo.getDataFlowInfo());
|
||||
DataFlowUtils.checkType(typeInfo, callExpression, context);
|
||||
}
|
||||
return typeInfo;
|
||||
}
|
||||
@@ -409,7 +409,7 @@ public class CallExpressionResolver {
|
||||
}
|
||||
JetTypeInfo typeInfo = JetTypeInfo.create(selectorReturnType, selectorReturnTypeInfo.getDataFlowInfo());
|
||||
if (context.contextDependency == ContextDependency.INDEPENDENT) {
|
||||
DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo());
|
||||
DataFlowUtils.checkType(typeInfo, expression, context);
|
||||
}
|
||||
return typeInfo;
|
||||
}
|
||||
|
||||
+4
-4
@@ -101,7 +101,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
return JetTypeInfo.create(null, context.dataFlowInfo);
|
||||
}
|
||||
JetTypeInfo typeInfo = facade.getTypeInfo(innerExpression, context.replaceScope(context.scope), isStatement);
|
||||
return DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo());
|
||||
return DataFlowUtils.checkType(typeInfo, expression, context);
|
||||
}
|
||||
|
||||
private static JetTypeInfo createNumberValueTypeInfo(
|
||||
@@ -845,7 +845,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
// TODO : Some processing for the label?
|
||||
JetTypeInfo typeInfo = facade.getTypeInfo(baseExpression, context, isStatement);
|
||||
context.labelResolver.exitLabeledElement(baseExpression);
|
||||
return DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo());
|
||||
return DataFlowUtils.checkType(typeInfo, expression, context);
|
||||
}
|
||||
|
||||
private static boolean isKnownToBeNotNull(JetExpression expression, ExpressionTypingContext context) {
|
||||
@@ -932,7 +932,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
context.trace.report(UNSUPPORTED.on(operationSign, "Unknown operation"));
|
||||
result = JetTypeInfo.create(null, context.dataFlowInfo);
|
||||
}
|
||||
return DataFlowUtils.checkType(result.getType(), expression, contextWithExpectedType, result.getDataFlowInfo());
|
||||
return DataFlowUtils.checkType(result, expression, contextWithExpectedType);
|
||||
}
|
||||
|
||||
private JetTypeInfo visitEquality(
|
||||
@@ -1166,7 +1166,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
@Override
|
||||
public JetTypeInfo visitArrayAccessExpression(JetArrayAccessExpression expression, ExpressionTypingContext context) {
|
||||
JetTypeInfo typeInfo = resolveArrayAccessGetMethod(expression, context);
|
||||
return DataFlowUtils.checkType(typeInfo.getType(), expression, context, typeInfo.getDataFlowInfo());
|
||||
return DataFlowUtils.checkType(typeInfo, expression, context);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.ContextDependency;
|
||||
import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext;
|
||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo;
|
||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValue;
|
||||
@@ -140,6 +139,15 @@ public class DataFlowUtils {
|
||||
return JetTypeInfo.create(checkType(expressionType, expression, context), dataFlowInfo);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JetTypeInfo checkType(@NotNull JetTypeInfo typeInfo, @NotNull JetExpression expression, @NotNull ResolutionContext context) {
|
||||
JetType type = checkType(typeInfo.getType(), expression, context);
|
||||
if (type == typeInfo.getType()) {
|
||||
return typeInfo;
|
||||
}
|
||||
return JetTypeInfo.create(type, typeInfo.getDataFlowInfo());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static JetType checkType(@Nullable JetType expressionType, @NotNull JetExpression expression, @NotNull ResolutionContext context) {
|
||||
return checkType(expressionType, expression, context.expectedType, context.dataFlowInfo, context.trace);
|
||||
|
||||
Reference in New Issue
Block a user