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 '../common.dart'; | 7 import '../common.dart'; |
8 import '../constants/constant_system.dart'; | 8 import '../constants/constant_system.dart'; |
9 import '../common_elements.dart'; | 9 import '../common_elements.dart'; |
10 import '../elements/types.dart'; | 10 import '../elements/types.dart'; |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 @override | 475 @override |
476 ConstantValue evaluate( | 476 ConstantValue evaluate( |
477 Environment environment, ConstantSystem constantSystem) { | 477 Environment environment, ConstantSystem constantSystem) { |
478 Map<ConstantValue, ConstantValue> valueMap = | 478 Map<ConstantValue, ConstantValue> valueMap = |
479 <ConstantValue, ConstantValue>{}; | 479 <ConstantValue, ConstantValue>{}; |
480 for (int index = 0; index < keys.length; index++) { | 480 for (int index = 0; index < keys.length; index++) { |
481 ConstantValue key = keys[index].evaluate(environment, constantSystem); | 481 ConstantValue key = keys[index].evaluate(environment, constantSystem); |
482 ConstantValue value = values[index].evaluate(environment, constantSystem); | 482 ConstantValue value = values[index].evaluate(environment, constantSystem); |
483 valueMap[key] = value; | 483 valueMap[key] = value; |
484 } | 484 } |
485 return constantSystem.createMap( | 485 return constantSystem.createMap(environment.commonElements, type, |
486 environment.commonElements, | 486 valueMap.keys.toList(), valueMap.values.toList()); |
487 environment.backendClasses, | |
488 type, | |
489 valueMap.keys.toList(), | |
490 valueMap.values.toList()); | |
491 } | 487 } |
492 | 488 |
493 ConstantExpression apply(NormalizedArguments arguments) { | 489 ConstantExpression apply(NormalizedArguments arguments) { |
494 return new MapConstantExpression( | 490 return new MapConstantExpression( |
495 type, | 491 type, |
496 keys.map((k) => k.apply(arguments)).toList(), | 492 keys.map((k) => k.apply(arguments)).toList(), |
497 values.map((v) => v.apply(arguments)).toList()); | 493 values.map((v) => v.apply(arguments)).toList()); |
498 } | 494 } |
499 | 495 |
500 @override | 496 @override |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
731 int _computeHashCode() => 13 * name.hashCode; | 727 int _computeHashCode() => 13 * name.hashCode; |
732 | 728 |
733 @override | 729 @override |
734 bool _equals(SymbolConstantExpression other) { | 730 bool _equals(SymbolConstantExpression other) { |
735 return name == other.name; | 731 return name == other.name; |
736 } | 732 } |
737 | 733 |
738 @override | 734 @override |
739 ConstantValue evaluate( | 735 ConstantValue evaluate( |
740 Environment environment, ConstantSystem constantSystem) { | 736 Environment environment, ConstantSystem constantSystem) { |
741 return constantSystem.createSymbol( | 737 return constantSystem.createSymbol(environment.commonElements, name); |
742 environment.commonElements, environment.backendClasses, name); | |
743 } | 738 } |
744 | 739 |
745 @override | 740 @override |
746 InterfaceType getKnownType(CommonElements commonElements) => | 741 InterfaceType getKnownType(CommonElements commonElements) => |
747 commonElements.symbolType; | 742 commonElements.symbolType; |
748 } | 743 } |
749 | 744 |
750 /// Type literal. | 745 /// Type literal. |
751 class TypeConstantExpression extends ConstantExpression { | 746 class TypeConstantExpression extends ConstantExpression { |
752 /// Either [DynamicType] or a raw [GenericType]. | 747 /// Either [DynamicType] or a raw [GenericType]. |
(...skipping 14 matching lines...) Expand all Loading... |
767 } | 762 } |
768 | 763 |
769 @override | 764 @override |
770 void _createStructuredText(StringBuffer sb) { | 765 void _createStructuredText(StringBuffer sb) { |
771 sb.write('Type(type=$type)'); | 766 sb.write('Type(type=$type)'); |
772 } | 767 } |
773 | 768 |
774 @override | 769 @override |
775 ConstantValue evaluate( | 770 ConstantValue evaluate( |
776 Environment environment, ConstantSystem constantSystem) { | 771 Environment environment, ConstantSystem constantSystem) { |
777 return constantSystem.createType( | 772 return constantSystem.createType(environment.commonElements, type); |
778 environment.commonElements, environment.backendClasses, type); | |
779 } | 773 } |
780 | 774 |
781 @override | 775 @override |
782 int _computeHashCode() => 13 * type.hashCode; | 776 int _computeHashCode() => 13 * type.hashCode; |
783 | 777 |
784 @override | 778 @override |
785 bool _equals(TypeConstantExpression other) { | 779 bool _equals(TypeConstantExpression other) { |
786 return type == other.type; | 780 return type == other.type; |
787 } | 781 } |
788 | 782 |
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1942 visit(exp.name); | 1936 visit(exp.name); |
1943 if (exp.defaultValue != null) { | 1937 if (exp.defaultValue != null) { |
1944 sb.write(', defaultValue: '); | 1938 sb.write(', defaultValue: '); |
1945 visit(exp.defaultValue); | 1939 visit(exp.defaultValue); |
1946 } | 1940 } |
1947 sb.write(')'); | 1941 sb.write(')'); |
1948 } | 1942 } |
1949 | 1943 |
1950 String toString() => sb.toString(); | 1944 String toString() => sb.toString(); |
1951 } | 1945 } |
OLD | NEW |