diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstantChecker.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstantChecker.java index 5779e7303f8..089491dbdd3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstantChecker.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstantChecker.java @@ -43,9 +43,13 @@ public class CompileTimeConstantChecker { private final BindingTrace trace; private final boolean checkOnlyErrorsThatDependOnExpectedType; - public CompileTimeConstantChecker(@NotNull BindingTrace trace, boolean checkOnlyErrorsThatDependOnExpectedType) { + public CompileTimeConstantChecker( + @NotNull BindingTrace trace, + @NotNull KotlinBuiltIns builtIns, + boolean checkOnlyErrorsThatDependOnExpectedType + ) { this.checkOnlyErrorsThatDependOnExpectedType = checkOnlyErrorsThatDependOnExpectedType; - this.builtIns = KotlinBuiltIns.getInstance(); + this.builtIns = builtIns; this.trace = trace; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java index 0d826b31e27..d6e3f77793c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java @@ -120,9 +120,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { ); if (!(compileTimeConstant instanceof IntegerValueTypeConstant)) { - CompileTimeConstantChecker compileTimeConstantChecker = context.getCompileTimeConstantChecker(); + CompileTimeConstantChecker constantChecker = new CompileTimeConstantChecker(context.trace, components.builtIns, false); ConstantValue constantValue = compileTimeConstant != null ? ((TypedCompileTimeConstant) compileTimeConstant).getConstantValue() : null; - boolean hasError = compileTimeConstantChecker.checkConstantExpressionType(constantValue, expression, context.expectedType); + boolean hasError = constantChecker.checkConstantExpressionType(constantValue, expression, context.expectedType); if (hasError) { IElementType elementType = expression.getNode().getElementType(); return TypeInfoFactoryPackage.createTypeInfo(getDefaultType(elementType), context); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/DataFlowAnalyzer.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/DataFlowAnalyzer.java index a28004bb8cb..9e149b875e5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/DataFlowAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/DataFlowAnalyzer.java @@ -178,7 +178,7 @@ public class DataFlowAnalyzer { if (expression instanceof JetConstantExpression) { ConstantValue constantValue = constantExpressionEvaluator.evaluateToConstantValue(expression, c.trace, c.expectedType); - boolean error = new CompileTimeConstantChecker(c.trace, true) + boolean error = new CompileTimeConstantChecker(c.trace, builtIns, true) .checkConstantExpressionType(constantValue, (JetConstantExpression) expression, c.expectedType); if (hasError != null) hasError.set(error); return expressionType; diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java index f844632bb25..9d35efe057e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java @@ -83,8 +83,6 @@ public class ExpressionTypingContext extends ResolutionContext