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

Side by Side Diff: pkg/analyzer_experimental/lib/src/generated/constant.dart

Issue 25373002: Issue 13584. Fix for Java/Dart local variable scoping mismatch. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // This code was auto-generated, is not intended to be edited, and is subject to 1 // This code was auto-generated, is not intended to be edited, and is subject to
2 // significant change. Please see the README file for more information. 2 // significant change. Please see the README file for more information.
3 library engine.constant; 3 library engine.constant;
4 import 'java_core.dart'; 4 import 'java_core.dart';
5 import 'source.dart' show Source; 5 import 'source.dart' show Source;
6 import 'error.dart' show AnalysisError, ErrorCode, CompileTimeErrorCode; 6 import 'error.dart' show AnalysisError, ErrorCode, CompileTimeErrorCode;
7 import 'scanner.dart' show TokenType; 7 import 'scanner.dart' show TokenType;
8 import 'ast.dart'; 8 import 'ast.dart';
9 import 'element.dart'; 9 import 'element.dart';
10 import 'engine.dart' show AnalysisEngine; 10 import 'engine.dart' show AnalysisEngine;
(...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 EvaluationResultImpl shiftLeft(BinaryExpression node, EvaluationResultImpl rig htOperand) => rightOperand.shiftLeftValid(node, this); 1096 EvaluationResultImpl shiftLeft(BinaryExpression node, EvaluationResultImpl rig htOperand) => rightOperand.shiftLeftValid(node, this);
1097 EvaluationResultImpl shiftRight(BinaryExpression node, EvaluationResultImpl ri ghtOperand) => rightOperand.shiftRightValid(node, this); 1097 EvaluationResultImpl shiftRight(BinaryExpression node, EvaluationResultImpl ri ghtOperand) => rightOperand.shiftRightValid(node, this);
1098 EvaluationResultImpl times(BinaryExpression node, EvaluationResultImpl rightOp erand) => rightOperand.timesValid(node, this); 1098 EvaluationResultImpl times(BinaryExpression node, EvaluationResultImpl rightOp erand) => rightOperand.timesValid(node, this);
1099 String toString() { 1099 String toString() {
1100 if (value == null) { 1100 if (value == null) {
1101 return "null"; 1101 return "null";
1102 } 1102 }
1103 return value.toString(); 1103 return value.toString();
1104 } 1104 }
1105 EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand; 1105 EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand;
1106 EvaluationResultImpl addToValid(BinaryExpression node, ValidResult leftOperand 2) { 1106 EvaluationResultImpl addToValid(BinaryExpression node, ValidResult leftOperand ) {
1107 if (!isAnyNum || !leftOperand2.isAnyNum) { 1107 if (!isAnyNum || !leftOperand.isAnyNum) {
1108 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1108 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1109 } 1109 }
1110 if (isSomeInt || leftOperand2.isSomeInt) { 1110 if (isSomeInt || leftOperand.isSomeInt) {
1111 return RESULT_INT; 1111 return RESULT_INT;
1112 } else if (isSomeNum || leftOperand2.isSomeNum) { 1112 } else if (isSomeNum || leftOperand.isSomeNum) {
1113 return RESULT_NUM; 1113 return RESULT_NUM;
1114 } 1114 }
1115 Object leftValue = leftOperand2.value; 1115 Object leftValue = leftOperand.value;
1116 if (leftValue == null) { 1116 if (leftValue == null) {
1117 return error(node.leftOperand); 1117 return error(node.leftOperand);
1118 } else if (value == null) { 1118 } else if (value == null) {
1119 return error(node.rightOperand); 1119 return error(node.rightOperand);
1120 } else if (leftValue is int) { 1120 } else if (leftValue is int) {
1121 if (value is int) { 1121 if (value is int) {
1122 return valueOf(((leftValue as int)) + (value as int)); 1122 return valueOf(((leftValue as int)) + (value as int));
1123 } else if (value is double) { 1123 } else if (value is double) {
1124 return valueOf3(((leftValue as int)).toDouble() + ((value as double))); 1124 return valueOf3(((leftValue as int)).toDouble() + ((value as double)));
1125 } 1125 }
1126 } else if (leftValue is double) { 1126 } else if (leftValue is double) {
1127 if (value is int) { 1127 if (value is int) {
1128 return valueOf3(((leftValue as double)) + ((value as int)).toDouble()); 1128 return valueOf3(((leftValue as double)) + ((value as int)).toDouble());
1129 } else if (value is double) { 1129 } else if (value is double) {
1130 return valueOf3(((leftValue as double)) + ((value as double))); 1130 return valueOf3(((leftValue as double)) + ((value as double)));
1131 } 1131 }
1132 } else if (leftValue is String) { 1132 } else if (leftValue is String) {
1133 if (value is String) { 1133 if (value is String) {
1134 return valueOf4("${((leftValue as String))}${((value as String))}"); 1134 return valueOf4("${((leftValue as String))}${((value as String))}");
1135 } 1135 }
1136 } 1136 }
1137 return error(node); 1137 return error(node);
1138 } 1138 }
1139 EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand; 1139 EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand;
1140 EvaluationResultImpl bitAndValid(BinaryExpression node, ValidResult leftOperan d2) { 1140 EvaluationResultImpl bitAndValid(BinaryExpression node, ValidResult leftOperan d) {
1141 if (!isAnyInt || !leftOperand2.isAnyInt) { 1141 if (!isAnyInt || !leftOperand.isAnyInt) {
1142 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); 1142 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
1143 } 1143 }
1144 if (isSomeInt || leftOperand2.isSomeInt) { 1144 if (isSomeInt || leftOperand.isSomeInt) {
1145 return RESULT_INT; 1145 return RESULT_INT;
1146 } 1146 }
1147 Object leftValue = leftOperand2.value; 1147 Object leftValue = leftOperand.value;
1148 if (leftValue == null) { 1148 if (leftValue == null) {
1149 return error(node.leftOperand); 1149 return error(node.leftOperand);
1150 } else if (value == null) { 1150 } else if (value == null) {
1151 return error(node.rightOperand); 1151 return error(node.rightOperand);
1152 } else if (leftValue is int) { 1152 } else if (leftValue is int) {
1153 if (value is int) { 1153 if (value is int) {
1154 return valueOf(((leftValue as int)) & (value as int)); 1154 return valueOf(((leftValue as int)) & (value as int));
1155 } 1155 }
1156 return error(node.leftOperand); 1156 return error(node.leftOperand);
1157 } 1157 }
1158 if (value is int) { 1158 if (value is int) {
1159 return error(node.rightOperand); 1159 return error(node.rightOperand);
1160 } 1160 }
1161 return union(error(node.leftOperand), error(node.rightOperand)); 1161 return union(error(node.leftOperand), error(node.rightOperand));
1162 } 1162 }
1163 EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand; 1163 EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand;
1164 EvaluationResultImpl bitOrValid(BinaryExpression node, ValidResult leftOperand 2) { 1164 EvaluationResultImpl bitOrValid(BinaryExpression node, ValidResult leftOperand ) {
1165 if (!isAnyInt || !leftOperand2.isAnyInt) { 1165 if (!isAnyInt || !leftOperand.isAnyInt) {
1166 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); 1166 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
1167 } 1167 }
1168 if (isSomeInt || leftOperand2.isSomeInt) { 1168 if (isSomeInt || leftOperand.isSomeInt) {
1169 return RESULT_INT; 1169 return RESULT_INT;
1170 } 1170 }
1171 Object leftValue = leftOperand2.value; 1171 Object leftValue = leftOperand.value;
1172 if (leftValue == null) { 1172 if (leftValue == null) {
1173 return error(node.leftOperand); 1173 return error(node.leftOperand);
1174 } else if (value == null) { 1174 } else if (value == null) {
1175 return error(node.rightOperand); 1175 return error(node.rightOperand);
1176 } else if (leftValue is int) { 1176 } else if (leftValue is int) {
1177 if (value is int) { 1177 if (value is int) {
1178 return valueOf(((leftValue as int)) | (value as int)); 1178 return valueOf(((leftValue as int)) | (value as int));
1179 } 1179 }
1180 return error(node.leftOperand); 1180 return error(node.leftOperand);
1181 } 1181 }
1182 if (value is int) { 1182 if (value is int) {
1183 return error(node.rightOperand); 1183 return error(node.rightOperand);
1184 } 1184 }
1185 return union(error(node.leftOperand), error(node.rightOperand)); 1185 return union(error(node.leftOperand), error(node.rightOperand));
1186 } 1186 }
1187 EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand; 1187 EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand;
1188 EvaluationResultImpl bitXorValid(BinaryExpression node, ValidResult leftOperan d2) { 1188 EvaluationResultImpl bitXorValid(BinaryExpression node, ValidResult leftOperan d) {
1189 if (!isAnyInt || !leftOperand2.isAnyInt) { 1189 if (!isAnyInt || !leftOperand.isAnyInt) {
1190 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); 1190 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
1191 } 1191 }
1192 if (isSomeInt || leftOperand2.isSomeInt) { 1192 if (isSomeInt || leftOperand.isSomeInt) {
1193 return RESULT_INT; 1193 return RESULT_INT;
1194 } 1194 }
1195 Object leftValue = leftOperand2.value; 1195 Object leftValue = leftOperand.value;
1196 if (leftValue == null) { 1196 if (leftValue == null) {
1197 return error(node.leftOperand); 1197 return error(node.leftOperand);
1198 } else if (value == null) { 1198 } else if (value == null) {
1199 return error(node.rightOperand); 1199 return error(node.rightOperand);
1200 } else if (leftValue is int) { 1200 } else if (leftValue is int) {
1201 if (value is int) { 1201 if (value is int) {
1202 return valueOf(((leftValue as int)) ^ (value as int)); 1202 return valueOf(((leftValue as int)) ^ (value as int));
1203 } 1203 }
1204 return error(node.leftOperand); 1204 return error(node.leftOperand);
1205 } 1205 }
1206 if (value is int) { 1206 if (value is int) {
1207 return error(node.rightOperand); 1207 return error(node.rightOperand);
1208 } 1208 }
1209 return union(error(node.leftOperand), error(node.rightOperand)); 1209 return union(error(node.leftOperand), error(node.rightOperand));
1210 } 1210 }
1211 EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand ) => leftOperand; 1211 EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand ) => leftOperand;
1212 EvaluationResultImpl concatenateValid(Expression node, ValidResult leftOperand ) { 1212 EvaluationResultImpl concatenateValid(Expression node, ValidResult leftOperand ) {
1213 Object leftValue = leftOperand.value; 1213 Object leftValue = leftOperand.value;
1214 if (leftValue is String && value is String) { 1214 if (leftValue is String && value is String) {
1215 return valueOf4("${((leftValue as String))}${((value as String))}"); 1215 return valueOf4("${((leftValue as String))}${((value as String))}");
1216 } 1216 }
1217 return error(node); 1217 return error(node);
1218 } 1218 }
1219 EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand; 1219 EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperan d) => leftOperand;
1220 EvaluationResultImpl divideValid(BinaryExpression node, ValidResult leftOperan d2) { 1220 EvaluationResultImpl divideValid(BinaryExpression node, ValidResult leftOperan d) {
1221 if (!isAnyNum || !leftOperand2.isAnyNum) { 1221 if (!isAnyNum || !leftOperand.isAnyNum) {
1222 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1222 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1223 } 1223 }
1224 if (isSomeNum || leftOperand2.isSomeNum) { 1224 if (isSomeNum || leftOperand.isSomeNum) {
1225 return RESULT_NUM; 1225 return RESULT_NUM;
1226 } 1226 }
1227 Object leftValue = leftOperand2.value; 1227 Object leftValue = leftOperand.value;
1228 if (leftValue == null) { 1228 if (leftValue == null) {
1229 return error(node.leftOperand); 1229 return error(node.leftOperand);
1230 } else if (value == null) { 1230 } else if (value == null) {
1231 return error(node.rightOperand); 1231 return error(node.rightOperand);
1232 } else if (leftValue is int) { 1232 } else if (leftValue is int) {
1233 if (value is int) { 1233 if (value is int) {
1234 if (((value as int)) == 0) { 1234 if (((value as int)) == 0) {
1235 return valueOf3(((leftValue as int)).toDouble() / ((value as int)).toD ouble()); 1235 return valueOf3(((leftValue as int)).toDouble() / ((value as int)).toD ouble());
1236 } 1236 }
1237 return valueOf(((leftValue as int)) ~/ (value as int)); 1237 return valueOf(((leftValue as int)) ~/ (value as int));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1279 } else if (leftValue is String) { 1279 } else if (leftValue is String) {
1280 if (value is String) { 1280 if (value is String) {
1281 return valueOf2(((leftValue as String)) == value); 1281 return valueOf2(((leftValue as String)) == value);
1282 } 1282 }
1283 return RESULT_FALSE; 1283 return RESULT_FALSE;
1284 } 1284 }
1285 return RESULT_FALSE; 1285 return RESULT_FALSE;
1286 } 1286 }
1287 EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftO perand) => leftOperand; 1287 EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftO perand) => leftOperand;
1288 EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResul t leftOperand) => leftOperand; 1288 EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResul t leftOperand) => leftOperand;
1289 EvaluationResultImpl greaterThanOrEqualValid(BinaryExpression node, ValidResul t leftOperand2) { 1289 EvaluationResultImpl greaterThanOrEqualValid(BinaryExpression node, ValidResul t leftOperand) {
1290 if (!isAnyNum || !leftOperand2.isAnyNum) { 1290 if (!isAnyNum || !leftOperand.isAnyNum) {
1291 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1291 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1292 } 1292 }
1293 if (isSomeNum || leftOperand2.isSomeNum) { 1293 if (isSomeNum || leftOperand.isSomeNum) {
1294 return RESULT_BOOL; 1294 return RESULT_BOOL;
1295 } 1295 }
1296 Object leftValue = leftOperand2.value; 1296 Object leftValue = leftOperand.value;
1297 if (leftValue == null) { 1297 if (leftValue == null) {
1298 return error(node.leftOperand); 1298 return error(node.leftOperand);
1299 } else if (value == null) { 1299 } else if (value == null) {
1300 return error(node.rightOperand); 1300 return error(node.rightOperand);
1301 } else if (leftValue is int) { 1301 } else if (leftValue is int) {
1302 if (value is int) { 1302 if (value is int) {
1303 return valueOf2(((leftValue as int)).compareTo(value as int) >= 0); 1303 return valueOf2(((leftValue as int)).compareTo(value as int) >= 0);
1304 } else if (value is double) { 1304 } else if (value is double) {
1305 return valueOf2(((leftValue as int)).toDouble() >= ((value as double))); 1305 return valueOf2(((leftValue as int)).toDouble() >= ((value as double)));
1306 } 1306 }
1307 } else if (leftValue is double) { 1307 } else if (leftValue is double) {
1308 if (value is int) { 1308 if (value is int) {
1309 return valueOf2(((leftValue as double)) >= ((value as int)).toDouble()); 1309 return valueOf2(((leftValue as double)) >= ((value as int)).toDouble());
1310 } else if (value is double) { 1310 } else if (value is double) {
1311 return valueOf2(((leftValue as double)) >= ((value as double))); 1311 return valueOf2(((leftValue as double)) >= ((value as double)));
1312 } 1312 }
1313 } 1313 }
1314 return error(node); 1314 return error(node);
1315 } 1315 }
1316 EvaluationResultImpl greaterThanValid(BinaryExpression node, ValidResult leftO perand2) { 1316 EvaluationResultImpl greaterThanValid(BinaryExpression node, ValidResult leftO perand) {
1317 if (!isAnyNum || !leftOperand2.isAnyNum) { 1317 if (!isAnyNum || !leftOperand.isAnyNum) {
1318 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1318 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1319 } 1319 }
1320 if (isSomeNum || leftOperand2.isSomeNum) { 1320 if (isSomeNum || leftOperand.isSomeNum) {
1321 return RESULT_BOOL; 1321 return RESULT_BOOL;
1322 } 1322 }
1323 Object leftValue = leftOperand2.value; 1323 Object leftValue = leftOperand.value;
1324 if (leftValue == null) { 1324 if (leftValue == null) {
1325 return error(node.leftOperand); 1325 return error(node.leftOperand);
1326 } else if (value == null) { 1326 } else if (value == null) {
1327 return error(node.rightOperand); 1327 return error(node.rightOperand);
1328 } else if (leftValue is int) { 1328 } else if (leftValue is int) {
1329 if (value is int) { 1329 if (value is int) {
1330 return valueOf2(((leftValue as int)).compareTo(value as int) > 0); 1330 return valueOf2(((leftValue as int)).compareTo(value as int) > 0);
1331 } else if (value is double) { 1331 } else if (value is double) {
1332 return valueOf2(((leftValue as int)).toDouble() > ((value as double))); 1332 return valueOf2(((leftValue as int)).toDouble() > ((value as double)));
1333 } 1333 }
1334 } else if (leftValue is double) { 1334 } else if (leftValue is double) {
1335 if (value is int) { 1335 if (value is int) {
1336 return valueOf2(((leftValue as double)) > ((value as int)).toDouble()); 1336 return valueOf2(((leftValue as double)) > ((value as int)).toDouble());
1337 } else if (value is double) { 1337 } else if (value is double) {
1338 return valueOf2(((leftValue as double)) > ((value as double))); 1338 return valueOf2(((leftValue as double)) > ((value as double)));
1339 } 1339 }
1340 } 1340 }
1341 return error(node); 1341 return error(node);
1342 } 1342 }
1343 EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult lef tOperand) => leftOperand; 1343 EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult lef tOperand) => leftOperand;
1344 EvaluationResultImpl integerDivideValid(BinaryExpression node, ValidResult lef tOperand2) { 1344 EvaluationResultImpl integerDivideValid(BinaryExpression node, ValidResult lef tOperand) {
1345 if (!isAnyNum || !leftOperand2.isAnyNum) { 1345 if (!isAnyNum || !leftOperand.isAnyNum) {
1346 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1346 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1347 } 1347 }
1348 if (isSomeNum || leftOperand2.isSomeNum) { 1348 if (isSomeNum || leftOperand.isSomeNum) {
1349 return RESULT_INT; 1349 return RESULT_INT;
1350 } 1350 }
1351 Object leftValue = leftOperand2.value; 1351 Object leftValue = leftOperand.value;
1352 if (leftValue == null) { 1352 if (leftValue == null) {
1353 return error(node.leftOperand); 1353 return error(node.leftOperand);
1354 } else if (value == null) { 1354 } else if (value == null) {
1355 return error(node.rightOperand); 1355 return error(node.rightOperand);
1356 } else if (leftValue is int) { 1356 } else if (leftValue is int) {
1357 if (value is int) { 1357 if (value is int) {
1358 if (((value as int)) == 0) { 1358 if (((value as int)) == 0) {
1359 return error2(node, CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE); 1359 return error2(node, CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE);
1360 } 1360 }
1361 return valueOf(((leftValue as int)) ~/ (value as int)); 1361 return valueOf(((leftValue as int)) ~/ (value as int));
1362 } else if (value is double) { 1362 } else if (value is double) {
1363 double result = ((leftValue as int)).toDouble() / ((value as double)); 1363 double result = ((leftValue as int)).toDouble() / ((value as double));
1364 return valueOf(result.toInt()); 1364 return valueOf(result.toInt());
1365 } 1365 }
1366 } else if (leftValue is double) { 1366 } else if (leftValue is double) {
1367 if (value is int) { 1367 if (value is int) {
1368 double result = ((leftValue as double)) / ((value as int)).toDouble(); 1368 double result = ((leftValue as double)) / ((value as int)).toDouble();
1369 return valueOf(result.toInt()); 1369 return valueOf(result.toInt());
1370 } else if (value is double) { 1370 } else if (value is double) {
1371 double result = ((leftValue as double)) / ((value as double)); 1371 double result = ((leftValue as double)) / ((value as double));
1372 return valueOf(result.toInt()); 1372 return valueOf(result.toInt());
1373 } 1373 }
1374 } 1374 }
1375 return error(node); 1375 return error(node);
1376 } 1376 }
1377 EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOper and) => leftOperand; 1377 EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOper and) => leftOperand;
1378 EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult l eftOperand) => leftOperand; 1378 EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult l eftOperand) => leftOperand;
1379 EvaluationResultImpl lessThanOrEqualValid(BinaryExpression node, ValidResult l eftOperand2) { 1379 EvaluationResultImpl lessThanOrEqualValid(BinaryExpression node, ValidResult l eftOperand) {
1380 if (!isAnyNum || !leftOperand2.isAnyNum) { 1380 if (!isAnyNum || !leftOperand.isAnyNum) {
1381 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1381 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1382 } 1382 }
1383 if (isSomeNum || leftOperand2.isSomeNum) { 1383 if (isSomeNum || leftOperand.isSomeNum) {
1384 return RESULT_BOOL; 1384 return RESULT_BOOL;
1385 } 1385 }
1386 Object leftValue = leftOperand2.value; 1386 Object leftValue = leftOperand.value;
1387 if (leftValue == null) { 1387 if (leftValue == null) {
1388 return error(node.leftOperand); 1388 return error(node.leftOperand);
1389 } else if (value == null) { 1389 } else if (value == null) {
1390 return error(node.rightOperand); 1390 return error(node.rightOperand);
1391 } else if (leftValue is int) { 1391 } else if (leftValue is int) {
1392 if (value is int) { 1392 if (value is int) {
1393 return valueOf2(((leftValue as int)).compareTo(value as int) <= 0); 1393 return valueOf2(((leftValue as int)).compareTo(value as int) <= 0);
1394 } else if (value is double) { 1394 } else if (value is double) {
1395 return valueOf2(((leftValue as int)).toDouble() <= ((value as double))); 1395 return valueOf2(((leftValue as int)).toDouble() <= ((value as double)));
1396 } 1396 }
1397 } else if (leftValue is double) { 1397 } else if (leftValue is double) {
1398 if (value is int) { 1398 if (value is int) {
1399 return valueOf2(((leftValue as double)) <= ((value as int)).toDouble()); 1399 return valueOf2(((leftValue as double)) <= ((value as int)).toDouble());
1400 } else if (value is double) { 1400 } else if (value is double) {
1401 return valueOf2(((leftValue as double)) <= ((value as double))); 1401 return valueOf2(((leftValue as double)) <= ((value as double)));
1402 } 1402 }
1403 } 1403 }
1404 return error(node); 1404 return error(node);
1405 } 1405 }
1406 EvaluationResultImpl lessThanValid(BinaryExpression node, ValidResult leftOper and2) { 1406 EvaluationResultImpl lessThanValid(BinaryExpression node, ValidResult leftOper and) {
1407 if (!isAnyNum || !leftOperand2.isAnyNum) { 1407 if (!isAnyNum || !leftOperand.isAnyNum) {
1408 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1408 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1409 } 1409 }
1410 if (isSomeNum || leftOperand2.isSomeNum) { 1410 if (isSomeNum || leftOperand.isSomeNum) {
1411 return RESULT_BOOL; 1411 return RESULT_BOOL;
1412 } 1412 }
1413 Object leftValue = leftOperand2.value; 1413 Object leftValue = leftOperand.value;
1414 if (leftValue == null) { 1414 if (leftValue == null) {
1415 return error(node.leftOperand); 1415 return error(node.leftOperand);
1416 } else if (value == null) { 1416 } else if (value == null) {
1417 return error(node.rightOperand); 1417 return error(node.rightOperand);
1418 } else if (leftValue is int) { 1418 } else if (leftValue is int) {
1419 if (value is int) { 1419 if (value is int) {
1420 return valueOf2(((leftValue as int)).compareTo(value as int) < 0); 1420 return valueOf2(((leftValue as int)).compareTo(value as int) < 0);
1421 } else if (value is double) { 1421 } else if (value is double) {
1422 return valueOf2(((leftValue as int)).toDouble() < ((value as double))); 1422 return valueOf2(((leftValue as int)).toDouble() < ((value as double)));
1423 } 1423 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1455 if (isSomeBool || leftOperand.isSomeBool) { 1455 if (isSomeBool || leftOperand.isSomeBool) {
1456 return RESULT_BOOL; 1456 return RESULT_BOOL;
1457 } 1457 }
1458 Object leftValue = leftOperand.value; 1458 Object leftValue = leftOperand.value;
1459 if (leftValue is bool && ((leftValue as bool))) { 1459 if (leftValue is bool && ((leftValue as bool))) {
1460 return RESULT_TRUE; 1460 return RESULT_TRUE;
1461 } 1461 }
1462 return booleanConversion(node.rightOperand, value); 1462 return booleanConversion(node.rightOperand, value);
1463 } 1463 }
1464 EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand; 1464 EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand;
1465 EvaluationResultImpl minusValid(BinaryExpression node, ValidResult leftOperand 2) { 1465 EvaluationResultImpl minusValid(BinaryExpression node, ValidResult leftOperand ) {
1466 if (!isAnyNum || !leftOperand2.isAnyNum) { 1466 if (!isAnyNum || !leftOperand.isAnyNum) {
1467 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1467 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1468 } 1468 }
1469 if (isSomeInt || leftOperand2.isSomeInt) { 1469 if (isSomeInt || leftOperand.isSomeInt) {
1470 return RESULT_INT; 1470 return RESULT_INT;
1471 } else if (isSomeNum || leftOperand2.isSomeNum) { 1471 } else if (isSomeNum || leftOperand.isSomeNum) {
1472 return RESULT_NUM; 1472 return RESULT_NUM;
1473 } 1473 }
1474 Object leftValue = leftOperand2.value; 1474 Object leftValue = leftOperand.value;
1475 if (leftValue == null) { 1475 if (leftValue == null) {
1476 return error(node.leftOperand); 1476 return error(node.leftOperand);
1477 } else if (value == null) { 1477 } else if (value == null) {
1478 return error(node.rightOperand); 1478 return error(node.rightOperand);
1479 } else if (leftValue is int) { 1479 } else if (leftValue is int) {
1480 if (value is int) { 1480 if (value is int) {
1481 return valueOf(((leftValue as int)) - (value as int)); 1481 return valueOf(((leftValue as int)) - (value as int));
1482 } else if (value is double) { 1482 } else if (value is double) {
1483 return valueOf3(((leftValue as int)).toDouble() - ((value as double))); 1483 return valueOf3(((leftValue as int)).toDouble() - ((value as double)));
1484 } 1484 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1520 return RESULT_TRUE; 1520 return RESULT_TRUE;
1521 } else if (leftValue is String) { 1521 } else if (leftValue is String) {
1522 if (value is String) { 1522 if (value is String) {
1523 return valueOf2(((leftValue as String)) != value); 1523 return valueOf2(((leftValue as String)) != value);
1524 } 1524 }
1525 return RESULT_TRUE; 1525 return RESULT_TRUE;
1526 } 1526 }
1527 return RESULT_TRUE; 1527 return RESULT_TRUE;
1528 } 1528 }
1529 EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOpe rand) => leftOperand; 1529 EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOpe rand) => leftOperand;
1530 EvaluationResultImpl remainderValid(BinaryExpression node, ValidResult leftOpe rand2) { 1530 EvaluationResultImpl remainderValid(BinaryExpression node, ValidResult leftOpe rand) {
1531 if (!isAnyNum || !leftOperand2.isAnyNum) { 1531 if (!isAnyNum || !leftOperand.isAnyNum) {
1532 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1532 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1533 } 1533 }
1534 if (isSomeInt || leftOperand2.isSomeInt) { 1534 if (isSomeInt || leftOperand.isSomeInt) {
1535 return RESULT_INT; 1535 return RESULT_INT;
1536 } else if (isSomeNum || leftOperand2.isSomeNum) { 1536 } else if (isSomeNum || leftOperand.isSomeNum) {
1537 return RESULT_NUM; 1537 return RESULT_NUM;
1538 } 1538 }
1539 Object leftValue = leftOperand2.value; 1539 Object leftValue = leftOperand.value;
1540 if (leftValue == null) { 1540 if (leftValue == null) {
1541 return error(node.leftOperand); 1541 return error(node.leftOperand);
1542 } else if (value == null) { 1542 } else if (value == null) {
1543 return error(node.rightOperand); 1543 return error(node.rightOperand);
1544 } else if (leftValue is int) { 1544 } else if (leftValue is int) {
1545 if (value is int) { 1545 if (value is int) {
1546 if (((value as int)) == 0) { 1546 if (((value as int)) == 0) {
1547 return valueOf3(((leftValue as int)).toDouble() % ((value as int)).toD ouble()); 1547 return valueOf3(((leftValue as int)).toDouble() % ((value as int)).toD ouble());
1548 } 1548 }
1549 return valueOf(((leftValue as int)).remainder(value as int)); 1549 return valueOf(((leftValue as int)).remainder(value as int));
1550 } else if (value is double) { 1550 } else if (value is double) {
1551 return valueOf3(((leftValue as int)).toDouble() % ((value as double))); 1551 return valueOf3(((leftValue as int)).toDouble() % ((value as double)));
1552 } 1552 }
1553 } else if (leftValue is double) { 1553 } else if (leftValue is double) {
1554 if (value is int) { 1554 if (value is int) {
1555 return valueOf3(((leftValue as double)) % ((value as int)).toDouble()); 1555 return valueOf3(((leftValue as double)) % ((value as int)).toDouble());
1556 } else if (value is double) { 1556 } else if (value is double) {
1557 return valueOf3(((leftValue as double)) % ((value as double))); 1557 return valueOf3(((leftValue as double)) % ((value as double)));
1558 } 1558 }
1559 } 1559 }
1560 return error(node); 1560 return error(node);
1561 } 1561 }
1562 EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOpe rand) => leftOperand; 1562 EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOpe rand) => leftOperand;
1563 EvaluationResultImpl shiftLeftValid(BinaryExpression node, ValidResult leftOpe rand2) { 1563 EvaluationResultImpl shiftLeftValid(BinaryExpression node, ValidResult leftOpe rand) {
1564 if (!isAnyInt || !leftOperand2.isAnyInt) { 1564 if (!isAnyInt || !leftOperand.isAnyInt) {
1565 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); 1565 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
1566 } 1566 }
1567 if (isSomeInt || leftOperand2.isSomeInt) { 1567 if (isSomeInt || leftOperand.isSomeInt) {
1568 return RESULT_INT; 1568 return RESULT_INT;
1569 } 1569 }
1570 Object leftValue = leftOperand2.value; 1570 Object leftValue = leftOperand.value;
1571 if (leftValue == null) { 1571 if (leftValue == null) {
1572 return error(node.leftOperand); 1572 return error(node.leftOperand);
1573 } else if (value == null) { 1573 } else if (value == null) {
1574 return error(node.rightOperand); 1574 return error(node.rightOperand);
1575 } else if (leftValue is int) { 1575 } else if (leftValue is int) {
1576 if (value is int) { 1576 if (value is int) {
1577 return valueOf(((leftValue as int)) << ((value as int))); 1577 return valueOf(((leftValue as int)) << ((value as int)));
1578 } 1578 }
1579 return error(node.rightOperand); 1579 return error(node.rightOperand);
1580 } 1580 }
1581 if (value is int) { 1581 if (value is int) {
1582 return error(node.leftOperand); 1582 return error(node.leftOperand);
1583 } 1583 }
1584 return union(error(node.leftOperand), error(node.rightOperand)); 1584 return union(error(node.leftOperand), error(node.rightOperand));
1585 } 1585 }
1586 EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOp erand) => leftOperand; 1586 EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOp erand) => leftOperand;
1587 EvaluationResultImpl shiftRightValid(BinaryExpression node, ValidResult leftOp erand2) { 1587 EvaluationResultImpl shiftRightValid(BinaryExpression node, ValidResult leftOp erand) {
1588 if (!isAnyInt || !leftOperand2.isAnyInt) { 1588 if (!isAnyInt || !leftOperand.isAnyInt) {
1589 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); 1589 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT);
1590 } 1590 }
1591 if (isSomeInt || leftOperand2.isSomeInt) { 1591 if (isSomeInt || leftOperand.isSomeInt) {
1592 return RESULT_INT; 1592 return RESULT_INT;
1593 } 1593 }
1594 Object leftValue = leftOperand2.value; 1594 Object leftValue = leftOperand.value;
1595 if (leftValue == null) { 1595 if (leftValue == null) {
1596 return error(node.leftOperand); 1596 return error(node.leftOperand);
1597 } else if (value == null) { 1597 } else if (value == null) {
1598 return error(node.rightOperand); 1598 return error(node.rightOperand);
1599 } else if (leftValue is int) { 1599 } else if (leftValue is int) {
1600 if (value is int) { 1600 if (value is int) {
1601 return valueOf(((leftValue as int)) >> ((value as int))); 1601 return valueOf(((leftValue as int)) >> ((value as int)));
1602 } 1602 }
1603 return error(node.rightOperand); 1603 return error(node.rightOperand);
1604 } 1604 }
1605 if (value is int) { 1605 if (value is int) {
1606 return error(node.leftOperand); 1606 return error(node.leftOperand);
1607 } 1607 }
1608 return union(error(node.leftOperand), error(node.rightOperand)); 1608 return union(error(node.leftOperand), error(node.rightOperand));
1609 } 1609 }
1610 EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand; 1610 EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand ) => leftOperand;
1611 EvaluationResultImpl timesValid(BinaryExpression node, ValidResult leftOperand 2) { 1611 EvaluationResultImpl timesValid(BinaryExpression node, ValidResult leftOperand ) {
1612 if (!isAnyNum || !leftOperand2.isAnyNum) { 1612 if (!isAnyNum || !leftOperand.isAnyNum) {
1613 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); 1613 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM);
1614 } 1614 }
1615 if (isSomeInt || leftOperand2.isSomeInt) { 1615 if (isSomeInt || leftOperand.isSomeInt) {
1616 return RESULT_INT; 1616 return RESULT_INT;
1617 } else if (isSomeNum || leftOperand2.isSomeNum) { 1617 } else if (isSomeNum || leftOperand.isSomeNum) {
1618 return RESULT_NUM; 1618 return RESULT_NUM;
1619 } 1619 }
1620 Object leftValue = leftOperand2.value; 1620 Object leftValue = leftOperand.value;
1621 if (leftValue == null) { 1621 if (leftValue == null) {
1622 return error(node.leftOperand); 1622 return error(node.leftOperand);
1623 } else if (value == null) { 1623 } else if (value == null) {
1624 return error(node.rightOperand); 1624 return error(node.rightOperand);
1625 } else if (leftValue is int) { 1625 } else if (leftValue is int) {
1626 if (value is int) { 1626 if (value is int) {
1627 return valueOf(((leftValue as int)) * (value as int)); 1627 return valueOf(((leftValue as int)) * (value as int));
1628 } else if (value is double) { 1628 } else if (value is double) {
1629 return valueOf3(((leftValue as int)).toDouble() * ((value as double))); 1629 return valueOf3(((leftValue as int)).toDouble() * ((value as double)));
1630 } 1630 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1737 ValidResult valueOf3(double value) => new ValidResult(value); 1737 ValidResult valueOf3(double value) => new ValidResult(value);
1738 1738
1739 /** 1739 /**
1740 * Return a result object representing the given value. 1740 * Return a result object representing the given value.
1741 * 1741 *
1742 * @param value the value to be represented as a result object 1742 * @param value the value to be represented as a result object
1743 * @return a result object representing the given value 1743 * @return a result object representing the given value
1744 */ 1744 */
1745 ValidResult valueOf4(String value) => new ValidResult(value); 1745 ValidResult valueOf4(String value) => new ValidResult(value);
1746 } 1746 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698