From 9672026a53f8b17fa37f929876e075b9275ca725 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Wed, 29 Jan 2014 16:29:27 +0400 Subject: [PATCH] Add a superclass for byte, short, int, long compile-time constants --- .../evaluate/ConstantExpressionEvaluator.kt | 10 ++++-- .../resolve/calls/CallExpressionResolver.java | 7 ++-- compiler/testData/evaluate/isPure/enum.kt | 9 ----- compiler/testData/evaluate/isPure/strings.kt | 16 --------- compiler/testData/evaluate/isPure/toType.kt | 6 ---- .../AbstractEvaluateExpressionTest.kt | 17 +++++---- .../EvaluateExpressionTestGenerated.java | 10 ------ .../resolve/constants/AnnotationValue.java | 2 +- .../lang/resolve/constants/ArrayValue.java | 2 +- .../lang/resolve/constants/BooleanValue.java | 2 +- .../jet/lang/resolve/constants/ByteValue.java | 2 +- .../jet/lang/resolve/constants/CharValue.java | 2 +- .../constants/CompileTimeConstant.java | 9 +---- .../lang/resolve/constants/DoubleValue.java | 2 +- .../jet/lang/resolve/constants/EnumValue.java | 2 +- .../lang/resolve/constants/ErrorValue.java | 2 +- .../lang/resolve/constants/FloatValue.java | 2 +- .../jet/lang/resolve/constants/IntValue.java | 2 +- .../constants/IntegerValueConstant.java | 36 +++++++++++++++++++ .../constants/IntegerValueTypeConstant.java | 2 +- .../resolve/constants/JavaClassValue.java | 2 +- .../jet/lang/resolve/constants/LongValue.java | 2 +- .../jet/lang/resolve/constants/NullValue.java | 2 +- .../lang/resolve/constants/ShortValue.java | 2 +- .../lang/resolve/constants/StringValue.java | 2 +- 25 files changed, 75 insertions(+), 77 deletions(-) delete mode 100644 compiler/testData/evaluate/isPure/enum.kt delete mode 100644 compiler/testData/evaluate/isPure/strings.kt create mode 100644 core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueConstant.java 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 20fcae6a702..e843278189f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/evaluate/ConstantExpressionEvaluator.kt @@ -214,7 +214,13 @@ public class ConstantExpressionEvaluator private (val trace: BindingTrace) : Jet } private fun canBeUsedInAnnotation(expression: JetExpression) = trace.get(BindingContext.COMPILE_TIME_VALUE, expression)?.canBeUsedInAnnotations() ?: false - private fun isPureConstant(expression: JetExpression) = trace.get(BindingContext.COMPILE_TIME_VALUE, expression)?.isPure() ?: false + private fun isPureConstant(expression: JetExpression): Boolean { + val compileTimeConstant = trace.get(BindingContext.COMPILE_TIME_VALUE, expression) + if (compileTimeConstant is IntegerValueConstant) { + return compileTimeConstant.isPure() + } + return false + } private fun evaluateUnaryAndCheck(receiver: OperationArgument, name: String, callExpression: JetExpression): Any? { val functions = unaryOperations[UnaryOperationKey(receiver.ctcType, name)] @@ -439,7 +445,7 @@ public fun recordCompileTimeValueForInitializerIfNeeded( } public fun IntegerValueTypeConstant.createCompileTimeConstantWithType(expectedType: JetType): CompileTimeConstant<*>? - = createCompileTimeConstant(this.getValue(expectedType), EvaluatorContext(this.canBeUsedInAnnotations(), this.isPure())) + = createCompileTimeConstant(this.getValue(expectedType), EvaluatorContext(this.canBeUsedInAnnotations(), true)) private fun hasLongSuffix(text: String) = text.endsWith('l') || text.endsWith('L') 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 e34a1887867..265b26b70cd 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 @@ -39,6 +39,7 @@ import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImp import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsUtil; import org.jetbrains.jet.lang.resolve.calls.util.CallMaker; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; +import org.jetbrains.jet.lang.resolve.constants.IntegerValueConstant; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.ChainedScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -466,9 +467,9 @@ public class CallExpressionResolver { } CompileTimeConstant value = ConstantExpressionEvaluator.object$.evaluate(expression, context.trace, context.expectedType); - if (value != null && value.isPure()) { - return BasicExpressionTypingVisitor.createCompileTimeConstantTypeInfo(value, expression, context); - } + if (value instanceof IntegerValueConstant && ((IntegerValueConstant) value).isPure()) { + return BasicExpressionTypingVisitor.createCompileTimeConstantTypeInfo(value, expression, context); + } JetTypeInfo typeInfo = JetTypeInfo.create(selectorReturnType, selectorReturnTypeInfo.getDataFlowInfo()); if (context.contextDependency == INDEPENDENT) { diff --git a/compiler/testData/evaluate/isPure/enum.kt b/compiler/testData/evaluate/isPure/enum.kt deleted file mode 100644 index 2bacc61efed..00000000000 --- a/compiler/testData/evaluate/isPure/enum.kt +++ /dev/null @@ -1,9 +0,0 @@ -package test - -enum class MyEnum { A } - -// val prop1: false -val prop1 = MyEnum.A - -// val prop2: false -val prop2 = javaClass() diff --git a/compiler/testData/evaluate/isPure/strings.kt b/compiler/testData/evaluate/isPure/strings.kt deleted file mode 100644 index 779c4986182..00000000000 --- a/compiler/testData/evaluate/isPure/strings.kt +++ /dev/null @@ -1,16 +0,0 @@ -package test - -// val prop1: false -val prop1 = "" - -// val prop2: false -val prop2 = "a" - -// val prop3: false -val prop3 = "\"a\"" - -// val prop5: false -val prop5 = "a${1 + 1}" - -// val prop6: false -val prop6 = "a" + "b" diff --git a/compiler/testData/evaluate/isPure/toType.kt b/compiler/testData/evaluate/isPure/toType.kt index 8ec5e7eeb68..4cbcce40b65 100644 --- a/compiler/testData/evaluate/isPure/toType.kt +++ b/compiler/testData/evaluate/isPure/toType.kt @@ -14,9 +14,3 @@ val prop4 = 1.toShort() // val prop5: false val prop5 = 1.toChar() - -// val prop6: false -val prop6 = 1.toDouble() - -// val prop7: false -val prop7 = 1.toFloat() \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/evaluate/AbstractEvaluateExpressionTest.kt b/compiler/tests/org/jetbrains/jet/evaluate/AbstractEvaluateExpressionTest.kt index 07e45327af7..064e44625f6 100644 --- a/compiler/tests/org/jetbrains/jet/evaluate/AbstractEvaluateExpressionTest.kt +++ b/compiler/tests/org/jetbrains/jet/evaluate/AbstractEvaluateExpressionTest.kt @@ -33,8 +33,9 @@ import org.jetbrains.jet.util.slicedmap.WritableSlice import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant import org.jetbrains.jet.lang.resolve.constants.StringValue import org.jetbrains.jet.lang.descriptors.VariableDescriptor +import org.jetbrains.jet.lang.resolve.constants.IntegerValueConstant -abstract class AbstractEvaluateExpressionTest: AbstractAnnotationDescriptorResolveTest() { +abstract class AbstractEvaluateExpressionTest : AbstractAnnotationDescriptorResolveTest() { // Test directives should look like [// val testedPropertyName: expectedValue] fun doConstantTest(path: String) { @@ -43,8 +44,7 @@ abstract class AbstractEvaluateExpressionTest: AbstractAnnotationDescriptorResol val compileTimeConstant = context.get(BindingContext.COMPILE_TIME_VALUE, property.getInitializer()) if (compileTimeConstant is StringValue) { "\\\"${compileTimeConstant.getValue()}\\\"" - } - else { + } else { compileTimeConstant.toString() } } @@ -55,7 +55,11 @@ abstract class AbstractEvaluateExpressionTest: AbstractAnnotationDescriptorResol doTest(path) { property, context -> val compileTimeConstant = context.get(BindingContext.COMPILE_TIME_VALUE, property.getInitializer()) - compileTimeConstant?.isPure().toString() + if (compileTimeConstant is IntegerValueConstant) { + compileTimeConstant.isPure().toString() + } else { + "null" + } } } @@ -74,7 +78,7 @@ abstract class AbstractEvaluateExpressionTest: AbstractAnnotationDescriptorResol assertNotNull(expected, "Failed to find expected directive: $expectedPropertyPrefix") val property = AbstractAnnotationDescriptorResolveTest.getPropertyDescriptor(packageView, propertyName, false) - ?: AbstractAnnotationDescriptorResolveTest.getLocalVarDescriptor(context!!, propertyName) + ?: AbstractAnnotationDescriptorResolveTest.getLocalVarDescriptor(context!!, propertyName) val jetProperty = BindingContextUtils.descriptorToDeclaration(context!!, property) as JetProperty @@ -96,8 +100,7 @@ abstract class AbstractEvaluateExpressionTest: AbstractAnnotationDescriptorResol val matcher = pattern.matcher(it) if (matcher.find()) { matcher.group(0) ?: "Couldn't match tested object $it" - } - else "Couldn't match tested object $it" + } else "Couldn't match tested object $it" } } diff --git a/compiler/tests/org/jetbrains/jet/evaluate/EvaluateExpressionTestGenerated.java b/compiler/tests/org/jetbrains/jet/evaluate/EvaluateExpressionTestGenerated.java index 54547420430..f59fdcd8058 100644 --- a/compiler/tests/org/jetbrains/jet/evaluate/EvaluateExpressionTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/evaluate/EvaluateExpressionTestGenerated.java @@ -136,11 +136,6 @@ public class EvaluateExpressionTestGenerated extends AbstractEvaluateExpressionT JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/evaluate/isPure"), Pattern.compile("^(.+)\\.kt$"), true); } - @TestMetadata("enum.kt") - public void testEnum() throws Exception { - doIsPureTest("compiler/testData/evaluate/isPure/enum.kt"); - } - @TestMetadata("innerToType.kt") public void testInnerToType() throws Exception { doIsPureTest("compiler/testData/evaluate/isPure/innerToType.kt"); @@ -151,11 +146,6 @@ public class EvaluateExpressionTestGenerated extends AbstractEvaluateExpressionT doIsPureTest("compiler/testData/evaluate/isPure/namedConstants.kt"); } - @TestMetadata("strings.kt") - public void testStrings() throws Exception { - doIsPureTest("compiler/testData/evaluate/isPure/strings.kt"); - } - @TestMetadata("toType.kt") public void testToType() throws Exception { doIsPureTest("compiler/testData/evaluate/isPure/toType.kt"); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/AnnotationValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/AnnotationValue.java index 2a384a4e6e7..3eed4039b4f 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/AnnotationValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/AnnotationValue.java @@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; public class AnnotationValue extends CompileTimeConstant { public AnnotationValue(@NotNull AnnotationDescriptor value) { - super(value, true, false); + super(value, true); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ArrayValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ArrayValue.java index 067a3bef32b..d082d2a7410 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ArrayValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ArrayValue.java @@ -28,7 +28,7 @@ public class ArrayValue extends CompileTimeConstant> private final JetType type; public ArrayValue(@NotNull List> value, @NotNull JetType type, boolean canBeUsedInAnnotations) { - super(value, canBeUsedInAnnotations, false); + super(value, canBeUsedInAnnotations); this.type = type; } diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/BooleanValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/BooleanValue.java index 53a169588d3..76494dbc3ea 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/BooleanValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/BooleanValue.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.types.JetType; public class BooleanValue extends CompileTimeConstant { public BooleanValue(boolean value, boolean canBeUseInAnnotation) { - super(value, canBeUseInAnnotation, false); + super(value, canBeUseInAnnotation); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ByteValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ByteValue.java index a6e9142c11e..74ea6b13c73 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ByteValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ByteValue.java @@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; -public class ByteValue extends CompileTimeConstant { +public class ByteValue extends IntegerValueConstant { public ByteValue(byte value, boolean canBeUsedInAnnotations, boolean pure) { super(value, canBeUsedInAnnotations, pure); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CharValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CharValue.java index 5c3c74f09ec..197c2e1aac3 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CharValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CharValue.java @@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.types.JetType; -public class CharValue extends CompileTimeConstant { +public class CharValue extends IntegerValueConstant { public CharValue(char value, boolean canBeUsedInAnnotations, boolean pure) { super(value, canBeUsedInAnnotations, pure); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstant.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstant.java index cd8da52c273..07dce8a09bf 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstant.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/CompileTimeConstant.java @@ -25,23 +25,16 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; public abstract class CompileTimeConstant { protected final T value; private final boolean canBeUsedInAnnotations; - // if false = constant type cannot be changed, ex. val a: Long = 1.toInt() (should be a TYPE_MISMATCH error, 1.toInt() isn't pure) - private final boolean isPure; - protected CompileTimeConstant(T value, boolean canBeUsedInAnnotations, boolean pure) { + protected CompileTimeConstant(T value, boolean canBeUsedInAnnotations) { this.value = value; this.canBeUsedInAnnotations = canBeUsedInAnnotations; - this.isPure = pure; } public boolean canBeUsedInAnnotations() { return canBeUsedInAnnotations; } - public boolean isPure() { - return isPure; - } - @Nullable public T getValue() { return value; diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/DoubleValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/DoubleValue.java index 54deb33ba02..6f06ee2e642 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/DoubleValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/DoubleValue.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.types.JetType; public class DoubleValue extends CompileTimeConstant { public DoubleValue(double value, boolean canBeUsedInAnnotations) { - super(value, canBeUsedInAnnotations, false); + super(value, canBeUsedInAnnotations); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/EnumValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/EnumValue.java index 76fc691cca3..0b6f05a566a 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/EnumValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/EnumValue.java @@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; public class EnumValue extends CompileTimeConstant { public EnumValue(@NotNull ClassDescriptor value) { - super(value, true, false); + super(value, true); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ErrorValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ErrorValue.java index ffe6f103d57..465dde4892c 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ErrorValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ErrorValue.java @@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; public abstract class ErrorValue extends CompileTimeConstant { public ErrorValue() { - super(null, true, false); + super(null, true); } @Override diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/FloatValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/FloatValue.java index b0bbcf459f2..3e439e467a7 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/FloatValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/FloatValue.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.types.JetType; public class FloatValue extends CompileTimeConstant { public FloatValue(float value, boolean canBeUsedInAnnotations) { - super(value, canBeUsedInAnnotations, false); + super(value, canBeUsedInAnnotations); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntValue.java index 885cc7bda92..a5101819891 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntValue.java @@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; -public class IntValue extends CompileTimeConstant { +public class IntValue extends IntegerValueConstant { public IntValue(int value, boolean canBeUsedInAnnotations, boolean pure) { super(value, canBeUsedInAnnotations, pure); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueConstant.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueConstant.java new file mode 100644 index 00000000000..fa21468393c --- /dev/null +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueConstant.java @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2014 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; + +public abstract class IntegerValueConstant extends CompileTimeConstant { + + /* + * if false then constant type cannot be changed + * ex1. val a: Long = 1.toInt() (TYPE_MISMATCH error, 1.toInt() isn't pure) + * ex2. val b: Int = a (TYPE_MISMATCH error, a isn't pure) + * */ + private final boolean isPure; + + protected IntegerValueConstant(T value, boolean canBeUsedInAnnotations, boolean pure) { + super(value, canBeUsedInAnnotations); + isPure = pure; + } + + public boolean isPure() { + return isPure; + } +} diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java index 4f1d5de1275..a1425930b2a 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/IntegerValueTypeConstant.java @@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.Annotations; import java.util.Collections; -public class IntegerValueTypeConstant extends CompileTimeConstant { +public class IntegerValueTypeConstant extends IntegerValueConstant { private final IntegerValueTypeConstructor typeConstructor; diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/JavaClassValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/JavaClassValue.java index b0c4dd3eafc..60b2e3f631b 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/JavaClassValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/JavaClassValue.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; public class JavaClassValue extends CompileTimeConstant { public JavaClassValue(@NotNull JetType value) { - super(value, true, false); + super(value, true); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/LongValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/LongValue.java index 4dc8fdcaf1c..326c53fb05f 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/LongValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/LongValue.java @@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; -public class LongValue extends CompileTimeConstant { +public class LongValue extends IntegerValueConstant { public LongValue(long value, boolean canBeUsedInAnnotations, boolean pure) { super(value, canBeUsedInAnnotations, pure); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NullValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NullValue.java index 7b79f77f895..e9cdaeb553f 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NullValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/NullValue.java @@ -26,7 +26,7 @@ public class NullValue extends CompileTimeConstant { public static final NullValue NULL = new NullValue(); private NullValue() { - super(null, false, false); + super(null, false); } @NotNull diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ShortValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ShortValue.java index fee473bea0c..1df4b4e7b51 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ShortValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/ShortValue.java @@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; -public class ShortValue extends CompileTimeConstant { +public class ShortValue extends IntegerValueConstant { public ShortValue(short value, boolean canBeUsedInAnnotations, boolean pure) { super(value, canBeUsedInAnnotations, pure); diff --git a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/StringValue.java b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/StringValue.java index a90ffb1f7a9..1c1a762a456 100644 --- a/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/StringValue.java +++ b/core/descriptors/src/org/jetbrains/jet/lang/resolve/constants/StringValue.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.types.JetType; public class StringValue extends CompileTimeConstant { public StringValue(String value, boolean canBeUsedInAnnotations) { - super(value, canBeUsedInAnnotations, false); + super(value, canBeUsedInAnnotations); } @NotNull