Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Side by Side Diff: pkg/compiler/lib/src/kernel/element_map.dart

Issue 2860893003: Revert "Make JavaScriptBackend.processAnnotations element-model agnostic" (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.element_map; 5 library dart2js.kernel.element_map;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common/resolution.dart'; 10 import '../common/resolution.dart';
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 _memberMap.values.forEach(f); 793 _memberMap.values.forEach(f);
794 for (ir.Member member in _setterMap.values) { 794 for (ir.Member member in _setterMap.values) {
795 if (member is ir.Procedure) { 795 if (member is ir.Procedure) {
796 f(member); 796 f(member);
797 } else { 797 } else {
798 // Skip fields; these are also in _memberMap. 798 // Skip fields; these are also in _memberMap.
799 } 799 }
800 } 800 }
801 } 801 }
802 802
803 Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) { 803 Iterable<ConstantExpression> getMetadata(KernelToElementMap worldBuilder) {
804 if (_metadata == null) { 804 if (_metadata == null) {
805 _metadata = elementMap.getMetadata(cls.annotations); 805 _metadata = worldBuilder.getMetadata(cls.annotations);
806 } 806 }
807 return _metadata; 807 return _metadata;
808 } 808 }
809 } 809 }
810 810
811 class _MemberData { 811 class _MemberData {
812 final ir.Member node; 812 final ir.Member node;
813 Iterable<ConstantExpression> _metadata;
814 813
815 _MemberData(this.node); 814 _MemberData(this.node);
816 815
817 ResolutionImpact getWorldImpact(KernelToElementMap elementMap) { 816 ResolutionImpact getWorldImpact(KernelToElementMap elementMap) {
818 return buildKernelImpact(node, elementMap); 817 return buildKernelImpact(node, elementMap);
819 } 818 }
820
821 Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) {
822 return _metadata ??= elementMap.getMetadata(node.annotations);
823 }
824 } 819 }
825 820
826 class _FunctionData extends _MemberData { 821 class _FunctionData extends _MemberData {
827 final ir.FunctionNode functionNode; 822 final ir.FunctionNode functionNode;
828 FunctionType _type; 823 FunctionType _type;
829 CallStructure _callStructure; 824 CallStructure _callStructure;
830 825
831 _FunctionData(ir.Member node, this.functionNode) : super(node); 826 _FunctionData(ir.Member node, this.functionNode) : super(node);
832 827
833 FunctionType getFunctionType(KernelToElementMap elementMap) { 828 FunctionType getFunctionType(KernelToElementMap elementMap) {
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 CallStructure getCallStructure(KFunction function) { 1033 CallStructure getCallStructure(KFunction function) {
1039 _FunctionData data = elementMap._memberList[function.memberIndex]; 1034 _FunctionData data = elementMap._memberList[function.memberIndex];
1040 return data.callStructure; 1035 return data.callStructure;
1041 } 1036 }
1042 1037
1043 @override 1038 @override
1044 bool isDeferredLoadLibraryGetter(KMember member) { 1039 bool isDeferredLoadLibraryGetter(KMember member) {
1045 // TODO(johnniwinther): Support these. 1040 // TODO(johnniwinther): Support these.
1046 return false; 1041 return false;
1047 } 1042 }
1048
1049 @override
1050 Iterable<ConstantValue> getMemberMetadata(KMember member) {
1051 List<ConstantValue> values = <ConstantValue>[];
1052 _MemberData memberData = elementMap._memberList[member.memberIndex];
1053 for (ConstantExpression constant in memberData.getMetadata(elementMap)) {
1054 values.add(elementMap.constantEnvironment.getConstantValue(constant));
1055 }
1056 return values;
1057 }
1058 } 1043 }
1059 1044
1060 /// Visitor that converts kernel dart types into [DartType]. 1045 /// Visitor that converts kernel dart types into [DartType].
1061 class DartTypeConverter extends ir.DartTypeVisitor<DartType> { 1046 class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
1062 final KernelToElementMap elementAdapter; 1047 final KernelToElementMap elementAdapter;
1063 bool topLevel = true; 1048 bool topLevel = true;
1064 1049
1065 DartTypeConverter(this.elementAdapter); 1050 DartTypeConverter(this.elementAdapter);
1066 1051
1067 DartType convert(ir.DartType type) { 1052 DartType convert(ir.DartType type) {
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 } 1278 }
1294 1279
1295 InterfaceType getMixinTypeForClass(KClass cls) { 1280 InterfaceType getMixinTypeForClass(KClass cls) {
1296 _KClassEnv env = builder._classEnvs[cls.classIndex]; 1281 _KClassEnv env = builder._classEnvs[cls.classIndex];
1297 ir.Supertype mixedInType = env.cls.mixedInType; 1282 ir.Supertype mixedInType = env.cls.mixedInType;
1298 if (mixedInType == null) return null; 1283 if (mixedInType == null) return null;
1299 return builder.createInterfaceType( 1284 return builder.createInterfaceType(
1300 mixedInType.classNode, mixedInType.typeArguments); 1285 mixedInType.classNode, mixedInType.typeArguments);
1301 } 1286 }
1302 } 1287 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/compiler/lib/src/resolution/resolution_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698