| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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.kernel.env; | 5 library dart2js.kernel.env; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' as ir; | 7 import 'package:kernel/ast.dart' as ir; |
| 8 import 'package:kernel/clone.dart'; | 8 import 'package:kernel/clone.dart'; |
| 9 import 'package:kernel/type_algebra.dart'; | 9 import 'package:kernel/type_algebra.dart'; |
| 10 | 10 |
| (...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 return _constantConstructor; | 556 return _constantConstructor; |
| 557 } | 557 } |
| 558 | 558 |
| 559 @override | 559 @override |
| 560 ConstructorData copy() { | 560 ConstructorData copy() { |
| 561 return new ConstructorDataImpl(node, functionNode, definition); | 561 return new ConstructorDataImpl(node, functionNode, definition); |
| 562 } | 562 } |
| 563 } | 563 } |
| 564 | 564 |
| 565 abstract class FieldData extends MemberData { | 565 abstract class FieldData extends MemberData { |
| 566 DartType getFieldType(KernelToElementMap elementMap); |
| 567 |
| 566 ConstantExpression getFieldConstant( | 568 ConstantExpression getFieldConstant( |
| 567 KernelToElementMapBase elementMap, FieldEntity field); | 569 KernelToElementMapBase elementMap, FieldEntity field); |
| 568 } | 570 } |
| 569 | 571 |
| 570 class FieldDataImpl extends MemberDataImpl implements FieldData { | 572 class FieldDataImpl extends MemberDataImpl implements FieldData { |
| 573 DartType _type; |
| 571 ConstantExpression _constant; | 574 ConstantExpression _constant; |
| 572 | 575 |
| 573 FieldDataImpl(ir.Field node, MemberDefinition definition) | 576 FieldDataImpl(ir.Field node, MemberDefinition definition) |
| 574 : super(node, definition); | 577 : super(node, definition); |
| 575 | 578 |
| 576 ir.Field get node => super.node; | 579 ir.Field get node => super.node; |
| 577 | 580 |
| 581 DartType getFieldType(covariant KernelToElementMapBase elementMap) { |
| 582 return _type ??= elementMap.getDartType(node.type); |
| 583 } |
| 584 |
| 578 ConstantExpression getFieldConstant( | 585 ConstantExpression getFieldConstant( |
| 579 KernelToElementMapBase elementMap, FieldEntity field) { | 586 KernelToElementMapBase elementMap, FieldEntity field) { |
| 580 if (_constant == null) { | 587 if (_constant == null) { |
| 581 if (node.isConst) { | 588 if (node.isConst) { |
| 582 _constant = new Constantifier(elementMap).visit(node.initializer); | 589 _constant = new Constantifier(elementMap).visit(node.initializer); |
| 583 } else { | 590 } else { |
| 584 failedAt( | 591 failedAt( |
| 585 field, | 592 field, |
| 586 "Unexpected field $field in " | 593 "Unexpected field $field in " |
| 587 "FieldDataImpl.getFieldConstant"); | 594 "FieldDataImpl.getFieldConstant"); |
| 588 } | 595 } |
| 589 } | 596 } |
| 590 return _constant; | 597 return _constant; |
| 591 } | 598 } |
| 592 | 599 |
| 593 @override | 600 @override |
| 594 FieldData copy() { | 601 FieldData copy() { |
| 595 return new FieldDataImpl(node, definition); | 602 return new FieldDataImpl(node, definition); |
| 596 } | 603 } |
| 597 } | 604 } |
| 598 | 605 |
| 599 class TypedefData { | 606 class TypedefData { |
| 600 final ir.Typedef node; | 607 final ir.Typedef node; |
| 601 final TypedefEntity element; | 608 final TypedefEntity element; |
| 602 final TypedefType rawType; | 609 final TypedefType rawType; |
| 603 | 610 |
| 604 TypedefData(this.node, this.element, this.rawType); | 611 TypedefData(this.node, this.element, this.rawType); |
| 605 } | 612 } |
| OLD | NEW |