From a9da88b425f91bdad98d934e98b9d3be0bf7a0d1 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Wed, 4 Dec 2013 18:38:01 +0400 Subject: [PATCH] Remove NumberValueTypeConstructor --- .../jet/codegen/AnnotationCodegen.java | 4 +- .../jet/codegen/ExpressionCodegen.java | 8 +-- .../evaluate/ConstantExpressionEvaluator.kt | 6 +- .../jet/lang/resolve/AnnotationResolver.java | 8 +-- .../resolve/calls/ArgumentTypeResolver.java | 6 +- .../constants/IntegerValueTypeConstant.java | 39 ------------ .../BasicExpressionTypingVisitor.java | 8 +-- .../lang/types/expressions/DataFlowUtils.java | 6 +- .../AnnotationArgumentVisitor.java | 2 +- ...ant.java => IntegerValueTypeConstant.java} | 18 +++++- .../IntegerValueTypeConstructor.java | 46 +++++++++++++-- .../constants/NumberValueTypeConstructor.java | 59 ------------------- .../jetbrains/jet/lang/types/TypeUtils.java | 8 +-- .../expression/ExpressionVisitor.java | 8 +-- 14 files changed, 88 insertions(+), 138 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java rename core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/{NumberValueTypeConstant.java => IntegerValueTypeConstant.java} (79%) rename {compiler/frontend => core/descriptors}/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java (70%) delete mode 100644 core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstructor.java diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java index 803ada27acc..1c6f9e50215 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AnnotationCodegen.java @@ -254,8 +254,8 @@ public abstract class AnnotationCodegen { } @Override - public Void visitNumberTypeValue(NumberValueTypeConstant value, Void data) { - NumberValueTypeConstructor typeConstructor = value.getValue(); + public Void visitNumberTypeValue(IntegerValueTypeConstant value, Void data) { + IntegerValueTypeConstructor typeConstructor = value.getValue(); Object numberType = EvaluatePackage.getValueForNumberType(typeConstructor, expectedType); if (numberType != null) { annotationVisitor.visit(name, numberType); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 96405ff81d9..ce75b3c9ea7 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -51,8 +51,8 @@ import org.jetbrains.jet.lang.resolve.calls.model.*; import org.jetbrains.jet.lang.resolve.calls.util.CallMaker; import org.jetbrains.jet.lang.resolve.calls.util.ExpressionAsFunctionDescriptor; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstant; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstructor; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor; @@ -1243,9 +1243,9 @@ public class ExpressionCodegen extends JetVisitor implem @Nullable public static CompileTimeConstant getCompileTimeConstant(@NotNull JetExpression expression, @NotNull BindingContext bindingContext) { CompileTimeConstant compileTimeValue = bindingContext.get(BindingContext.COMPILE_TIME_VALUE, expression); - if (compileTimeValue instanceof NumberValueTypeConstant) { + if (compileTimeValue instanceof IntegerValueTypeConstant) { JetType expectedType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression); - return EvaluatePackage.getCompileTimeConstantForNumberType((NumberValueTypeConstructor) compileTimeValue.getValue(), expectedType); + return EvaluatePackage.getCompileTimeConstantForNumberType((IntegerValueTypeConstructor) compileTimeValue.getValue(), expectedType); } return compileTimeValue; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt b/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt index f0c36ef4c5a..746a30a6071 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt @@ -389,7 +389,7 @@ public class ConstantExpressionEvaluator private (val trace: BindingTrace) : Jet val evaluationResult = evaluate(expression, expressionType)?.getValue() if (evaluationResult == null) return null - if (evaluationResult is NumberValueTypeConstructor<*>) { + if (evaluationResult is IntegerValueTypeConstructor) { val evaluationResultWithNewType = evaluationResult.getValueForNumberType(expressionType) if (evaluationResultWithNewType != null) { return OperationArgument(evaluationResultWithNewType, compileTimeType, expression) @@ -411,7 +411,7 @@ public class ConstantExpressionEvaluator private (val trace: BindingTrace) : Jet } } -public fun NumberValueTypeConstructor.getValueForNumberType(expectedType: JetType): Any? { +public fun IntegerValueTypeConstructor.getValueForNumberType(expectedType: JetType): Any? { val valueWithNewType = this.getCompileTimeConstantForNumberType(expectedType) if (valueWithNewType != null) { return valueWithNewType.getValue() @@ -419,7 +419,7 @@ public fun NumberValueTypeConstructor.getValueForNumberType(expecte return null } -public fun NumberValueTypeConstructor.getCompileTimeConstantForNumberType(expectedType: JetType): CompileTimeConstant<*>? { +public fun IntegerValueTypeConstructor.getCompileTimeConstantForNumberType(expectedType: JetType): CompileTimeConstant<*>? { val defaultType = TypeUtils.getPrimitiveNumberType(this, expectedType) return createConvertibleCompileTimeConstant(this.getValue(), defaultType) } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java index 1cf17b5ae5d..a13473922dd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java @@ -35,8 +35,8 @@ import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.calls.util.CallMaker; import org.jetbrains.jet.lang.resolve.constants.ArrayValue; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstant; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstructor; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.jet.lang.types.ErrorUtils; @@ -247,8 +247,8 @@ public class AnnotationResolver { JetExpression argumentExpression = argument.getArgumentExpression(); if (argumentExpression != null) { CompileTimeConstant constant = resolveExpressionToCompileTimeValue(argumentExpression, expectedType, trace); - if (constant instanceof NumberValueTypeConstant) { - NumberValueTypeConstructor typeConstructor = ((NumberValueTypeConstant) constant).getValue(); + if (constant instanceof IntegerValueTypeConstant) { + IntegerValueTypeConstructor typeConstructor = ((IntegerValueTypeConstant) constant).getValue(); JetType defaultType = getPrimitiveNumberType(typeConstructor, expectedType); ArgumentTypeResolver.updateNumberType(defaultType, argumentExpression, trace); } 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 542f8cc150c..dffab71b9c6 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 @@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.calls.context.CallResolutionContext; import org.jetbrains.jet.lang.resolve.calls.context.CheckValueArgumentsMode; import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext; import org.jetbrains.jet.lang.resolve.calls.model.MutableDataFlowInfoForArguments; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstructor; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetTypeInfo; @@ -266,8 +266,8 @@ public class ArgumentTypeResolver { ) { JetType type = context.trace.get(BindingContext.EXPRESSION_TYPE, expression); if (type != null && !type.getConstructor().isDenotable()) { - if (type.getConstructor() instanceof NumberValueTypeConstructor) { - NumberValueTypeConstructor constructor = (NumberValueTypeConstructor) type.getConstructor(); + if (type.getConstructor() instanceof IntegerValueTypeConstructor) { + IntegerValueTypeConstructor constructor = (IntegerValueTypeConstructor) type.getConstructor(); JetType primitiveType = TypeUtils.getPrimitiveNumberType(constructor, context.expectedType); updateNumberType(primitiveType, expression, context.trace); return primitiveType; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java deleted file mode 100644 index 5be9cdde8d1..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.resolve.constants; - -import org.jetbrains.annotations.NotNull; - -public class IntegerValueTypeConstant extends NumberValueTypeConstant { - - private final IntegerValueTypeConstructor value; - - public IntegerValueTypeConstant(long value) { - this.value = new IntegerValueTypeConstructor(value); - } - - @NotNull - @Override - public IntegerValueTypeConstructor getValue() { - return value; - } - - @Override - public String toString() { - return value.toString(); - } -} 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 087d5a85794..8b5fc58b53d 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 @@ -49,7 +49,7 @@ import org.jetbrains.jet.lang.resolve.calls.tasks.TracingStrategy; import org.jetbrains.jet.lang.resolve.calls.util.CallMaker; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstantChecker; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstant; import org.jetbrains.jet.lang.resolve.name.LabelName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -122,7 +122,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { public JetTypeInfo visitConstantExpression(@NotNull JetConstantExpression expression, ExpressionTypingContext context) { CompileTimeConstant value = ConstantExpressionEvaluator.object$.evaluate(expression, context.trace, context.expectedType); - if (!(value instanceof NumberValueTypeConstant)) { + if (!(value instanceof IntegerValueTypeConstant)) { CompileTimeConstantChecker compileTimeConstantChecker = context.getCompileTimeConstantChecker(); boolean hasError = compileTimeConstantChecker.checkConstantExpressionType(value, expression, context.expectedType); if (hasError) { @@ -710,8 +710,8 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @NotNull ExpressionTypingContext context ) { JetType expressionType = value.getType(KotlinBuiltIns.getInstance()); - if (value instanceof NumberValueTypeConstant && context.contextDependency == INDEPENDENT) { - expressionType = getPrimitiveNumberType(((NumberValueTypeConstant) value).getValue(), context.expectedType); + if (value instanceof IntegerValueTypeConstant && context.contextDependency == INDEPENDENT) { + expressionType = getPrimitiveNumberType(((IntegerValueTypeConstant) value).getValue(), context.expectedType); ArgumentTypeResolver.updateNumberType(expressionType, expression, context.trace); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java index 6821fa19332..e4170bb4e88 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java @@ -31,7 +31,7 @@ import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; import org.jetbrains.jet.lang.resolve.calls.context.ResolutionContext; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstantChecker; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstant; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetTypeInfo; import org.jetbrains.jet.lang.types.TypeUtils; @@ -170,8 +170,8 @@ public class DataFlowUtils { if (expression instanceof JetConstantExpression) { CompileTimeConstant value = ConstantExpressionEvaluator.object$.evaluate(expression, trace, expectedType); - if (value instanceof NumberValueTypeConstant) { - value = EvaluatePackage.getCompileTimeConstantForNumberType(((NumberValueTypeConstant) value).getValue(), expectedType); + if (value instanceof IntegerValueTypeConstant) { + value = EvaluatePackage.getCompileTimeConstantForNumberType(((IntegerValueTypeConstant) value).getValue(), expectedType); } new CompileTimeConstantChecker(trace, true).checkConstantExpressionType(value, (JetConstantExpression) expression, expectedType); return expressionType; diff --git a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/annotations/AnnotationArgumentVisitor.java b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/annotations/AnnotationArgumentVisitor.java index f585caa755e..fb652d72b23 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/descriptors/annotations/AnnotationArgumentVisitor.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/descriptors/annotations/AnnotationArgumentVisitor.java @@ -51,5 +51,5 @@ public interface AnnotationArgumentVisitor { R visitJavaClassValue(JavaClassValue value, D data); - R visitNumberTypeValue(NumberValueTypeConstant value, D data); + R visitNumberTypeValue(IntegerValueTypeConstant value, D data); } diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstant.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java similarity index 79% rename from core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstant.java rename to core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java index 89529da357d..50568c3cb6c 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstant.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java @@ -27,7 +27,13 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import java.util.Collections; -public abstract class NumberValueTypeConstant implements CompileTimeConstant> { +public class IntegerValueTypeConstant implements CompileTimeConstant { + + private final IntegerValueTypeConstructor value; + + public IntegerValueTypeConstant(long value) { + this.value = new IntegerValueTypeConstructor(value); + } @NotNull @Override @@ -43,6 +49,14 @@ public abstract class NumberValueTypeConstant implements Compi return visitor.visitNumberTypeValue(this, data); } + @NotNull @Override - public abstract NumberValueTypeConstructor getValue(); + public IntegerValueTypeConstructor getValue() { + return value; + } + + @Override + public String toString() { + return value.toString(); + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java similarity index 70% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java rename to core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java index da80241d942..1b824e582dc 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstructor.java @@ -18,12 +18,19 @@ package org.jetbrains.jet.lang.resolve.constants; import com.google.common.collect.Lists; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor; +import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; +import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.TypeConstructor; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import java.util.Collection; +import java.util.Collections; +import java.util.List; -public class IntegerValueTypeConstructor extends NumberValueTypeConstructor { +public class IntegerValueTypeConstructor implements TypeConstructor { private final long value; private final Collection supertypes = Lists.newArrayList(); @@ -44,17 +51,44 @@ public class IntegerValueTypeConstructor extends NumberValueTypeConstructor getSupertypes() { return supertypes; } + @NotNull + @Override + public List getParameters() { + return Collections.emptyList(); + } + + @Override + public boolean isFinal() { + return false; + } + + @Override + public boolean isDenotable() { + return false; + } + + @Nullable + @Override + public ClassifierDescriptor getDeclarationDescriptor() { + return null; + } + + @NotNull + @Override + public List getAnnotations() { + return Collections.emptyList(); + } + + public Long getValue() { + return value; + } + @Override public String toString() { return "IntegerValueType(" + value + ")"; diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstructor.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstructor.java deleted file mode 100644 index 3d6c6430484..00000000000 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NumberValueTypeConstructor.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.resolve.constants; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor; -import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; -import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; -import org.jetbrains.jet.lang.types.TypeConstructor; - -import java.util.Collections; -import java.util.List; - -public abstract class NumberValueTypeConstructor implements TypeConstructor { - @NotNull - @Override - public List getParameters() { - return Collections.emptyList(); - } - - @Override - public boolean isFinal() { - return false; - } - - @Override - public boolean isDenotable() { - return false; - } - - @Nullable - @Override - public ClassifierDescriptor getDeclarationDescriptor() { - return null; - } - - @NotNull - @Override - public List getAnnotations() { - return Collections.emptyList(); - } - - public abstract T getValue(); -} diff --git a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java index 5fa5952a488..a97a3400918 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintPosition; import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystemImpl; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstructor; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.resolve.scopes.ChainedScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; @@ -594,7 +594,7 @@ public class TypeUtils { } @NotNull - public static JetType getDefaultPrimitiveNumberType(@NotNull NumberValueTypeConstructor numberValueTypeConstructor) { + public static JetType getDefaultPrimitiveNumberType(@NotNull IntegerValueTypeConstructor numberValueTypeConstructor) { JetType type = getDefaultPrimitiveNumberType(numberValueTypeConstructor.getSupertypes()); assert type != null : "Strange number value type constructor: " + numberValueTypeConstructor + ". " + "Super types doesn't contain double, int or long: " + numberValueTypeConstructor.getSupertypes(); @@ -620,7 +620,7 @@ public class TypeUtils { @NotNull public static JetType getPrimitiveNumberType( - @NotNull NumberValueTypeConstructor numberValueTypeConstructor, + @NotNull IntegerValueTypeConstructor numberValueTypeConstructor, @NotNull JetType expectedType ) { if (noExpectedType(expectedType) || expectedType.isError()) { @@ -639,7 +639,7 @@ public class TypeUtils { Collection numberTypes = Sets.newLinkedHashSet(); Collection otherTypes = Sets.newLinkedHashSet(); for (JetType type : types) { - if (type.getConstructor() instanceof NumberValueTypeConstructor) { + if (type.getConstructor() instanceof IntegerValueTypeConstructor) { numberTypes.add(type); } else { diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java index 962d54acfc7..ffd02bfa968 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java @@ -29,8 +29,8 @@ import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueTypeConstructor; import org.jetbrains.jet.lang.resolve.constants.NullValue; -import org.jetbrains.jet.lang.resolve.constants.NumberValueTypeConstructor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.k2js.translate.context.TemporaryVariable; @@ -86,11 +86,11 @@ public final class ExpressionVisitor extends TranslatorVisitor { } Object value = compileTimeValue.getValue(); - if (value instanceof NumberValueTypeConstructor) { + if (value instanceof IntegerValueTypeConstructor) { JetType expectedType = context.bindingContext().get(BindingContext.EXPRESSION_TYPE, expression); CompileTimeConstant newConstant = - EvaluatePackage.getCompileTimeConstantForNumberType((NumberValueTypeConstructor) value, expectedType); - assert newConstant != null: "NumberValueTypeConstant should always have notnull value " + compileTimeValue; + EvaluatePackage.getCompileTimeConstantForNumberType((IntegerValueTypeConstructor) value, expectedType); + assert newConstant != null: "IntegerValueTypeConstant should always have notnull value " + compileTimeValue; value = newConstant.getValue(); } if (value instanceof Integer || value instanceof Short || value instanceof Byte) {