Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.constants.expressions; | 5 library dart2js.constants.expressions; |
| 6 | 6 |
| 7 import '../constants/constant_system.dart'; | 7 import '../constants/constant_system.dart'; |
| 8 import '../dart2jslib.dart' show assertDebugMode, Compiler; | 8 import '../dart2jslib.dart' show assertDebugMode, Compiler; |
| 9 import '../dart_types.dart'; | 9 import '../dart_types.dart'; |
| 10 import '../elements/elements.dart' show | 10 import '../elements/elements.dart' show |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 | 21 |
| 22 enum ConstantExpressionKind { | 22 enum ConstantExpressionKind { |
| 23 BINARY, | 23 BINARY, |
| 24 BOOL, | 24 BOOL, |
| 25 BOOL_FROM_ENVIRONMENT, | 25 BOOL_FROM_ENVIRONMENT, |
| 26 CONCATENATE, | 26 CONCATENATE, |
| 27 CONDITIONAL, | 27 CONDITIONAL, |
| 28 CONSTRUCTED, | 28 CONSTRUCTED, |
| 29 DEFERRED, | 29 DEFERRED, |
| 30 DOUBLE, | 30 DOUBLE, |
| 31 DUMMY, | |
| 31 ERRONEOUS, | 32 ERRONEOUS, |
| 32 FUNCTION, | 33 FUNCTION, |
| 33 IDENTICAL, | 34 IDENTICAL, |
| 34 INT, | 35 INT, |
| 35 INT_FROM_ENVIRONMENT, | 36 INT_FROM_ENVIRONMENT, |
| 36 LIST, | 37 LIST, |
| 37 MAP, | 38 MAP, |
| 38 NULL, | 39 NULL, |
| 39 STRING, | 40 STRING, |
| 40 STRING_FROM_ENVIRONMENT, | 41 STRING_FROM_ENVIRONMENT, |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 328 return value; | 329 return value; |
| 329 } | 330 } |
| 330 | 331 |
| 331 @override | 332 @override |
| 332 int _computeHashCode() => 13; | 333 int _computeHashCode() => 13; |
| 333 | 334 |
| 334 @override | 335 @override |
| 335 bool _equals(ErroneousConstantExpression other) => true; | 336 bool _equals(ErroneousConstantExpression other) => true; |
| 336 } | 337 } |
| 337 | 338 |
| 339 class DummyConstantExpression extends ConstantExpression { | |
|
Johnni Winther
2015/05/28 12:07:17
Add a TODO for me to see if we can avoid the need
herhut
2015/06/01 12:09:41
Done.
| |
| 340 final DummyConstantValue value; | |
| 341 | |
| 342 DummyConstantExpression(this.value); | |
| 343 | |
| 344 @override | |
| 345 ConstantValue evaluate(Environment environment, | |
| 346 ConstantSystem constantSystem) { | |
| 347 return value; | |
| 348 } | |
| 349 | |
| 350 @override | |
| 351 int _computeHashCode() => 13 * value.hashCode; | |
| 352 | |
| 353 accept(ConstantExpressionVisitor visitor, [context]) { | |
| 354 throw "unsupported"; | |
| 355 } | |
| 356 | |
| 357 @override | |
| 358 bool _equals(BoolConstantExpression other) { | |
| 359 return value == other.value; | |
| 360 } | |
| 361 | |
| 362 ConstantExpressionKind get kind => ConstantExpressionKind.DUMMY; | |
| 363 } | |
| 364 | |
| 365 | |
| 366 | |
| 338 /// A boolean, int, double, string, or null constant. | 367 /// A boolean, int, double, string, or null constant. |
| 339 abstract class PrimitiveConstantExpression extends ConstantExpression { | 368 abstract class PrimitiveConstantExpression extends ConstantExpression { |
| 340 final PrimitiveConstantValue value; | 369 final PrimitiveConstantValue value; |
| 341 | 370 |
| 342 PrimitiveConstantExpression(this.value); | 371 PrimitiveConstantExpression(this.value); |
| 343 | 372 |
| 344 /// The primitive value of this contant expression. | 373 /// The primitive value of this contant expression. |
| 345 get primitiveValue; | 374 get primitiveValue; |
| 346 } | 375 } |
| 347 | 376 |
| (...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1575 @override | 1604 @override |
| 1576 void visitStringFromEnvironment(StringFromEnvironmentConstantExpression exp, | 1605 void visitStringFromEnvironment(StringFromEnvironmentConstantExpression exp, |
| 1577 [_]) { | 1606 [_]) { |
| 1578 sb.write('const String.fromEnvironment("${exp.name}", defaultValue: '); | 1607 sb.write('const String.fromEnvironment("${exp.name}", defaultValue: '); |
| 1579 visit(exp.defaultValue); | 1608 visit(exp.defaultValue); |
| 1580 sb.write(')'); | 1609 sb.write(')'); |
| 1581 } | 1610 } |
| 1582 | 1611 |
| 1583 String toString() => sb.toString(); | 1612 String toString() => sb.toString(); |
| 1584 } | 1613 } |
| OLD | NEW |