| Index: pkg/compiler/lib/src/kernel/element_map.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
|
| index 22256550ac69816cf7c710e29b5f85cc8346951e..d7aa2102f268a7769c3cc13ba563686b508c8b59 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map.dart
|
| @@ -77,8 +77,7 @@ class KernelToElementMap extends KernelElementAdapterMixin {
|
| _elementEnvironment = new KernelElementEnvironment(this);
|
| _commonElements = new CommonElements(_elementEnvironment);
|
| _constantEnvironment = new KernelConstantEnvironment(this);
|
| - _nativeBehaviorBuilder =
|
| - new KernelBehaviorBuilder(_commonElements, _constantEnvironment);
|
| + _nativeBehaviorBuilder = new KernelBehaviorBuilder(_commonElements);
|
| _types = new _KernelDartTypes(this);
|
| _typeConverter = new DartTypeConverter(this);
|
| }
|
| @@ -124,6 +123,11 @@ class KernelToElementMap extends KernelElementAdapterMixin {
|
| @override
|
| native.BehaviorBuilder get nativeBehaviorBuilder => _nativeBehaviorBuilder;
|
|
|
| + @override
|
| + ConstantValue computeConstantValue(ConstantExpression constant) {
|
| + return _constantEnvironment.getConstantValue(constant);
|
| + }
|
| +
|
| LibraryEntity lookupLibrary(Uri uri) {
|
| _KLibraryEnv libraryEnv = _env.lookupLibrary(uri);
|
| if (libraryEnv == null) return null;
|
| @@ -194,7 +198,7 @@ class KernelToElementMap extends KernelElementAdapterMixin {
|
| });
|
| }
|
|
|
| - Iterable<ConstantExpression> _getClassMetadata(KClass cls) {
|
| + Iterable<ConstantValue> _getClassMetadata(KClass cls) {
|
| return _classEnvs[cls.classIndex].getMetadata(this);
|
| }
|
|
|
| @@ -732,7 +736,7 @@ class _KClassEnv {
|
| Map<String, ir.Member> _memberMap;
|
| Map<String, ir.Member> _setterMap;
|
|
|
| - Iterable<ConstantExpression> _metadata;
|
| + Iterable<ConstantValue> _metadata;
|
|
|
| _KClassEnv(this.cls)
|
| // TODO(johnniwinther): Change this to use a property on [cls] when such
|
| @@ -801,7 +805,7 @@ class _KClassEnv {
|
| }
|
| }
|
|
|
| - Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) {
|
| + Iterable<ConstantValue> getMetadata(KernelToElementMap elementMap) {
|
| if (_metadata == null) {
|
| _metadata = elementMap.getMetadata(cls.annotations);
|
| }
|
| @@ -811,7 +815,7 @@ class _KClassEnv {
|
|
|
| class _MemberData {
|
| final ir.Member node;
|
| - Iterable<ConstantExpression> _metadata;
|
| + Iterable<ConstantValue> _metadata;
|
|
|
| _MemberData(this.node);
|
|
|
| @@ -819,7 +823,7 @@ class _MemberData {
|
| return buildKernelImpact(node, elementMap);
|
| }
|
|
|
| - Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) {
|
| + Iterable<ConstantValue> getMetadata(KernelToElementMap elementMap) {
|
| return _metadata ??= elementMap.getMetadata(node.annotations);
|
| }
|
| }
|
| @@ -1049,12 +1053,8 @@ class KernelElementEnvironment implements ElementEnvironment {
|
|
|
| @override
|
| Iterable<ConstantValue> getMemberMetadata(KMember member) {
|
| - List<ConstantValue> values = <ConstantValue>[];
|
| _MemberData memberData = elementMap._memberList[member.memberIndex];
|
| - for (ConstantExpression constant in memberData.getMetadata(elementMap)) {
|
| - values.add(elementMap.constantEnvironment.getConstantValue(constant));
|
| - }
|
| - return values;
|
| + return memberData.getMetadata(elementMap);
|
| }
|
| }
|
|
|
| @@ -1136,12 +1136,8 @@ class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
|
| /// [native.BehaviorBuilder] for kernel based elements.
|
| class KernelBehaviorBuilder extends native.BehaviorBuilder {
|
| final CommonElements commonElements;
|
| - final ConstantEnvironment constants;
|
|
|
| - KernelBehaviorBuilder(
|
| - this.commonElements,
|
| - this.constants,
|
| - );
|
| + KernelBehaviorBuilder(this.commonElements);
|
|
|
| @override
|
| bool get trustJSInteropTypeAnnotations {
|
|
|