| OLD | NEW |
| 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 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 EvaluationResultImpl shiftRight(BinaryExpression node, EvaluationResultImpl ri
ghtOperand) => rightOperand.shiftRightValid(node, this); | 1094 EvaluationResultImpl shiftRight(BinaryExpression node, EvaluationResultImpl ri
ghtOperand) => rightOperand.shiftRightValid(node, this); |
| 1095 EvaluationResultImpl times(BinaryExpression node, EvaluationResultImpl rightOp
erand) => rightOperand.timesValid(node, this); | 1095 EvaluationResultImpl times(BinaryExpression node, EvaluationResultImpl rightOp
erand) => rightOperand.timesValid(node, this); |
| 1096 String toString() { | 1096 String toString() { |
| 1097 if (_value == null) { | 1097 if (_value == null) { |
| 1098 return "null"; | 1098 return "null"; |
| 1099 } | 1099 } |
| 1100 return _value.toString(); | 1100 return _value.toString(); |
| 1101 } | 1101 } |
| 1102 EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; | 1102 EvaluationResultImpl addToError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; |
| 1103 EvaluationResultImpl addToValid(BinaryExpression node, ValidResult leftOperand
2) { | 1103 EvaluationResultImpl addToValid(BinaryExpression node, ValidResult leftOperand
2) { |
| 1104 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1105 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1106 } |
| 1104 if (isSomeNum || leftOperand2.isSomeNum) { | 1107 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1105 if (isAnyNum && leftOperand2.isAnyNum) { | 1108 return RESULT_NUM; |
| 1106 return RESULT_NUM; | |
| 1107 } | |
| 1108 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1109 } | 1109 } |
| 1110 Object leftValue = leftOperand2.value; | 1110 Object leftValue = leftOperand2.value; |
| 1111 if (leftValue == null) { | 1111 if (leftValue == null) { |
| 1112 return error(node.leftOperand); | 1112 return error(node.leftOperand); |
| 1113 } else if (_value == null) { | 1113 } else if (_value == null) { |
| 1114 return error(node.rightOperand); | 1114 return error(node.rightOperand); |
| 1115 } else if (leftValue is int) { | 1115 } else if (leftValue is int) { |
| 1116 if (_value is int) { | 1116 if (_value is int) { |
| 1117 return valueOf(((leftValue as int)) + (_value as int)); | 1117 return valueOf(((leftValue as int)) + (_value as int)); |
| 1118 } else if (_value is double) { | 1118 } else if (_value is double) { |
| 1119 return valueOf3(((leftValue as int)).toDouble() + ((_value as double))); | 1119 return valueOf3(((leftValue as int)).toDouble() + ((_value as double))); |
| 1120 } | 1120 } |
| 1121 } else if (leftValue is double) { | 1121 } else if (leftValue is double) { |
| 1122 if (_value is int) { | 1122 if (_value is int) { |
| 1123 return valueOf3(((leftValue as double)) + ((_value as int)).toDouble()); | 1123 return valueOf3(((leftValue as double)) + ((_value as int)).toDouble()); |
| 1124 } else if (_value is double) { | 1124 } else if (_value is double) { |
| 1125 return valueOf3(((leftValue as double)) + ((_value as double))); | 1125 return valueOf3(((leftValue as double)) + ((_value as double))); |
| 1126 } | 1126 } |
| 1127 } else if (leftValue is String) { | 1127 } else if (leftValue is String) { |
| 1128 if (_value is String) { | 1128 if (_value is String) { |
| 1129 return valueOf4("${((leftValue as String))}${((_value as String))}"); | 1129 return valueOf4("${((leftValue as String))}${((_value as String))}"); |
| 1130 } | 1130 } |
| 1131 } | 1131 } |
| 1132 return error(node); | 1132 return error(node); |
| 1133 } | 1133 } |
| 1134 EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; | 1134 EvaluationResultImpl bitAndError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; |
| 1135 EvaluationResultImpl bitAndValid(BinaryExpression node, ValidResult leftOperan
d2) { | 1135 EvaluationResultImpl bitAndValid(BinaryExpression node, ValidResult leftOperan
d2) { |
| 1136 if (!isAnyInt || !leftOperand2.isAnyInt) { |
| 1137 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); |
| 1138 } |
| 1136 if (isSomeInt || leftOperand2.isSomeInt) { | 1139 if (isSomeInt || leftOperand2.isSomeInt) { |
| 1137 if (isAnyInt && leftOperand2.isAnyInt) { | 1140 return RESULT_INT; |
| 1138 return RESULT_INT; | |
| 1139 } | |
| 1140 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); | |
| 1141 } | 1141 } |
| 1142 Object leftValue = leftOperand2.value; | 1142 Object leftValue = leftOperand2.value; |
| 1143 if (leftValue == null) { | 1143 if (leftValue == null) { |
| 1144 return error(node.leftOperand); | 1144 return error(node.leftOperand); |
| 1145 } else if (_value == null) { | 1145 } else if (_value == null) { |
| 1146 return error(node.rightOperand); | 1146 return error(node.rightOperand); |
| 1147 } else if (leftValue is int) { | 1147 } else if (leftValue is int) { |
| 1148 if (_value is int) { | 1148 if (_value is int) { |
| 1149 return valueOf(((leftValue as int)) & (_value as int)); | 1149 return valueOf(((leftValue as int)) & (_value as int)); |
| 1150 } | 1150 } |
| 1151 return error(node.leftOperand); | 1151 return error(node.leftOperand); |
| 1152 } | 1152 } |
| 1153 if (_value is int) { | 1153 if (_value is int) { |
| 1154 return error(node.rightOperand); | 1154 return error(node.rightOperand); |
| 1155 } | 1155 } |
| 1156 return union(error(node.leftOperand), error(node.rightOperand)); | 1156 return union(error(node.leftOperand), error(node.rightOperand)); |
| 1157 } | 1157 } |
| 1158 EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; | 1158 EvaluationResultImpl bitOrError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; |
| 1159 EvaluationResultImpl bitOrValid(BinaryExpression node, ValidResult leftOperand
2) { | 1159 EvaluationResultImpl bitOrValid(BinaryExpression node, ValidResult leftOperand
2) { |
| 1160 if (!isAnyInt || !leftOperand2.isAnyInt) { |
| 1161 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); |
| 1162 } |
| 1160 if (isSomeInt || leftOperand2.isSomeInt) { | 1163 if (isSomeInt || leftOperand2.isSomeInt) { |
| 1161 if (isAnyInt && leftOperand2.isAnyInt) { | 1164 return RESULT_INT; |
| 1162 return RESULT_INT; | |
| 1163 } | |
| 1164 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); | |
| 1165 } | 1165 } |
| 1166 Object leftValue = leftOperand2.value; | 1166 Object leftValue = leftOperand2.value; |
| 1167 if (leftValue == null) { | 1167 if (leftValue == null) { |
| 1168 return error(node.leftOperand); | 1168 return error(node.leftOperand); |
| 1169 } else if (_value == null) { | 1169 } else if (_value == null) { |
| 1170 return error(node.rightOperand); | 1170 return error(node.rightOperand); |
| 1171 } else if (leftValue is int) { | 1171 } else if (leftValue is int) { |
| 1172 if (_value is int) { | 1172 if (_value is int) { |
| 1173 return valueOf(((leftValue as int)) | (_value as int)); | 1173 return valueOf(((leftValue as int)) | (_value as int)); |
| 1174 } | 1174 } |
| 1175 return error(node.leftOperand); | 1175 return error(node.leftOperand); |
| 1176 } | 1176 } |
| 1177 if (_value is int) { | 1177 if (_value is int) { |
| 1178 return error(node.rightOperand); | 1178 return error(node.rightOperand); |
| 1179 } | 1179 } |
| 1180 return union(error(node.leftOperand), error(node.rightOperand)); | 1180 return union(error(node.leftOperand), error(node.rightOperand)); |
| 1181 } | 1181 } |
| 1182 EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; | 1182 EvaluationResultImpl bitXorError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; |
| 1183 EvaluationResultImpl bitXorValid(BinaryExpression node, ValidResult leftOperan
d2) { | 1183 EvaluationResultImpl bitXorValid(BinaryExpression node, ValidResult leftOperan
d2) { |
| 1184 if (!isAnyInt || !leftOperand2.isAnyInt) { |
| 1185 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); |
| 1186 } |
| 1184 if (isSomeInt || leftOperand2.isSomeInt) { | 1187 if (isSomeInt || leftOperand2.isSomeInt) { |
| 1185 if (isAnyInt && leftOperand2.isAnyInt) { | 1188 return RESULT_INT; |
| 1186 return RESULT_INT; | |
| 1187 } | |
| 1188 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); | |
| 1189 } | 1189 } |
| 1190 Object leftValue = leftOperand2.value; | 1190 Object leftValue = leftOperand2.value; |
| 1191 if (leftValue == null) { | 1191 if (leftValue == null) { |
| 1192 return error(node.leftOperand); | 1192 return error(node.leftOperand); |
| 1193 } else if (_value == null) { | 1193 } else if (_value == null) { |
| 1194 return error(node.rightOperand); | 1194 return error(node.rightOperand); |
| 1195 } else if (leftValue is int) { | 1195 } else if (leftValue is int) { |
| 1196 if (_value is int) { | 1196 if (_value is int) { |
| 1197 return valueOf(((leftValue as int)) ^ (_value as int)); | 1197 return valueOf(((leftValue as int)) ^ (_value as int)); |
| 1198 } | 1198 } |
| 1199 return error(node.leftOperand); | 1199 return error(node.leftOperand); |
| 1200 } | 1200 } |
| 1201 if (_value is int) { | 1201 if (_value is int) { |
| 1202 return error(node.rightOperand); | 1202 return error(node.rightOperand); |
| 1203 } | 1203 } |
| 1204 return union(error(node.leftOperand), error(node.rightOperand)); | 1204 return union(error(node.leftOperand), error(node.rightOperand)); |
| 1205 } | 1205 } |
| 1206 EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand
) => leftOperand; | 1206 EvaluationResultImpl concatenateError(Expression node, ErrorResult leftOperand
) => leftOperand; |
| 1207 EvaluationResultImpl concatenateValid(Expression node, ValidResult leftOperand
) { | 1207 EvaluationResultImpl concatenateValid(Expression node, ValidResult leftOperand
) { |
| 1208 Object leftValue = leftOperand.value; | 1208 Object leftValue = leftOperand.value; |
| 1209 if (leftValue is String && _value is String) { | 1209 if (leftValue is String && _value is String) { |
| 1210 return valueOf4("${((leftValue as String))}${((_value as String))}"); | 1210 return valueOf4("${((leftValue as String))}${((_value as String))}"); |
| 1211 } | 1211 } |
| 1212 return error(node); | 1212 return error(node); |
| 1213 } | 1213 } |
| 1214 EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; | 1214 EvaluationResultImpl divideError(BinaryExpression node, ErrorResult leftOperan
d) => leftOperand; |
| 1215 EvaluationResultImpl divideValid(BinaryExpression node, ValidResult leftOperan
d2) { | 1215 EvaluationResultImpl divideValid(BinaryExpression node, ValidResult leftOperan
d2) { |
| 1216 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1217 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1218 } |
| 1216 if (isSomeNum || leftOperand2.isSomeNum) { | 1219 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1217 if (isAnyNum && leftOperand2.isAnyNum) { | 1220 return RESULT_NUM; |
| 1218 return RESULT_NUM; | |
| 1219 } | |
| 1220 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1221 } | 1221 } |
| 1222 Object leftValue = leftOperand2.value; | 1222 Object leftValue = leftOperand2.value; |
| 1223 if (leftValue == null) { | 1223 if (leftValue == null) { |
| 1224 return error(node.leftOperand); | 1224 return error(node.leftOperand); |
| 1225 } else if (_value == null) { | 1225 } else if (_value == null) { |
| 1226 return error(node.rightOperand); | 1226 return error(node.rightOperand); |
| 1227 } else if (leftValue is int) { | 1227 } else if (leftValue is int) { |
| 1228 if (_value is int) { | 1228 if (_value is int) { |
| 1229 if (((_value as int)) == 0) { | 1229 if (((_value as int)) == 0) { |
| 1230 return valueOf3(((leftValue as int)).toDouble() / ((_value as int)).to
Double()); | 1230 return valueOf3(((leftValue as int)).toDouble() / ((_value as int)).to
Double()); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1275 if (_value is String) { | 1275 if (_value is String) { |
| 1276 return valueOf2(((leftValue as String)) == _value); | 1276 return valueOf2(((leftValue as String)) == _value); |
| 1277 } | 1277 } |
| 1278 return RESULT_FALSE; | 1278 return RESULT_FALSE; |
| 1279 } | 1279 } |
| 1280 return RESULT_FALSE; | 1280 return RESULT_FALSE; |
| 1281 } | 1281 } |
| 1282 EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftO
perand) => leftOperand; | 1282 EvaluationResultImpl greaterThanError(BinaryExpression node, ErrorResult leftO
perand) => leftOperand; |
| 1283 EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResul
t leftOperand) => leftOperand; | 1283 EvaluationResultImpl greaterThanOrEqualError(BinaryExpression node, ErrorResul
t leftOperand) => leftOperand; |
| 1284 EvaluationResultImpl greaterThanOrEqualValid(BinaryExpression node, ValidResul
t leftOperand2) { | 1284 EvaluationResultImpl greaterThanOrEqualValid(BinaryExpression node, ValidResul
t leftOperand2) { |
| 1285 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1286 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1287 } |
| 1285 if (isSomeNum || leftOperand2.isSomeNum) { | 1288 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1286 if (isAnyNum && leftOperand2.isAnyNum) { | 1289 return RESULT_BOOL; |
| 1287 return RESULT_BOOL; | |
| 1288 } | |
| 1289 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1290 } | 1290 } |
| 1291 Object leftValue = leftOperand2.value; | 1291 Object leftValue = leftOperand2.value; |
| 1292 if (leftValue == null) { | 1292 if (leftValue == null) { |
| 1293 return error(node.leftOperand); | 1293 return error(node.leftOperand); |
| 1294 } else if (_value == null) { | 1294 } else if (_value == null) { |
| 1295 return error(node.rightOperand); | 1295 return error(node.rightOperand); |
| 1296 } else if (leftValue is int) { | 1296 } else if (leftValue is int) { |
| 1297 if (_value is int) { | 1297 if (_value is int) { |
| 1298 return valueOf2(((leftValue as int)).compareTo((_value as int)) >= 0); | 1298 return valueOf2(((leftValue as int)).compareTo((_value as int)) >= 0); |
| 1299 } else if (_value is double) { | 1299 } else if (_value is double) { |
| 1300 return valueOf2(((leftValue as int)).toDouble() >= ((_value as double)))
; | 1300 return valueOf2(((leftValue as int)).toDouble() >= ((_value as double)))
; |
| 1301 } | 1301 } |
| 1302 } else if (leftValue is double) { | 1302 } else if (leftValue is double) { |
| 1303 if (_value is int) { | 1303 if (_value is int) { |
| 1304 return valueOf2(((leftValue as double)) >= ((_value as int)).toDouble())
; | 1304 return valueOf2(((leftValue as double)) >= ((_value as int)).toDouble())
; |
| 1305 } else if (_value is double) { | 1305 } else if (_value is double) { |
| 1306 return valueOf2(((leftValue as double)) >= ((_value as double))); | 1306 return valueOf2(((leftValue as double)) >= ((_value as double))); |
| 1307 } | 1307 } |
| 1308 } | 1308 } |
| 1309 return error(node); | 1309 return error(node); |
| 1310 } | 1310 } |
| 1311 EvaluationResultImpl greaterThanValid(BinaryExpression node, ValidResult leftO
perand2) { | 1311 EvaluationResultImpl greaterThanValid(BinaryExpression node, ValidResult leftO
perand2) { |
| 1312 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1313 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1314 } |
| 1312 if (isSomeNum || leftOperand2.isSomeNum) { | 1315 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1313 if (isAnyNum && leftOperand2.isAnyNum) { | 1316 return RESULT_BOOL; |
| 1314 return RESULT_BOOL; | |
| 1315 } | |
| 1316 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1317 } | 1317 } |
| 1318 Object leftValue = leftOperand2.value; | 1318 Object leftValue = leftOperand2.value; |
| 1319 if (leftValue == null) { | 1319 if (leftValue == null) { |
| 1320 return error(node.leftOperand); | 1320 return error(node.leftOperand); |
| 1321 } else if (_value == null) { | 1321 } else if (_value == null) { |
| 1322 return error(node.rightOperand); | 1322 return error(node.rightOperand); |
| 1323 } else if (leftValue is int) { | 1323 } else if (leftValue is int) { |
| 1324 if (_value is int) { | 1324 if (_value is int) { |
| 1325 return valueOf2(((leftValue as int)).compareTo((_value as int)) > 0); | 1325 return valueOf2(((leftValue as int)).compareTo((_value as int)) > 0); |
| 1326 } else if (_value is double) { | 1326 } else if (_value is double) { |
| 1327 return valueOf2(((leftValue as int)).toDouble() > ((_value as double))); | 1327 return valueOf2(((leftValue as int)).toDouble() > ((_value as double))); |
| 1328 } | 1328 } |
| 1329 } else if (leftValue is double) { | 1329 } else if (leftValue is double) { |
| 1330 if (_value is int) { | 1330 if (_value is int) { |
| 1331 return valueOf2(((leftValue as double)) > ((_value as int)).toDouble()); | 1331 return valueOf2(((leftValue as double)) > ((_value as int)).toDouble()); |
| 1332 } else if (_value is double) { | 1332 } else if (_value is double) { |
| 1333 return valueOf2(((leftValue as double)) > ((_value as double))); | 1333 return valueOf2(((leftValue as double)) > ((_value as double))); |
| 1334 } | 1334 } |
| 1335 } | 1335 } |
| 1336 return error(node); | 1336 return error(node); |
| 1337 } | 1337 } |
| 1338 EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult lef
tOperand) => leftOperand; | 1338 EvaluationResultImpl integerDivideError(BinaryExpression node, ErrorResult lef
tOperand) => leftOperand; |
| 1339 EvaluationResultImpl integerDivideValid(BinaryExpression node, ValidResult lef
tOperand2) { | 1339 EvaluationResultImpl integerDivideValid(BinaryExpression node, ValidResult lef
tOperand2) { |
| 1340 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1341 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1342 } |
| 1340 if (isSomeNum || leftOperand2.isSomeNum) { | 1343 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1341 if (isAnyNum && leftOperand2.isAnyNum) { | 1344 return RESULT_INT; |
| 1342 return RESULT_INT; | |
| 1343 } | |
| 1344 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1345 } | 1345 } |
| 1346 Object leftValue = leftOperand2.value; | 1346 Object leftValue = leftOperand2.value; |
| 1347 if (leftValue == null) { | 1347 if (leftValue == null) { |
| 1348 return error(node.leftOperand); | 1348 return error(node.leftOperand); |
| 1349 } else if (_value == null) { | 1349 } else if (_value == null) { |
| 1350 return error(node.rightOperand); | 1350 return error(node.rightOperand); |
| 1351 } else if (leftValue is int) { | 1351 } else if (leftValue is int) { |
| 1352 if (_value is int) { | 1352 if (_value is int) { |
| 1353 if (((_value as int)) == 0) { | 1353 if (((_value as int)) == 0) { |
| 1354 return error2(node, CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE); | 1354 return error2(node, CompileTimeErrorCode.CONST_EVAL_THROWS_IDBZE); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1365 } else if (_value is double) { | 1365 } else if (_value is double) { |
| 1366 double result = ((leftValue as double)) / ((_value as double)); | 1366 double result = ((leftValue as double)) / ((_value as double)); |
| 1367 return valueOf(result.toInt()); | 1367 return valueOf(result.toInt()); |
| 1368 } | 1368 } |
| 1369 } | 1369 } |
| 1370 return error(node); | 1370 return error(node); |
| 1371 } | 1371 } |
| 1372 EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOper
and) => leftOperand; | 1372 EvaluationResultImpl lessThanError(BinaryExpression node, ErrorResult leftOper
and) => leftOperand; |
| 1373 EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult l
eftOperand) => leftOperand; | 1373 EvaluationResultImpl lessThanOrEqualError(BinaryExpression node, ErrorResult l
eftOperand) => leftOperand; |
| 1374 EvaluationResultImpl lessThanOrEqualValid(BinaryExpression node, ValidResult l
eftOperand2) { | 1374 EvaluationResultImpl lessThanOrEqualValid(BinaryExpression node, ValidResult l
eftOperand2) { |
| 1375 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1376 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1377 } |
| 1375 if (isSomeNum || leftOperand2.isSomeNum) { | 1378 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1376 if (isAnyNum && leftOperand2.isAnyNum) { | 1379 return RESULT_BOOL; |
| 1377 return RESULT_BOOL; | |
| 1378 } | |
| 1379 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1380 } | 1380 } |
| 1381 Object leftValue = leftOperand2.value; | 1381 Object leftValue = leftOperand2.value; |
| 1382 if (leftValue == null) { | 1382 if (leftValue == null) { |
| 1383 return error(node.leftOperand); | 1383 return error(node.leftOperand); |
| 1384 } else if (_value == null) { | 1384 } else if (_value == null) { |
| 1385 return error(node.rightOperand); | 1385 return error(node.rightOperand); |
| 1386 } else if (leftValue is int) { | 1386 } else if (leftValue is int) { |
| 1387 if (_value is int) { | 1387 if (_value is int) { |
| 1388 return valueOf2(((leftValue as int)).compareTo((_value as int)) <= 0); | 1388 return valueOf2(((leftValue as int)).compareTo((_value as int)) <= 0); |
| 1389 } else if (_value is double) { | 1389 } else if (_value is double) { |
| 1390 return valueOf2(((leftValue as int)).toDouble() <= ((_value as double)))
; | 1390 return valueOf2(((leftValue as int)).toDouble() <= ((_value as double)))
; |
| 1391 } | 1391 } |
| 1392 } else if (leftValue is double) { | 1392 } else if (leftValue is double) { |
| 1393 if (_value is int) { | 1393 if (_value is int) { |
| 1394 return valueOf2(((leftValue as double)) <= ((_value as int)).toDouble())
; | 1394 return valueOf2(((leftValue as double)) <= ((_value as int)).toDouble())
; |
| 1395 } else if (_value is double) { | 1395 } else if (_value is double) { |
| 1396 return valueOf2(((leftValue as double)) <= ((_value as double))); | 1396 return valueOf2(((leftValue as double)) <= ((_value as double))); |
| 1397 } | 1397 } |
| 1398 } | 1398 } |
| 1399 return error(node); | 1399 return error(node); |
| 1400 } | 1400 } |
| 1401 EvaluationResultImpl lessThanValid(BinaryExpression node, ValidResult leftOper
and2) { | 1401 EvaluationResultImpl lessThanValid(BinaryExpression node, ValidResult leftOper
and2) { |
| 1402 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1403 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1404 } |
| 1402 if (isSomeNum || leftOperand2.isSomeNum) { | 1405 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1403 if (isAnyNum && leftOperand2.isAnyNum) { | 1406 return RESULT_BOOL; |
| 1404 return RESULT_BOOL; | |
| 1405 } | |
| 1406 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1407 } | 1407 } |
| 1408 Object leftValue = leftOperand2.value; | 1408 Object leftValue = leftOperand2.value; |
| 1409 if (leftValue == null) { | 1409 if (leftValue == null) { |
| 1410 return error(node.leftOperand); | 1410 return error(node.leftOperand); |
| 1411 } else if (_value == null) { | 1411 } else if (_value == null) { |
| 1412 return error(node.rightOperand); | 1412 return error(node.rightOperand); |
| 1413 } else if (leftValue is int) { | 1413 } else if (leftValue is int) { |
| 1414 if (_value is int) { | 1414 if (_value is int) { |
| 1415 return valueOf2(((leftValue as int)).compareTo((_value as int)) < 0); | 1415 return valueOf2(((leftValue as int)).compareTo((_value as int)) < 0); |
| 1416 } else if (_value is double) { | 1416 } else if (_value is double) { |
| 1417 return valueOf2(((leftValue as int)).toDouble() < ((_value as double))); | 1417 return valueOf2(((leftValue as int)).toDouble() < ((_value as double))); |
| 1418 } | 1418 } |
| 1419 } else if (leftValue is double) { | 1419 } else if (leftValue is double) { |
| 1420 if (_value is int) { | 1420 if (_value is int) { |
| 1421 return valueOf2(((leftValue as double)) < ((_value as int)).toDouble()); | 1421 return valueOf2(((leftValue as double)) < ((_value as int)).toDouble()); |
| 1422 } else if (_value is double) { | 1422 } else if (_value is double) { |
| 1423 return valueOf2(((leftValue as double)) < ((_value as double))); | 1423 return valueOf2(((leftValue as double)) < ((_value as double))); |
| 1424 } | 1424 } |
| 1425 } | 1425 } |
| 1426 return error(node); | 1426 return error(node); |
| 1427 } | 1427 } |
| 1428 EvaluationResultImpl logicalAndError(BinaryExpression node, ErrorResult leftOp
erand) => leftOperand; | 1428 EvaluationResultImpl logicalAndError(BinaryExpression node, ErrorResult leftOp
erand) => leftOperand; |
| 1429 EvaluationResultImpl logicalAndValid(BinaryExpression node, ValidResult leftOp
erand) { | 1429 EvaluationResultImpl logicalAndValid(BinaryExpression node, ValidResult leftOp
erand) { |
| 1430 if (!isAnyBool || !leftOperand.isAnyBool) { |
| 1431 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL); |
| 1432 } |
| 1430 if (isSomeBool || leftOperand.isSomeBool) { | 1433 if (isSomeBool || leftOperand.isSomeBool) { |
| 1431 if (isAnyBool && leftOperand.isAnyBool) { | 1434 return RESULT_BOOL; |
| 1432 return RESULT_BOOL; | |
| 1433 } | |
| 1434 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL); | |
| 1435 } | 1435 } |
| 1436 Object leftValue = leftOperand.value; | 1436 Object leftValue = leftOperand.value; |
| 1437 if (leftValue is bool) { | 1437 if (leftValue is bool) { |
| 1438 if (((leftValue as bool))) { | 1438 if (((leftValue as bool))) { |
| 1439 return booleanConversion(node.rightOperand, _value); | 1439 return booleanConversion(node.rightOperand, _value); |
| 1440 } | 1440 } |
| 1441 return RESULT_FALSE; | 1441 return RESULT_FALSE; |
| 1442 } | 1442 } |
| 1443 return error(node); | 1443 return error(node); |
| 1444 } | 1444 } |
| 1445 EvaluationResultImpl logicalOrError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; | 1445 EvaluationResultImpl logicalOrError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; |
| 1446 EvaluationResultImpl logicalOrValid(BinaryExpression node, ValidResult leftOpe
rand) { | 1446 EvaluationResultImpl logicalOrValid(BinaryExpression node, ValidResult leftOpe
rand) { |
| 1447 if (!isAnyBool || !leftOperand.isAnyBool) { | 1447 if (!isAnyBool || !leftOperand.isAnyBool) { |
| 1448 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL); | 1448 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_BOOL); |
| 1449 } | 1449 } |
| 1450 if (isSomeBool || leftOperand.isSomeBool) { | 1450 if (isSomeBool || leftOperand.isSomeBool) { |
| 1451 return RESULT_BOOL; | 1451 return RESULT_BOOL; |
| 1452 } | 1452 } |
| 1453 Object leftValue = leftOperand.value; | 1453 Object leftValue = leftOperand.value; |
| 1454 if (leftValue is bool && ((leftValue as bool))) { | 1454 if (leftValue is bool && ((leftValue as bool))) { |
| 1455 return RESULT_TRUE; | 1455 return RESULT_TRUE; |
| 1456 } | 1456 } |
| 1457 return booleanConversion(node.rightOperand, _value); | 1457 return booleanConversion(node.rightOperand, _value); |
| 1458 } | 1458 } |
| 1459 EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; | 1459 EvaluationResultImpl minusError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; |
| 1460 EvaluationResultImpl minusValid(BinaryExpression node, ValidResult leftOperand
2) { | 1460 EvaluationResultImpl minusValid(BinaryExpression node, ValidResult leftOperand
2) { |
| 1461 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1462 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1463 } |
| 1461 if (isSomeNum || leftOperand2.isSomeNum) { | 1464 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1462 if (isAnyNum && leftOperand2.isAnyNum) { | 1465 return RESULT_NUM; |
| 1463 return RESULT_NUM; | |
| 1464 } | |
| 1465 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1466 } | 1466 } |
| 1467 Object leftValue = leftOperand2.value; | 1467 Object leftValue = leftOperand2.value; |
| 1468 if (leftValue == null) { | 1468 if (leftValue == null) { |
| 1469 return error(node.leftOperand); | 1469 return error(node.leftOperand); |
| 1470 } else if (_value == null) { | 1470 } else if (_value == null) { |
| 1471 return error(node.rightOperand); | 1471 return error(node.rightOperand); |
| 1472 } else if (leftValue is int) { | 1472 } else if (leftValue is int) { |
| 1473 if (_value is int) { | 1473 if (_value is int) { |
| 1474 return valueOf(((leftValue as int)) - (_value as int)); | 1474 return valueOf(((leftValue as int)) - (_value as int)); |
| 1475 } else if (_value is double) { | 1475 } else if (_value is double) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1514 } else if (leftValue is String) { | 1514 } else if (leftValue is String) { |
| 1515 if (_value is String) { | 1515 if (_value is String) { |
| 1516 return valueOf2(((leftValue as String)) != _value); | 1516 return valueOf2(((leftValue as String)) != _value); |
| 1517 } | 1517 } |
| 1518 return RESULT_TRUE; | 1518 return RESULT_TRUE; |
| 1519 } | 1519 } |
| 1520 return RESULT_TRUE; | 1520 return RESULT_TRUE; |
| 1521 } | 1521 } |
| 1522 EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; | 1522 EvaluationResultImpl remainderError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; |
| 1523 EvaluationResultImpl remainderValid(BinaryExpression node, ValidResult leftOpe
rand2) { | 1523 EvaluationResultImpl remainderValid(BinaryExpression node, ValidResult leftOpe
rand2) { |
| 1524 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1525 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1526 } |
| 1524 if (isSomeNum || leftOperand2.isSomeNum) { | 1527 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1525 if (isAnyNum && leftOperand2.isAnyNum) { | 1528 return RESULT_NUM; |
| 1526 return RESULT_NUM; | |
| 1527 } | |
| 1528 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1529 } | 1529 } |
| 1530 Object leftValue = leftOperand2.value; | 1530 Object leftValue = leftOperand2.value; |
| 1531 if (leftValue == null) { | 1531 if (leftValue == null) { |
| 1532 return error(node.leftOperand); | 1532 return error(node.leftOperand); |
| 1533 } else if (_value == null) { | 1533 } else if (_value == null) { |
| 1534 return error(node.rightOperand); | 1534 return error(node.rightOperand); |
| 1535 } else if (leftValue is int) { | 1535 } else if (leftValue is int) { |
| 1536 if (_value is int) { | 1536 if (_value is int) { |
| 1537 if (((_value as int)) == 0) { | 1537 if (((_value as int)) == 0) { |
| 1538 return valueOf3(((leftValue as int)).toDouble() % ((_value as int)).to
Double()); | 1538 return valueOf3(((leftValue as int)).toDouble() % ((_value as int)).to
Double()); |
| 1539 } | 1539 } |
| 1540 return valueOf(((leftValue as int)).remainder((_value as int))); | 1540 return valueOf(((leftValue as int)).remainder((_value as int))); |
| 1541 } else if (_value is double) { | 1541 } else if (_value is double) { |
| 1542 return valueOf3(((leftValue as int)).toDouble() % ((_value as double))); | 1542 return valueOf3(((leftValue as int)).toDouble() % ((_value as double))); |
| 1543 } | 1543 } |
| 1544 } else if (leftValue is double) { | 1544 } else if (leftValue is double) { |
| 1545 if (_value is int) { | 1545 if (_value is int) { |
| 1546 return valueOf3(((leftValue as double)) % ((_value as int)).toDouble()); | 1546 return valueOf3(((leftValue as double)) % ((_value as int)).toDouble()); |
| 1547 } else if (_value is double) { | 1547 } else if (_value is double) { |
| 1548 return valueOf3(((leftValue as double)) % ((_value as double))); | 1548 return valueOf3(((leftValue as double)) % ((_value as double))); |
| 1549 } | 1549 } |
| 1550 } | 1550 } |
| 1551 return error(node); | 1551 return error(node); |
| 1552 } | 1552 } |
| 1553 EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; | 1553 EvaluationResultImpl shiftLeftError(BinaryExpression node, ErrorResult leftOpe
rand) => leftOperand; |
| 1554 EvaluationResultImpl shiftLeftValid(BinaryExpression node, ValidResult leftOpe
rand2) { | 1554 EvaluationResultImpl shiftLeftValid(BinaryExpression node, ValidResult leftOpe
rand2) { |
| 1555 if (!isAnyInt || !leftOperand2.isAnyInt) { |
| 1556 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); |
| 1557 } |
| 1555 if (isSomeInt || leftOperand2.isSomeInt) { | 1558 if (isSomeInt || leftOperand2.isSomeInt) { |
| 1556 if (isAnyInt && leftOperand2.isAnyInt) { | 1559 return RESULT_INT; |
| 1557 return RESULT_INT; | |
| 1558 } | |
| 1559 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); | |
| 1560 } | 1560 } |
| 1561 Object leftValue = leftOperand2.value; | 1561 Object leftValue = leftOperand2.value; |
| 1562 if (leftValue == null) { | 1562 if (leftValue == null) { |
| 1563 return error(node.leftOperand); | 1563 return error(node.leftOperand); |
| 1564 } else if (_value == null) { | 1564 } else if (_value == null) { |
| 1565 return error(node.rightOperand); | 1565 return error(node.rightOperand); |
| 1566 } else if (leftValue is int) { | 1566 } else if (leftValue is int) { |
| 1567 if (_value is int) { | 1567 if (_value is int) { |
| 1568 return valueOf(((leftValue as int)) << ((_value as int))); | 1568 return valueOf(((leftValue as int)) << ((_value as int))); |
| 1569 } | 1569 } |
| 1570 return error(node.rightOperand); | 1570 return error(node.rightOperand); |
| 1571 } | 1571 } |
| 1572 if (_value is int) { | 1572 if (_value is int) { |
| 1573 return error(node.leftOperand); | 1573 return error(node.leftOperand); |
| 1574 } | 1574 } |
| 1575 return union(error(node.leftOperand), error(node.rightOperand)); | 1575 return union(error(node.leftOperand), error(node.rightOperand)); |
| 1576 } | 1576 } |
| 1577 EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOp
erand) => leftOperand; | 1577 EvaluationResultImpl shiftRightError(BinaryExpression node, ErrorResult leftOp
erand) => leftOperand; |
| 1578 EvaluationResultImpl shiftRightValid(BinaryExpression node, ValidResult leftOp
erand2) { | 1578 EvaluationResultImpl shiftRightValid(BinaryExpression node, ValidResult leftOp
erand2) { |
| 1579 if (!isAnyInt || !leftOperand2.isAnyInt) { |
| 1580 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); |
| 1581 } |
| 1579 if (isSomeInt || leftOperand2.isSomeInt) { | 1582 if (isSomeInt || leftOperand2.isSomeInt) { |
| 1580 if (isAnyInt && leftOperand2.isAnyInt) { | 1583 return RESULT_INT; |
| 1581 return RESULT_INT; | |
| 1582 } | |
| 1583 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_INT); | |
| 1584 } | 1584 } |
| 1585 Object leftValue = leftOperand2.value; | 1585 Object leftValue = leftOperand2.value; |
| 1586 if (leftValue == null) { | 1586 if (leftValue == null) { |
| 1587 return error(node.leftOperand); | 1587 return error(node.leftOperand); |
| 1588 } else if (_value == null) { | 1588 } else if (_value == null) { |
| 1589 return error(node.rightOperand); | 1589 return error(node.rightOperand); |
| 1590 } else if (leftValue is int) { | 1590 } else if (leftValue is int) { |
| 1591 if (_value is int) { | 1591 if (_value is int) { |
| 1592 return valueOf(((leftValue as int)) >> ((_value as int))); | 1592 return valueOf(((leftValue as int)) >> ((_value as int))); |
| 1593 } | 1593 } |
| 1594 return error(node.rightOperand); | 1594 return error(node.rightOperand); |
| 1595 } | 1595 } |
| 1596 if (_value is int) { | 1596 if (_value is int) { |
| 1597 return error(node.leftOperand); | 1597 return error(node.leftOperand); |
| 1598 } | 1598 } |
| 1599 return union(error(node.leftOperand), error(node.rightOperand)); | 1599 return union(error(node.leftOperand), error(node.rightOperand)); |
| 1600 } | 1600 } |
| 1601 EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; | 1601 EvaluationResultImpl timesError(BinaryExpression node, ErrorResult leftOperand
) => leftOperand; |
| 1602 EvaluationResultImpl timesValid(BinaryExpression node, ValidResult leftOperand
2) { | 1602 EvaluationResultImpl timesValid(BinaryExpression node, ValidResult leftOperand
2) { |
| 1603 if (!isAnyNum || !leftOperand2.isAnyNum) { |
| 1604 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); |
| 1605 } |
| 1603 if (isSomeNum || leftOperand2.isSomeNum) { | 1606 if (isSomeNum || leftOperand2.isSomeNum) { |
| 1604 if (isAnyNum && leftOperand2.isAnyNum) { | 1607 return RESULT_NUM; |
| 1605 return RESULT_NUM; | |
| 1606 } | |
| 1607 return error2(node, CompileTimeErrorCode.CONST_EVAL_TYPE_NUM); | |
| 1608 } | 1608 } |
| 1609 Object leftValue = leftOperand2.value; | 1609 Object leftValue = leftOperand2.value; |
| 1610 if (leftValue == null) { | 1610 if (leftValue == null) { |
| 1611 return error(node.leftOperand); | 1611 return error(node.leftOperand); |
| 1612 } else if (_value == null) { | 1612 } else if (_value == null) { |
| 1613 return error(node.rightOperand); | 1613 return error(node.rightOperand); |
| 1614 } else if (leftValue is int) { | 1614 } else if (leftValue is int) { |
| 1615 if (_value is int) { | 1615 if (_value is int) { |
| 1616 return valueOf(((leftValue as int)) * (_value as int)); | 1616 return valueOf(((leftValue as int)) * (_value as int)); |
| 1617 } else if (_value is double) { | 1617 } else if (_value is double) { |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1726 ValidResult valueOf3(double value) => new ValidResult(value); | 1726 ValidResult valueOf3(double value) => new ValidResult(value); |
| 1727 | 1727 |
| 1728 /** | 1728 /** |
| 1729 * Return a result object representing the given value. | 1729 * Return a result object representing the given value. |
| 1730 * | 1730 * |
| 1731 * @param value the value to be represented as a result object | 1731 * @param value the value to be represented as a result object |
| 1732 * @return a result object representing the given value | 1732 * @return a result object representing the given value |
| 1733 */ | 1733 */ |
| 1734 ValidResult valueOf4(String value) => new ValidResult(value); | 1734 ValidResult valueOf4(String value) => new ValidResult(value); |
| 1735 } | 1735 } |
| OLD | NEW |