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

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

Issue 2813093002: Remove BackendClasses and JavaScriptBackendClasses. (Closed)
Patch Set: . Created 3 years, 8 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.world_builder; 5 library dart2js.kernel.world_builder;
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/backend_api.dart';
11 import '../common/resolution.dart'; 10 import '../common/resolution.dart';
12 import '../compile_time_constants.dart'; 11 import '../compile_time_constants.dart';
13 import '../constants/constant_system.dart'; 12 import '../constants/constant_system.dart';
14 import '../constants/constructors.dart'; 13 import '../constants/constructors.dart';
15 import '../constants/evaluation.dart'; 14 import '../constants/evaluation.dart';
16 import '../constants/expressions.dart'; 15 import '../constants/expressions.dart';
17 import '../constants/values.dart'; 16 import '../constants/values.dart';
18 import '../common_elements.dart'; 17 import '../common_elements.dart';
19 import '../elements/elements.dart'; 18 import '../elements/elements.dart';
20 import '../elements/entities.dart'; 19 import '../elements/entities.dart';
21 import '../elements/types.dart'; 20 import '../elements/types.dart';
22 import '../js_backend/constant_system_javascript.dart'; 21 import '../js_backend/constant_system_javascript.dart';
22 import '../js_backend/native_data.dart' show NativeData;
23 import '../js_backend/no_such_method_registry.dart'; 23 import '../js_backend/no_such_method_registry.dart';
24 import '../native/native.dart' as native; 24 import '../native/native.dart' as native;
25 import '../native/resolver.dart'; 25 import '../native/resolver.dart';
26 import '../ssa/kernel_impact.dart'; 26 import '../ssa/kernel_impact.dart';
27 import '../universe/call_structure.dart'; 27 import '../universe/call_structure.dart';
28 import 'element_adapter.dart'; 28 import 'element_adapter.dart';
29 import 'elements.dart'; 29 import 'elements.dart';
30 30
31 part 'native_class_resolver.dart'; 31 part 'native_class_resolver.dart';
32 part 'no_such_method_resolver.dart'; 32 part 'no_such_method_resolver.dart';
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 // Nested invalid types are treated as `dynamic`. 857 // Nested invalid types are treated as `dynamic`.
858 return const DynamicType(); 858 return const DynamicType();
859 } 859 }
860 } 860 }
861 861
862 /// [native.BehaviorBuilder] for kernel based elements. 862 /// [native.BehaviorBuilder] for kernel based elements.
863 class KernelBehaviorBuilder extends native.BehaviorBuilder { 863 class KernelBehaviorBuilder extends native.BehaviorBuilder {
864 final CommonElements commonElements; 864 final CommonElements commonElements;
865 final ConstantEnvironment constants; 865 final ConstantEnvironment constants;
866 866
867 KernelBehaviorBuilder(this.commonElements, this.constants); 867 KernelBehaviorBuilder(
868 this.commonElements,
869 this.constants,
870 );
868 871
869 @override 872 @override
870 bool get trustJSInteropTypeAnnotations { 873 bool get trustJSInteropTypeAnnotations {
871 throw new UnimplementedError( 874 throw new UnimplementedError(
872 "KernelNativeBehaviorComputer.trustJSInteropTypeAnnotations"); 875 "KernelNativeBehaviorComputer.trustJSInteropTypeAnnotations");
873 } 876 }
874 877
875 @override 878 @override
876 DiagnosticReporter get reporter { 879 DiagnosticReporter get reporter {
877 throw new UnimplementedError("KernelNativeBehaviorComputer.reporter"); 880 throw new UnimplementedError("KernelNativeBehaviorComputer.reporter");
878 } 881 }
879 882
880 @override 883 @override
881 BackendClasses get backendClasses { 884 NativeData get nativeData {
882 throw new UnimplementedError("KernelNativeBehaviorComputer.backendClasses"); 885 throw new UnimplementedError("KernelNativeBehaviorComputer.nativeData");
883 } 886 }
884 } 887 }
885 888
886 /// Constant environment mapping [ConstantExpression]s to [ConstantValue]s using 889 /// Constant environment mapping [ConstantExpression]s to [ConstantValue]s using
887 /// [_EvaluationEnvironment] for the evaluation. 890 /// [_EvaluationEnvironment] for the evaluation.
888 class KernelConstantEnvironment implements ConstantEnvironment { 891 class KernelConstantEnvironment implements ConstantEnvironment {
889 KernelWorldBuilder _worldBuilder; 892 KernelWorldBuilder _worldBuilder;
890 Map<ConstantExpression, ConstantValue> _valueMap = 893 Map<ConstantExpression, ConstantValue> _valueMap =
891 <ConstantExpression, ConstantValue>{}; 894 <ConstantExpression, ConstantValue>{};
892 895
(...skipping 28 matching lines...) Expand all
921 final KernelWorldBuilder _worldBuilder; 924 final KernelWorldBuilder _worldBuilder;
922 925
923 _EvaluationEnvironment(this._worldBuilder); 926 _EvaluationEnvironment(this._worldBuilder);
924 927
925 @override 928 @override
926 CommonElements get commonElements { 929 CommonElements get commonElements {
927 throw new UnimplementedError("_EvaluationEnvironment.commonElements"); 930 throw new UnimplementedError("_EvaluationEnvironment.commonElements");
928 } 931 }
929 932
930 @override 933 @override
931 BackendClasses get backendClasses {
932 throw new UnimplementedError("_EvaluationEnvironment.backendClasses");
933 }
934
935 @override
936 InterfaceType substByContext(InterfaceType base, InterfaceType target) { 934 InterfaceType substByContext(InterfaceType base, InterfaceType target) {
937 if (base.typeArguments.isNotEmpty) { 935 if (base.typeArguments.isNotEmpty) {
938 throw new UnimplementedError("_EvaluationEnvironment.substByContext"); 936 throw new UnimplementedError("_EvaluationEnvironment.substByContext");
939 } 937 }
940 return base; 938 return base;
941 } 939 }
942 940
943 @override 941 @override
944 ConstantConstructor getConstructorConstant(ConstructorEntity constructor) { 942 ConstantConstructor getConstructorConstant(ConstructorEntity constructor) {
945 return _worldBuilder._getConstructorConstant(constructor); 943 return _worldBuilder._getConstructorConstant(constructor);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 } 1001 }
1004 1002
1005 InterfaceType getMixinTypeForClass(KClass cls) { 1003 InterfaceType getMixinTypeForClass(KClass cls) {
1006 KClassEnv env = builder._classEnvs[cls.classIndex]; 1004 KClassEnv env = builder._classEnvs[cls.classIndex];
1007 ir.Supertype mixedInType = env.cls.mixedInType; 1005 ir.Supertype mixedInType = env.cls.mixedInType;
1008 if (mixedInType == null) return null; 1006 if (mixedInType == null) return null;
1009 return builder.createInterfaceType( 1007 return builder.createInterfaceType(
1010 mixedInType.classNode, mixedInType.typeArguments); 1008 mixedInType.classNode, mixedInType.typeArguments);
1011 } 1009 }
1012 } 1010 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/resolution_listener.dart ('k') | pkg/compiler/lib/src/native/behavior.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698