Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(894)

Unified Diff: pkg/analyzer/lib/src/generated/constant.dart

Issue 192363003: Translate Java's @Override into Dart's @override. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/generated/ast.dart ('k') | pkg/analyzer/lib/src/generated/element.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/generated/constant.dart
diff --git a/pkg/analyzer/lib/src/generated/constant.dart b/pkg/analyzer/lib/src/generated/constant.dart
index 00c8f46c3b28396060287ed325b7a6723d2d670c..445ef2c9a2e3a7132b2450670fc3967cc66f17ce 100644
--- a/pkg/analyzer/lib/src/generated/constant.dart
+++ b/pkg/analyzer/lib/src/generated/constant.dart
@@ -251,6 +251,7 @@ class ConstantFinder extends RecursiveAstVisitor<Object> {
*/
final Map<VariableElement, VariableDeclaration> variableMap = new Map<VariableElement, VariableDeclaration>();
+ @override
Object visitVariableDeclaration(VariableDeclaration node) {
super.visitVariableDeclaration(node);
Expression initializer = node.initializer;
@@ -451,6 +452,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
this._typeProvider = typeProvider;
}
+ @override
EvaluationResultImpl visitAdjacentStrings(AdjacentStrings node) {
EvaluationResultImpl result = null;
for (StringLiteral string in node.strings) {
@@ -463,6 +465,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return result;
}
+ @override
EvaluationResultImpl visitBinaryExpression(BinaryExpression node) {
EvaluationResultImpl leftResult = node.leftOperand.accept(this);
EvaluationResultImpl rightResult = node.rightOperand.accept(this);
@@ -521,8 +524,10 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
}
}
+ @override
EvaluationResultImpl visitBooleanLiteral(BooleanLiteral node) => _valid(_typeProvider.boolType, BoolState.from(node.value));
+ @override
EvaluationResultImpl visitConditionalExpression(ConditionalExpression node) {
Expression condition = node.condition;
EvaluationResultImpl conditionResult = condition.accept(this);
@@ -552,8 +557,10 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _validWithUnknownValue(thenType.getLeastUpperBound(elseType) as InterfaceType);
}
+ @override
EvaluationResultImpl visitDoubleLiteral(DoubleLiteral node) => _valid(_typeProvider.doubleType, new DoubleState(node.value));
+ @override
EvaluationResultImpl visitInstanceCreationExpression(InstanceCreationExpression node) {
if (!node.isConst) {
// TODO(brianwilkerson) Figure out which error to report.
@@ -612,8 +619,10 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _error(node, null);
}
+ @override
EvaluationResultImpl visitIntegerLiteral(IntegerLiteral node) => _valid(_typeProvider.intType, new IntState(node.value));
+ @override
EvaluationResultImpl visitInterpolationExpression(InterpolationExpression node) {
EvaluationResultImpl result = node.expression.accept(this);
if (result is ValidResult && !result.isBoolNumStringOrNull) {
@@ -622,8 +631,10 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return result.performToString(_typeProvider, node);
}
+ @override
EvaluationResultImpl visitInterpolationString(InterpolationString node) => _valid(_typeProvider.stringType, new StringState(node.value));
+ @override
EvaluationResultImpl visitListLiteral(ListLiteral node) {
if (node.constKeyword == null) {
return new ErrorResult.con1(node, CompileTimeErrorCode.MISSING_CONST_IN_LIST_LITERAL);
@@ -643,6 +654,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _valid(_typeProvider.listType, new ListState(new List.from(elements)));
}
+ @override
EvaluationResultImpl visitMapLiteral(MapLiteral node) {
if (node.constKeyword == null) {
return new ErrorResult.con1(node, CompileTimeErrorCode.MISSING_CONST_IN_MAP_LITERAL);
@@ -664,6 +676,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _valid(_typeProvider.mapType, new MapState(map));
}
+ @override
EvaluationResultImpl visitMethodInvocation(MethodInvocation node) {
Element element = node.methodName.staticElement;
if (element is FunctionElement) {
@@ -687,14 +700,19 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _error(node, null);
}
+ @override
EvaluationResultImpl visitNamedExpression(NamedExpression node) => node.expression.accept(this);
+ @override
EvaluationResultImpl visitNode(AstNode node) => _error(node, null);
+ @override
EvaluationResultImpl visitNullLiteral(NullLiteral node) => new ValidResult(null2);
+ @override
EvaluationResultImpl visitParenthesizedExpression(ParenthesizedExpression node) => node.expression.accept(this);
+ @override
EvaluationResultImpl visitPrefixedIdentifier(PrefixedIdentifier node) {
// validate prefix
SimpleIdentifier prefixNode = node.prefix;
@@ -709,6 +727,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return _getConstantValue(node, node.staticElement);
}
+ @override
EvaluationResultImpl visitPrefixExpression(PrefixExpression node) {
EvaluationResultImpl operand = node.operand.accept(this);
if (operand is ValidResult && operand.isNull) {
@@ -729,12 +748,16 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
}
}
+ @override
EvaluationResultImpl visitPropertyAccess(PropertyAccess node) => _getConstantValue(node, node.propertyName.staticElement);
+ @override
EvaluationResultImpl visitSimpleIdentifier(SimpleIdentifier node) => _getConstantValue(node, node.staticElement);
+ @override
EvaluationResultImpl visitSimpleStringLiteral(SimpleStringLiteral node) => _valid(_typeProvider.stringType, new StringState(node.value));
+ @override
EvaluationResultImpl visitStringInterpolation(StringInterpolation node) {
EvaluationResultImpl result = null;
for (InterpolationElement element in node.elements) {
@@ -747,6 +770,7 @@ class ConstantVisitor extends UnifyingAstVisitor<EvaluationResultImpl> {
return result;
}
+ @override
EvaluationResultImpl visitSymbolLiteral(SymbolLiteral node) {
JavaStringBuilder builder = new JavaStringBuilder();
List<Token> components = node.components;
@@ -1060,138 +1084,204 @@ class ErrorResult extends EvaluationResultImpl {
_errors.addAll(secondResult._errors);
}
+ @override
EvaluationResultImpl add(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.addToError(node, this);
+ @override
EvaluationResultImpl applyBooleanConversion(TypeProvider typeProvider, AstNode node) => this;
+ @override
EvaluationResultImpl bitAnd(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitAndError(node, this);
+ @override
EvaluationResultImpl bitNot(TypeProvider typeProvider, Expression node) => this;
+ @override
EvaluationResultImpl bitOr(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitOrError(node, this);
+ @override
EvaluationResultImpl bitXor(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitXorError(node, this);
+ @override
EvaluationResultImpl concatenate(TypeProvider typeProvider, Expression node, EvaluationResultImpl rightOperand) => rightOperand.concatenateError(node, this);
+ @override
EvaluationResultImpl divide(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.divideError(node, this);
+ @override
EvaluationResultImpl equalEqual(TypeProvider typeProvider, Expression node, EvaluationResultImpl rightOperand) => rightOperand.equalEqualError(node, this);
+ @override
bool equalValues(TypeProvider typeProvider, EvaluationResultImpl result) => false;
List<ErrorResult_ErrorData> get errorData => _errors;
+ @override
EvaluationResultImpl greaterThan(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.greaterThanError(node, this);
+ @override
EvaluationResultImpl greaterThanOrEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.greaterThanOrEqualError(node, this);
+ @override
EvaluationResultImpl integerDivide(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.integerDivideError(node, this);
+ @override
EvaluationResultImpl integerDivideValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl lessThan(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.lessThanError(node, this);
+ @override
EvaluationResultImpl lessThanOrEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.lessThanOrEqualError(node, this);
+ @override
EvaluationResultImpl logicalAnd(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.logicalAndError(node, this);
+ @override
EvaluationResultImpl logicalNot(TypeProvider typeProvider, Expression node) => this;
+ @override
EvaluationResultImpl logicalOr(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.logicalOrError(node, this);
+ @override
EvaluationResultImpl minus(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.minusError(node, this);
+ @override
EvaluationResultImpl negated(TypeProvider typeProvider, Expression node) => this;
+ @override
EvaluationResultImpl notEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.notEqualError(node, this);
+ @override
EvaluationResultImpl performToString(TypeProvider typeProvider, AstNode node) => this;
+ @override
EvaluationResultImpl remainder(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.remainderError(node, this);
+ @override
EvaluationResultImpl shiftLeft(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.shiftLeftError(node, this);
+ @override
EvaluationResultImpl shiftRight(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.shiftRightError(node, this);
+ @override
EvaluationResultImpl times(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.timesError(node, this);
+ @override
EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl addToValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl bitAndValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl bitOrValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl bitXorValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl concatenateValid(TypeProvider typeProvider, Expression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl divideValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl equalEqualError(Expression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl equalEqualValid(TypeProvider typeProvider, Expression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl greaterThanOrEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl greaterThanValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl lessThanOrEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl lessThanValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl logicalAndError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl logicalAndValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl logicalOrError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl logicalOrValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl minusValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl notEqualError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl notEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl remainderValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl shiftLeftValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl shiftRightValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
+ @override
EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand) => new ErrorResult.con2(this, leftOperand);
+ @override
EvaluationResultImpl timesValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) => this;
}
@@ -1390,6 +1480,7 @@ class ReferenceFinder extends RecursiveAstVisitor<Object> {
this._referenceGraph = referenceGraph;
}
+ @override
Object visitSimpleIdentifier(SimpleIdentifier node) {
Element element = node.staticElement;
if (element is PropertyAccessorElement) {
@@ -1422,6 +1513,7 @@ class ValidResult extends EvaluationResultImpl {
*/
ValidResult(this.value);
+ @override
EvaluationResultImpl add(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.addToValid(typeProvider, node, this);
/**
@@ -1430,6 +1522,7 @@ class ValidResult extends EvaluationResultImpl {
* @param node the node against which errors should be reported
* @return the result of applying boolean conversion to the given value
*/
+ @override
EvaluationResultImpl applyBooleanConversion(TypeProvider typeProvider, AstNode node) {
try {
return _valueOf(value.convertToBool(typeProvider));
@@ -1438,8 +1531,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl bitAnd(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitAndValid(typeProvider, node, this);
+ @override
EvaluationResultImpl bitNot(TypeProvider typeProvider, Expression node) {
try {
return _valueOf(value.bitNot(typeProvider));
@@ -1448,16 +1543,22 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl bitOr(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitOrValid(typeProvider, node, this);
+ @override
EvaluationResultImpl bitXor(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.bitXorValid(typeProvider, node, this);
+ @override
EvaluationResultImpl concatenate(TypeProvider typeProvider, Expression node, EvaluationResultImpl rightOperand) => rightOperand.concatenateValid(typeProvider, node, this);
+ @override
EvaluationResultImpl divide(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.divideValid(typeProvider, node, this);
+ @override
EvaluationResultImpl equalEqual(TypeProvider typeProvider, Expression node, EvaluationResultImpl rightOperand) => rightOperand.equalEqualValid(typeProvider, node, this);
+ @override
bool equalValues(TypeProvider typeProvider, EvaluationResultImpl result) {
if (result is! ValidResult) {
return false;
@@ -1465,10 +1566,13 @@ class ValidResult extends EvaluationResultImpl {
return value == (result as ValidResult).value;
}
+ @override
EvaluationResultImpl greaterThan(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.greaterThanValid(typeProvider, node, this);
+ @override
EvaluationResultImpl greaterThanOrEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.greaterThanOrEqualValid(typeProvider, node, this);
+ @override
EvaluationResultImpl integerDivide(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.integerDivideValid(typeProvider, node, this);
/**
@@ -1514,12 +1618,16 @@ class ValidResult extends EvaluationResultImpl {
*/
bool get isUserDefinedObject => value.isUserDefinedObject;
+ @override
EvaluationResultImpl lessThan(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.lessThanValid(typeProvider, node, this);
+ @override
EvaluationResultImpl lessThanOrEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.lessThanOrEqualValid(typeProvider, node, this);
+ @override
EvaluationResultImpl logicalAnd(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.logicalAndValid(typeProvider, node, this);
+ @override
EvaluationResultImpl logicalNot(TypeProvider typeProvider, Expression node) {
try {
return _valueOf(value.logicalNot(typeProvider));
@@ -1528,10 +1636,13 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl logicalOr(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.logicalOrValid(typeProvider, node, this);
+ @override
EvaluationResultImpl minus(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.minusValid(typeProvider, node, this);
+ @override
EvaluationResultImpl negated(TypeProvider typeProvider, Expression node) {
try {
return _valueOf(value.negated(typeProvider));
@@ -1540,8 +1651,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl notEqual(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.notEqualValid(typeProvider, node, this);
+ @override
EvaluationResultImpl performToString(TypeProvider typeProvider, AstNode node) {
try {
return _valueOf(value.performToString(typeProvider));
@@ -1550,14 +1663,19 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl remainder(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.remainderValid(typeProvider, node, this);
+ @override
EvaluationResultImpl shiftLeft(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.shiftLeftValid(typeProvider, node, this);
+ @override
EvaluationResultImpl shiftRight(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.shiftRightValid(typeProvider, node, this);
+ @override
EvaluationResultImpl times(TypeProvider typeProvider, BinaryExpression node, EvaluationResultImpl rightOperand) => rightOperand.timesValid(typeProvider, node, this);
+ @override
String toString() {
if (value == null) {
return "null";
@@ -1565,8 +1683,10 @@ class ValidResult extends EvaluationResultImpl {
return value.toString();
}
+ @override
EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl addToValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.add(typeProvider, value));
@@ -1575,8 +1695,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl bitAndValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.bitAnd(typeProvider, value));
@@ -1585,8 +1707,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl bitOrValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.bitOr(typeProvider, value));
@@ -1595,8 +1719,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl bitXorValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.bitXor(typeProvider, value));
@@ -1605,8 +1731,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl concatenateValid(TypeProvider typeProvider, Expression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.concatenate(typeProvider, value));
@@ -1615,8 +1743,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl divideValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.divide(typeProvider, value));
@@ -1625,8 +1755,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl equalEqualError(Expression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl equalEqualValid(TypeProvider typeProvider, Expression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.equalEqual(typeProvider, value));
@@ -1635,10 +1767,13 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl greaterThanOrEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.greaterThanOrEqual(typeProvider, value));
@@ -1647,6 +1782,7 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl greaterThanValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.greaterThan(typeProvider, value));
@@ -1655,8 +1791,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl integerDivideValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.integerDivide(typeProvider, value));
@@ -1665,10 +1803,13 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl lessThanOrEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.lessThanOrEqual(typeProvider, value));
@@ -1677,6 +1818,7 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl lessThanValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.lessThan(typeProvider, value));
@@ -1685,8 +1827,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl logicalAndError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl logicalAndValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.logicalAnd(typeProvider, value));
@@ -1695,8 +1839,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl logicalOrError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl logicalOrValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.logicalOr(typeProvider, value));
@@ -1705,8 +1851,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl minusValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.minus(typeProvider, value));
@@ -1715,8 +1863,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl notEqualError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl notEqualValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.notEqual(typeProvider, value));
@@ -1725,8 +1875,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl remainderValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.remainder(typeProvider, value));
@@ -1735,8 +1887,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl shiftLeftValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.shiftLeft(typeProvider, value));
@@ -1745,8 +1899,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl shiftRightValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.shiftRight(typeProvider, value));
@@ -1755,8 +1911,10 @@ class ValidResult extends EvaluationResultImpl {
}
}
+ @override
EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand) => leftOperand;
+ @override
EvaluationResultImpl timesValid(TypeProvider typeProvider, BinaryExpression node, ValidResult leftOperand) {
try {
return _valueOf(leftOperand.value.times(typeProvider, value));
@@ -1823,8 +1981,10 @@ class BoolState extends InstanceState {
*/
BoolState(this.value);
+ @override
BoolState convertToBool() => this;
+ @override
StringState convertToString() {
if (value == null) {
return StringState.UNKNOWN_VALUE;
@@ -1832,6 +1992,7 @@ class BoolState extends InstanceState {
return new StringState(value ? "true" : "false");
}
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (value == null) {
@@ -1849,12 +2010,16 @@ class BoolState extends InstanceState {
return FALSE_STATE;
}
+ @override
bool operator ==(Object object) => object is BoolState && identical(value, object.value);
+ @override
String get typeName => "bool";
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => value == null ? 0 : (value ? 2 : 3);
/**
@@ -1862,10 +2027,13 @@ class BoolState extends InstanceState {
*
* @return `true` if this object represents a boolean value
*/
+ @override
bool get isBool => true;
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
BoolState logicalAnd(InstanceState rightOperand) {
assertBool(rightOperand);
if (value == null) {
@@ -1874,6 +2042,7 @@ class BoolState extends InstanceState {
return value ? rightOperand.convertToBool() : FALSE_STATE;
}
+ @override
BoolState logicalNot() {
if (value == null) {
return UNKNOWN_VALUE;
@@ -1881,6 +2050,7 @@ class BoolState extends InstanceState {
return value ? FALSE_STATE : TRUE_STATE;
}
+ @override
BoolState logicalOr(InstanceState rightOperand) {
assertBool(rightOperand);
if (value == null) {
@@ -1889,6 +2059,7 @@ class BoolState extends InstanceState {
return value ? TRUE_STATE : rightOperand.convertToBool();
}
+ @override
String toString() => value == null ? "-unknown-" : (value ? "true" : "false");
}
@@ -2040,6 +2211,7 @@ class DartObjectImpl implements DartObject {
return new DartObjectImpl(typeProvider.boolType, _state.equalEqual(rightOperand._state));
}
+ @override
bool operator ==(Object object) {
if (object is! DartObjectImpl) {
return false;
@@ -2048,6 +2220,7 @@ class DartObjectImpl implements DartObject {
return type == dartObject.type && _state == dartObject._state;
}
+ @override
bool get boolValue {
if (_state is BoolState) {
return (_state as BoolState).value;
@@ -2055,6 +2228,7 @@ class DartObjectImpl implements DartObject {
return null;
}
+ @override
double get doubleValue {
if (_state is DoubleState) {
return (_state as DoubleState).value;
@@ -2062,6 +2236,7 @@ class DartObjectImpl implements DartObject {
return null;
}
+ @override
int get intValue {
if (_state is IntState) {
return (_state as IntState).value;
@@ -2069,6 +2244,7 @@ class DartObjectImpl implements DartObject {
return null;
}
+ @override
String get stringValue {
if (_state is StringState) {
return (_state as StringState).value;
@@ -2076,6 +2252,7 @@ class DartObjectImpl implements DartObject {
return null;
}
+ @override
Object get value => _state.value;
/**
@@ -2098,8 +2275,10 @@ class DartObjectImpl implements DartObject {
*/
DartObjectImpl greaterThanOrEqual(TypeProvider typeProvider, DartObjectImpl rightOperand) => new DartObjectImpl(typeProvider.boolType, _state.greaterThanOrEqual(rightOperand._state));
+ @override
bool get hasExactValue => _state.hasExactValue;
+ @override
int get hashCode => ObjectUtilities.combineHashCodes(type.hashCode, _state.hashCode);
/**
@@ -2127,10 +2306,13 @@ class DartObjectImpl implements DartObject {
*/
bool get isBoolNumStringOrNull => _state.isBoolNumStringOrNull;
+ @override
bool get isFalse => _state is BoolState && identical((_state as BoolState).value, false);
+ @override
bool get isNull => _state is NullState;
+ @override
bool get isTrue => _state is BoolState && identical((_state as BoolState).value, true);
/**
@@ -2325,6 +2507,7 @@ class DartObjectImpl implements DartObject {
throw new IllegalStateException("times returned a ${result.runtimeType.toString()}");
}
+ @override
String toString() => "${type.displayName} (${_state.toString()})";
}
@@ -2350,6 +2533,7 @@ class DoubleState extends NumState {
*/
DoubleState(this.value);
+ @override
NumState add(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2373,6 +2557,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
StringState convertToString() {
if (value == null) {
return StringState.UNKNOWN_VALUE;
@@ -2380,6 +2565,7 @@ class DoubleState extends NumState {
return new StringState(value.toString());
}
+ @override
NumState divide(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2403,6 +2589,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (value == null) {
@@ -2426,10 +2613,13 @@ class DoubleState extends NumState {
return BoolState.FALSE_STATE;
}
+ @override
bool operator ==(Object object) => object is DoubleState && (value == object.value);
+ @override
String get typeName => "double";
+ @override
BoolState greaterThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2453,6 +2643,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState greaterThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2476,10 +2667,13 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => value == null ? 0 : value.hashCode;
+ @override
IntState integerDivide(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2505,8 +2699,10 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
BoolState lessThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2530,6 +2726,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState lessThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2553,6 +2750,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState minus(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2576,6 +2774,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState negated() {
if (value == null) {
return UNKNOWN_VALUE;
@@ -2583,6 +2782,7 @@ class DoubleState extends NumState {
return new DoubleState(-(value));
}
+ @override
NumState remainder(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2606,6 +2806,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState times(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -2629,6 +2830,7 @@ class DoubleState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
String toString() => value == null ? "-unknown-" : value.toString();
}
@@ -2642,112 +2844,139 @@ class DynamicState extends InstanceState {
*/
static DynamicState DYNAMIC_STATE = new DynamicState();
+ @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
String get typeName => "dynamic";
+ @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
bool get isBool => true;
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
BoolState lessThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
BoolState lessThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
BoolState logicalAnd(InstanceState rightOperand) {
assertBool(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
BoolState logicalNot() => BoolState.UNKNOWN_VALUE;
+ @override
BoolState logicalOr(InstanceState rightOperand) {
assertBool(rightOperand);
return rightOperand.convertToBool();
}
+ @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);
@@ -2807,6 +3036,7 @@ class FunctionState extends InstanceState {
this._element = element;
}
+ @override
StringState convertToString() {
if (_element == null) {
return StringState.UNKNOWN_VALUE;
@@ -2814,8 +3044,10 @@ class FunctionState extends InstanceState {
return new StringState(_element.name);
}
+ @override
bool operator ==(Object object) => object is FunctionState && (_element == object._element);
+ @override
BoolState equalEqual(InstanceState rightOperand) {
if (_element == null) {
return BoolState.UNKNOWN_VALUE;
@@ -2832,10 +3064,13 @@ class FunctionState extends InstanceState {
return BoolState.FALSE_STATE;
}
+ @override
String get typeName => "Function";
+ @override
int get hashCode => _element == null ? 0 : _element.hashCode;
+ @override
String toString() => _element == null ? "-unknown-" : _element.name;
}
@@ -2863,8 +3098,10 @@ class GenericState extends InstanceState {
this._fieldMap = fieldMap;
}
+ @override
StringState convertToString() => StringState.UNKNOWN_VALUE;
+ @override
bool operator ==(Object object) {
if (object is! GenericState) {
return false;
@@ -2885,6 +3122,7 @@ class GenericState extends InstanceState {
return true;
}
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (rightOperand is DynamicState) {
@@ -2893,8 +3131,10 @@ class GenericState extends InstanceState {
return BoolState.from(this == rightOperand);
}
+ @override
String get typeName => "user defined type";
+ @override
int get hashCode {
int hashCode = 0;
for (DartObjectImpl value in _fieldMap.values) {
@@ -3324,6 +3564,7 @@ class IntState extends NumState {
*/
IntState(this.value);
+ @override
NumState add(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3350,6 +3591,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
IntState bitAnd(InstanceState rightOperand) {
assertIntOrNull(rightOperand);
if (value == null) {
@@ -3367,6 +3609,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
IntState bitNot() {
if (value == null) {
return UNKNOWN_VALUE;
@@ -3374,6 +3617,7 @@ class IntState extends NumState {
return new IntState(~value);
}
+ @override
IntState bitOr(InstanceState rightOperand) {
assertIntOrNull(rightOperand);
if (value == null) {
@@ -3391,6 +3635,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
IntState bitXor(InstanceState rightOperand) {
assertIntOrNull(rightOperand);
if (value == null) {
@@ -3408,6 +3653,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
StringState convertToString() {
if (value == null) {
return StringState.UNKNOWN_VALUE;
@@ -3415,6 +3661,7 @@ class IntState extends NumState {
return new StringState(value.toString());
}
+ @override
NumState divide(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3443,6 +3690,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (value == null) {
@@ -3466,10 +3714,13 @@ class IntState extends NumState {
return BoolState.FALSE_STATE;
}
+ @override
bool operator ==(Object object) => object is IntState && (value == object.value);
+ @override
String get typeName => "int";
+ @override
BoolState greaterThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3493,6 +3744,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState greaterThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3516,10 +3768,13 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => value == null ? 0 : value.hashCode;
+ @override
IntState integerDivide(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3546,8 +3801,10 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
BoolState lessThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3571,6 +3828,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
BoolState lessThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3594,6 +3852,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState minus(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3620,6 +3879,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState negated() {
if (value == null) {
return UNKNOWN_VALUE;
@@ -3627,6 +3887,7 @@ class IntState extends NumState {
return new IntState(-value);
}
+ @override
NumState remainder(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3655,6 +3916,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
IntState shiftLeft(InstanceState rightOperand) {
assertIntOrNull(rightOperand);
if (value == null) {
@@ -3674,6 +3936,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
IntState shiftRight(InstanceState rightOperand) {
assertIntOrNull(rightOperand);
if (value == null) {
@@ -3693,6 +3956,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
NumState times(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (value == null) {
@@ -3719,6 +3983,7 @@ class IntState extends NumState {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
String toString() => value == null ? "-unknown-" : value.toString();
}
@@ -3741,8 +4006,10 @@ class ListState extends InstanceState {
this._elements = elements;
}
+ @override
StringState convertToString() => StringState.UNKNOWN_VALUE;
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (rightOperand is DynamicState) {
@@ -3751,6 +4018,7 @@ class ListState extends InstanceState {
return BoolState.from(this == rightOperand);
}
+ @override
bool operator ==(Object object) {
if (object is! ListState) {
return false;
@@ -3770,8 +4038,10 @@ class ListState extends InstanceState {
return true;
}
+ @override
String get typeName => "List";
+ @override
List<Object> get value {
int count = _elements.length;
List<Object> result = new List<Object>(count);
@@ -3785,6 +4055,7 @@ class ListState extends InstanceState {
return result;
}
+ @override
bool get hasExactValue {
int count = _elements.length;
for (int i = 0; i < count; i++) {
@@ -3795,6 +4066,7 @@ class ListState extends InstanceState {
return true;
}
+ @override
int get hashCode {
int value = 0;
int count = _elements.length;
@@ -3824,8 +4096,10 @@ class MapState extends InstanceState {
this._entries = entries;
}
+ @override
StringState convertToString() => StringState.UNKNOWN_VALUE;
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (rightOperand is DynamicState) {
@@ -3834,6 +4108,7 @@ class MapState extends InstanceState {
return BoolState.from(this == rightOperand);
}
+ @override
bool operator ==(Object object) {
if (object is! MapState) {
return false;
@@ -3856,8 +4131,10 @@ class MapState extends InstanceState {
return true;
}
+ @override
String get typeName => "Map";
+ @override
Map<Object, Object> get value {
Map<Object, Object> result = new Map<Object, Object>();
for (MapEntry<DartObjectImpl, DartObjectImpl> entry in getMapEntrySet(_entries)) {
@@ -3871,6 +4148,7 @@ class MapState extends InstanceState {
return result;
}
+ @override
bool get hasExactValue {
for (MapEntry<DartObjectImpl, DartObjectImpl> entry in getMapEntrySet(_entries)) {
if (!entry.getKey().hasExactValue || !entry.getValue().hasExactValue) {
@@ -3880,6 +4158,7 @@ class MapState extends InstanceState {
return true;
}
+ @override
int get hashCode {
int value = 0;
for (DartObjectImpl key in _entries.keys.toSet()) {
@@ -3898,12 +4177,15 @@ class NullState extends InstanceState {
*/
static NullState NULL_STATE = new NullState();
+ @override
BoolState convertToBool() {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
StringState convertToString() => new StringState("null");
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (rightOperand is DynamicState) {
@@ -3912,20 +4194,27 @@ class NullState extends InstanceState {
return BoolState.from(rightOperand is NullState);
}
+ @override
bool operator ==(Object object) => object is NullState;
+ @override
String get typeName => "Null";
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => 0;
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
BoolState logicalNot() {
throw new EvaluationException(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION);
}
+ @override
String toString() => "null";
}
@@ -3939,39 +4228,49 @@ class NumState extends InstanceState {
*/
static NumState UNKNOWN_VALUE = new 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 UNKNOWN_VALUE;
}
+ @override
bool operator ==(Object object) => object is NumState;
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
String get typeName => "num";
+ @override
BoolState greaterThan(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
BoolState greaterThanOrEqual(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
return BoolState.UNKNOWN_VALUE;
}
+ @override
int get hashCode => 7;
+ @override
IntState integerDivide(InstanceState rightOperand) {
assertNumOrNull(rightOperand);
if (rightOperand is IntState) {
@@ -3987,35 +4286,43 @@ class NumState extends InstanceState {
return IntState.UNKNOWN_VALUE;
}
+ @override
bool get isBoolNumStringOrNull => true;
+ @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-";
}
@@ -4041,6 +4348,7 @@ class StringState extends InstanceState {
*/
StringState(this.value);
+ @override
StringState concatenate(InstanceState rightOperand) {
if (value == null) {
return UNKNOWN_VALUE;
@@ -4057,8 +4365,10 @@ class StringState extends InstanceState {
return super.concatenate(rightOperand);
}
+ @override
StringState convertToString() => this;
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (value == null) {
@@ -4076,16 +4386,22 @@ class StringState extends InstanceState {
return BoolState.FALSE_STATE;
}
+ @override
bool operator ==(Object object) => object is StringState && (value == object.value);
+ @override
String get typeName => "String";
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => value == null ? 0 : value.hashCode;
+ @override
bool get isBoolNumStringOrNull => true;
+ @override
String toString() => value == null ? "-unknown-" : "'${value}'";
}
@@ -4106,6 +4422,7 @@ class SymbolState extends InstanceState {
*/
SymbolState(this.value);
+ @override
StringState convertToString() {
if (value == null) {
return StringState.UNKNOWN_VALUE;
@@ -4113,6 +4430,7 @@ class SymbolState extends InstanceState {
return new StringState(value);
}
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (value == null) {
@@ -4130,14 +4448,19 @@ class SymbolState extends InstanceState {
return BoolState.FALSE_STATE;
}
+ @override
bool operator ==(Object object) => object is SymbolState && (value == object.value);
+ @override
String get typeName => "Symbol";
+ @override
bool get hasExactValue => true;
+ @override
int get hashCode => value == null ? 0 : value.hashCode;
+ @override
String toString() => value == null ? "-unknown-" : "#${value}";
}
@@ -4159,6 +4482,7 @@ class TypeState extends InstanceState {
this._element = element;
}
+ @override
StringState convertToString() {
if (_element == null) {
return StringState.UNKNOWN_VALUE;
@@ -4166,8 +4490,10 @@ class TypeState extends InstanceState {
return new StringState(_element.name);
}
+ @override
bool operator ==(Object object) => object is TypeState && (_element == object._element);
+ @override
BoolState equalEqual(InstanceState rightOperand) {
assertBoolNumStringOrNull(rightOperand);
if (_element == null) {
@@ -4185,9 +4511,12 @@ class TypeState extends InstanceState {
return BoolState.FALSE_STATE;
}
+ @override
String get typeName => "Type";
+ @override
int get hashCode => _element == null ? 0 : _element.hashCode;
+ @override
String toString() => _element == null ? "-unknown-" : _element.name;
}
« no previous file with comments | « pkg/analyzer/lib/src/generated/ast.dart ('k') | pkg/analyzer/lib/src/generated/element.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698