Remove obsolete range-related intrinsics from JS translator.

This commit is contained in:
Ilya Gorbunov
2016-11-07 04:33:52 +03:00
parent b850d71e17
commit 61e83a4db5
2 changed files with 7 additions and 4 deletions
@@ -32,11 +32,11 @@ object LongOperationFIF : FunctionIntrinsicFactory {
val LONG_BINARY_OPERATION_LONG = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod|and|or|xor(Long)")
val LONG_BIT_SHIFTS = pattern("Long.shl|shr|ushr(Int)")
val LONG_BINARY_OPERATION_INTEGER = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod(Int|Short|Byte)")
val LONG_BINARY_OPERATION_FLOATING_POINT = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod(Double|Float)")
val LONG_BINARY_OPERATION_FLOATING_POINT = pattern("Long.compareTo|plus|minus|times|div|mod(Double|Float)")
val INTEGER_BINARY_OPERATION_LONG = pattern("Int|Short|Byte.compareTo|rangeTo|plus|minus|times|div|mod(Long)")
val CHAR_BINARY_OPERATION_LONG = pattern("Char.compareTo|rangeTo|plus|minus|times|div|mod(Long)")
val LONG_BINARY_OPERATION_CHAR = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod(Char)")
val FLOATING_POINT_BINARY_OPERATION_LONG = pattern("Double|Float.compareTo|rangeTo|plus|minus|times|div|mod(Long)")
val FLOATING_POINT_BINARY_OPERATION_LONG = pattern("Double|Float.compareTo|plus|minus|times|div|mod(Long)")
private val longBinaryIntrinsics =
(
@@ -103,6 +103,9 @@ public enum PrimitiveBinaryOperationFIF implements FunctionIntrinsicFactory {
private static final DescriptorPredicate BOOLEAN_OPERATIONS = pattern("Boolean.or|and|xor");
private static final DescriptorPredicate STRING_PLUS = pattern("String.plus");
private static final DescriptorPredicate CHAR_RANGE_TO = pattern("Char.rangeTo(Char)");
private static final DescriptorPredicate NUMBER_RANGE_TO = pattern("Byte|Short|Int.rangeTo(Byte|Short|Int)");
private static final ImmutableMap<String, JsBinaryOperator> BINARY_BITWISE_OPERATIONS = ImmutableMap.<String, JsBinaryOperator>builder()
.put("or", JsBinaryOperator.BIT_OR)
.put("and", JsBinaryOperator.BIT_AND)
@@ -119,7 +122,7 @@ public enum PrimitiveBinaryOperationFIF implements FunctionIntrinsicFactory {
@Nullable
@Override
public FunctionIntrinsic getIntrinsic(@NotNull FunctionDescriptor descriptor) {
if (pattern("Char.rangeTo(Char)").apply(descriptor)) {
if (CHAR_RANGE_TO.apply(descriptor)) {
return new RangeToIntrinsic(descriptor);
}
@@ -140,7 +143,7 @@ public enum PrimitiveBinaryOperationFIF implements FunctionIntrinsicFactory {
if (pattern("Int|Short|Byte.div(Int|Short|Byte)").apply(descriptor)) {
return INTEGER_DIVISION_INTRINSIC;
}
if (descriptor.getName().equals(Name.identifier("rangeTo"))) {
if (NUMBER_RANGE_TO.apply(descriptor)) {
return new RangeToIntrinsic(descriptor);
}
if (INT_WITH_BIT_OPERATIONS.apply(descriptor)) {