Remove DynamicState and make NumState an abstract class
Change-Id: I6c3ec94a26f6522d24cf964823b739dfe2c42c62
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103021
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/constant/value.dart b/pkg/analyzer/lib/src/dart/constant/value.dart
index 9996d6a..db0ed6f 100644
--- a/pkg/analyzer/lib/src/dart/constant/value.dart
+++ b/pkg/analyzer/lib/src/dart/constant/value.dart
@@ -78,8 +78,6 @@
return UNKNOWN_VALUE;
}
return BoolState.from(identical(value, rightValue));
- } else if (rightOperand is DynamicState) {
- return UNKNOWN_VALUE;
}
return FALSE_STATE;
}
@@ -229,8 +227,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
} else if (result is StringState) {
return new DartObjectImpl(typeProvider.stringType, result);
}
@@ -297,8 +293,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
}
// We should never get here.
throw new StateError("divide returned a ${result.runtimeType}");
@@ -579,8 +573,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
}
// We should never get here.
throw new StateError("minus returned a ${result.runtimeType}");
@@ -597,8 +589,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
}
// We should never get here.
throw new StateError("negated returned a ${result.runtimeType}");
@@ -641,8 +631,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
}
// We should never get here.
throw new StateError("remainder returned a ${result.runtimeType}");
@@ -690,8 +678,6 @@
return new DartObjectImpl(typeProvider.intType, result);
} else if (result is DoubleState) {
return new DartObjectImpl(typeProvider.doubleType, result);
- } else if (result is NumState) {
- return new DartObjectImpl(typeProvider.numType, result);
}
// We should never get here.
throw new StateError("times returned a ${result.runtimeType}");
@@ -813,9 +799,6 @@
int get hashCode => value == null ? 0 : value.hashCode;
@override
- bool get isBoolNumStringOrNull => true;
-
- @override
bool get isUnknown => value == null;
@override
@@ -843,8 +826,6 @@
return UNKNOWN_VALUE;
}
return new DoubleState(value + rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -876,20 +857,12 @@
return UNKNOWN_VALUE;
}
return new DoubleState(value / rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
@override
- BoolState equalEqual(InstanceState rightOperand) {
- assertBoolNumStringOrNull(rightOperand);
- return isIdentical(rightOperand);
- }
-
- @override
BoolState greaterThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -907,8 +880,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value > rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -932,8 +903,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value >= rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -959,8 +928,6 @@
}
double result = value / rightValue;
return new IntState(result.toInt());
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return IntState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -983,8 +950,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value == rightValue.toDouble());
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
@@ -1012,8 +977,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value < rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1037,8 +1000,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value <= rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1062,8 +1023,6 @@
return UNKNOWN_VALUE;
}
return new DoubleState(value - rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1095,8 +1054,6 @@
return UNKNOWN_VALUE;
}
return new DoubleState(value % rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1120,8 +1077,6 @@
return UNKNOWN_VALUE;
}
return new DoubleState(value * rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1131,173 +1086,6 @@
String toString() => value == null ? "-unknown-" : value.toString();
}
-/// The state of an object representing a Dart object for which there is no type
-/// information.
-class DynamicState extends InstanceState {
- /// The unique instance of this class.
- static DynamicState DYNAMIC_STATE = new DynamicState();
-
- @override
- bool get isBool => true;
-
- @override
- bool get isBoolNumStringOrNull => true;
-
- @override
- String get typeName => "dynamic";
-
- @override
- NumState add(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return _unknownNum(rightOperand);
- }
-
- @override
- IntState bitAnd(InstanceState rightOperand) {
- assertIntOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- IntState bitNot() => IntState.UNKNOWN_VALUE;
-
- @override
- IntState bitOr(InstanceState rightOperand) {
- assertIntOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- IntState bitXor(InstanceState rightOperand) {
- assertIntOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- StringState concatenate(InstanceState rightOperand) {
- assertString(rightOperand);
- return StringState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState convertToBool() => BoolState.UNKNOWN_VALUE;
-
- @override
- StringState convertToString() => StringState.UNKNOWN_VALUE;
-
- @override
- NumState divide(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return _unknownNum(rightOperand);
- }
-
- @override
- BoolState equalEqual(InstanceState rightOperand) {
- assertBoolNumStringOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState greaterThan(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState greaterThanOrEqual(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- IntState integerDivide(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState isIdentical(InstanceState rightOperand) {
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lazyAnd(InstanceState rightOperandComputer()) {
- assertBool(rightOperandComputer());
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lazyEqualEqual(InstanceState rightOperand) {
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lazyOr(InstanceState rightOperandComputer()) {
- InstanceState rightOperand = rightOperandComputer();
- assertBool(rightOperand);
- return rightOperand.convertToBool();
- }
-
- @override
- BoolState lessThan(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lessThanOrEqual(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState logicalNot() => BoolState.UNKNOWN_VALUE;
-
- @override
- NumState minus(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return _unknownNum(rightOperand);
- }
-
- @override
- NumState negated() => NumState.UNKNOWN_VALUE;
-
- @override
- NumState remainder(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return _unknownNum(rightOperand);
- }
-
- @override
- IntState shiftLeft(InstanceState rightOperand) {
- assertIntOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- IntState shiftRight(InstanceState rightOperand) {
- assertIntOrNull(rightOperand);
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- NumState times(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return _unknownNum(rightOperand);
- }
-
- /// Return an object representing an unknown numeric value whose type is based
- /// on the type of the [rightOperand].
- NumState _unknownNum(InstanceState rightOperand) {
- if (rightOperand is IntState) {
- return IntState.UNKNOWN_VALUE;
- } else if (rightOperand is DoubleState) {
- return DoubleState.UNKNOWN_VALUE;
- }
- return NumState.UNKNOWN_VALUE;
- }
-}
-
/// Exception that would be thrown during the evaluation of Dart code.
class EvaluationException {
/// The error code associated with the exception.
@@ -1350,8 +1138,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(_element == rightElement);
- } else if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
@@ -1435,9 +1221,6 @@
@override
BoolState isIdentical(InstanceState rightOperand) {
- if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
- }
return BoolState.from(this == rightOperand);
}
@@ -1508,7 +1291,7 @@
/// Throw an exception if the given [state] does not represent a boolean value.
void assertBool(InstanceState state) {
- if (!(state is BoolState || state is DynamicState)) {
+ if (state is! BoolState) {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL);
}
}
@@ -1517,12 +1300,9 @@
/// numeric, string or null value.
void assertBoolNumStringOrNull(InstanceState state) {
if (!(state is BoolState ||
- state is DoubleState ||
- state is IntState ||
state is NumState ||
state is StringState ||
- state is NullState ||
- state is DynamicState)) {
+ state is NullState)) {
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL_NUM_STRING);
}
@@ -1531,10 +1311,7 @@
/// Throw an exception if the given [state] does not represent an integer or
/// null value.
void assertIntOrNull(InstanceState state) {
- if (!(state is IntState ||
- state is NumState ||
- state is NullState ||
- state is DynamicState)) {
+ if (!(state is IntState || state is NullState)) {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
}
}
@@ -1542,18 +1319,14 @@
/// Throw an exception if the given [state] does not represent a boolean,
/// numeric, string or null value.
void assertNumOrNull(InstanceState state) {
- if (!(state is DoubleState ||
- state is IntState ||
- state is NumState ||
- state is NullState ||
- state is DynamicState)) {
+ if (!(state is NumState || state is NullState)) {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
}
}
/// Throw an exception if the given [state] does not represent a String value.
void assertString(InstanceState state) {
- if (!(state is StringState || state is DynamicState)) {
+ if (state is! StringState) {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL);
}
}
@@ -1913,9 +1686,6 @@
int get hashCode => value == null ? 0 : value.hashCode;
@override
- bool get isBoolNumStringOrNull => true;
-
- @override
bool get isInt => true;
@override
@@ -1949,8 +1719,6 @@
return DoubleState.UNKNOWN_VALUE;
}
return new DoubleState(value.toDouble() + rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1968,8 +1736,6 @@
return UNKNOWN_VALUE;
}
return new IntState(value & rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -1995,8 +1761,6 @@
return UNKNOWN_VALUE;
}
return new IntState(value | rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2014,8 +1778,6 @@
return UNKNOWN_VALUE;
}
return new IntState(value ^ rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2048,20 +1810,12 @@
return DoubleState.UNKNOWN_VALUE;
}
return new DoubleState(value.toDouble() / rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return DoubleState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
@override
- BoolState equalEqual(InstanceState rightOperand) {
- assertBoolNumStringOrNull(rightOperand);
- return isIdentical(rightOperand);
- }
-
- @override
BoolState greaterThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2079,8 +1833,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value.toDouble() > rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2104,8 +1856,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value.toDouble() >= rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2133,8 +1883,6 @@
}
double result = value.toDouble() / rightValue;
return new IntState(result.toInt());
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2157,8 +1905,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(rightValue == value.toDouble());
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
@@ -2186,8 +1932,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value.toDouble() < rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2211,8 +1955,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value.toDouble() <= rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return BoolState.UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2244,8 +1986,6 @@
}
return new IntState(value ~/ divisor);
}
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2272,8 +2012,6 @@
return DoubleState.UNKNOWN_VALUE;
}
return new DoubleState(value.toDouble() - rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2310,8 +2048,6 @@
return DoubleState.UNKNOWN_VALUE;
}
return new DoubleState(value.toDouble() % rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2333,8 +2069,6 @@
if (rightValue >= 0) {
return new IntState(value << rightValue);
}
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2356,8 +2090,6 @@
if (rightValue >= 0) {
return new IntState(value >> rightValue);
}
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2384,8 +2116,6 @@
return DoubleState.UNKNOWN_VALUE;
}
return new DoubleState(value.toDouble() * rightValue);
- } else if (rightOperand is DynamicState || rightOperand is NumState) {
- return UNKNOWN_VALUE;
}
throw new EvaluationException(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
@@ -2448,9 +2178,6 @@
@override
BoolState isIdentical(InstanceState rightOperand) {
- if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
- }
return BoolState.from(this == rightOperand);
}
@@ -2531,9 +2258,6 @@
@override
BoolState isIdentical(InstanceState rightOperand) {
- if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
- }
return BoolState.from(this == rightOperand);
}
@@ -2599,9 +2323,6 @@
@override
BoolState isIdentical(InstanceState rightOperand) {
- if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
- }
return BoolState.from(rightOperand is NullState);
}
@@ -2620,121 +2341,16 @@
String toString() => "null";
}
-/// The state of an object representing a number of an unknown type (a 'num').
-class NumState extends InstanceState {
- /// A state that can be used to represent a number whose value is not known.
- static NumState UNKNOWN_VALUE = new NumState();
-
- @override
- int get hashCode => 7;
-
+/// The state of an object representing a number.
+abstract class NumState extends InstanceState {
@override
bool get isBoolNumStringOrNull => true;
@override
- bool get isUnknown => identical(this, UNKNOWN_VALUE);
-
- @override
- String get typeName => "num";
-
- @override
- bool operator ==(Object object) => object is NumState;
-
- @override
- NumState add(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return UNKNOWN_VALUE;
- }
-
- @override
- StringState convertToString() => StringState.UNKNOWN_VALUE;
-
- @override
- NumState divide(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return DoubleState.UNKNOWN_VALUE;
- }
-
- @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
+ return isIdentical(rightOperand);
}
-
- @override
- BoolState greaterThan(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState greaterThanOrEqual(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- IntState integerDivide(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- if (rightOperand is IntState) {
- int rightValue = rightOperand.value;
- if (rightValue == null) {
- return IntState.UNKNOWN_VALUE;
- } else if (rightValue == 0) {
- throw new EvaluationException(
- CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE);
- }
- } else if (rightOperand is DynamicState) {
- return IntState.UNKNOWN_VALUE;
- }
- return IntState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState isIdentical(InstanceState rightOperand) {
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lazyEqualEqual(InstanceState rightOperand) {
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lessThan(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- BoolState lessThanOrEqual(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return BoolState.UNKNOWN_VALUE;
- }
-
- @override
- NumState minus(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return UNKNOWN_VALUE;
- }
-
- @override
- NumState negated() => UNKNOWN_VALUE;
-
- @override
- NumState remainder(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return UNKNOWN_VALUE;
- }
-
- @override
- NumState times(InstanceState rightOperand) {
- assertNumOrNull(rightOperand);
- return UNKNOWN_VALUE;
- }
-
- @override
- String toString() => "-unknown-";
}
/// The state of an object representing a set.
@@ -2790,9 +2406,6 @@
@override
BoolState isIdentical(InstanceState rightOperand) {
- if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
- }
return BoolState.from(this == rightOperand);
}
@@ -2857,8 +2470,6 @@
return UNKNOWN_VALUE;
}
return new StringState("$value$rightValue");
- } else if (rightOperand is DynamicState) {
- return UNKNOWN_VALUE;
}
return super.concatenate(rightOperand);
}
@@ -2883,8 +2494,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value == rightValue);
- } else if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
@@ -2949,8 +2558,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(value == rightValue);
- } else if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
@@ -3007,8 +2614,6 @@
return BoolState.UNKNOWN_VALUE;
}
return BoolState.from(_type == rightType);
- } else if (rightOperand is DynamicState) {
- return BoolState.UNKNOWN_VALUE;
}
return BoolState.FALSE_STATE;
}
diff --git a/pkg/analyzer/test/src/dart/constant/value_test.dart b/pkg/analyzer/test/src/dart/constant/value_test.dart
index b6c7046..521182b 100644
--- a/pkg/analyzer/test/src/dart/constant/value_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/value_test.dart
@@ -595,10 +595,6 @@
expect(_doubleValue(null).hasKnownValue, isFalse);
}
- void test_hasKnownValue_dynamic() {
- expect(_dynamicValue().hasKnownValue, isTrue);
- }
-
void test_hasKnownValue_int_known() {
expect(_intValue(23).hasKnownValue, isTrue);
}
@@ -611,10 +607,6 @@
expect(_listValue().hasKnownValue, isTrue);
}
- void test_hasKnownValue_list_invalidElement() {
- expect(_listValue([_dynamicValue()]).hasKnownValue, isTrue);
- }
-
void test_hasKnownValue_list_valid() {
expect(_listValue([_intValue(23)]).hasKnownValue, isTrue);
}
@@ -623,16 +615,6 @@
expect(_mapValue().hasKnownValue, isTrue);
}
- void test_hasKnownValue_map_invalidKey() {
- expect(_mapValue([_dynamicValue(), _stringValue("value")]).hasKnownValue,
- isTrue);
- }
-
- void test_hasKnownValue_map_invalidValue() {
- expect(_mapValue([_stringValue("key"), _dynamicValue()]).hasKnownValue,
- isTrue);
- }
-
void test_hasKnownValue_map_valid() {
expect(
_mapValue([_stringValue("key"), _stringValue("value")]).hasKnownValue,
@@ -643,10 +625,6 @@
expect(_nullValue().hasKnownValue, isTrue);
}
- void test_hasKnownValue_num() {
- expect(_numValue().hasKnownValue, isFalse);
- }
-
void test_hasKnownValue_string_known() {
expect(_stringValue("twenty-three").hasKnownValue, isTrue);
}
@@ -801,10 +779,6 @@
expect(_doubleValue(null).isBoolNumStringOrNull, isTrue);
}
- void test_isBoolNumStringOrNull_dynamic() {
- expect(_dynamicValue().isBoolNumStringOrNull, isTrue);
- }
-
void test_isBoolNumStringOrNull_int_known() {
expect(_intValue(23).isBoolNumStringOrNull, isTrue);
}
@@ -821,10 +795,6 @@
expect(_nullValue().isBoolNumStringOrNull, isTrue);
}
- void test_isBoolNumStringOrNull_num() {
- expect(_numValue().isBoolNumStringOrNull, isTrue);
- }
-
void test_isBoolNumStringOrNull_string_known() {
expect(_stringValue("twenty-three").isBoolNumStringOrNull, isTrue);
}
@@ -1944,11 +1914,6 @@
}
}
- DartObjectImpl _dynamicValue() {
- return new DartObjectImpl(
- _typeProvider.nullType, DynamicState.DYNAMIC_STATE);
- }
-
DartObjectImpl _intValue(int value) {
if (value == null) {
return new DartObjectImpl(_typeProvider.intType, IntState.UNKNOWN_VALUE);
@@ -1977,10 +1942,6 @@
return new DartObjectImpl(_typeProvider.nullType, NullState.NULL_STATE);
}
- DartObjectImpl _numValue() {
- return new DartObjectImpl(_typeProvider.nullType, NumState.UNKNOWN_VALUE);
- }
-
DartObjectImpl _setValue([Set<DartObjectImpl> elements]) {
return new DartObjectImpl(_typeProvider.setType,
new SetState(elements ?? new Set<DartObjectImpl>()));