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

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

Issue 2975433002: Assert that we don't mix K and J elements (Closed)
Patch Set: Updated cf. comments Created 3 years, 5 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.frontend_strategy; 5 library dart2js.kernel.frontend_strategy;
6 6
7 import '../closure.dart'; 7 import '../closure.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common_elements.dart'; 9 import '../common_elements.dart';
10 import '../common/backend_api.dart'; 10 import '../common/backend_api.dart';
11 import '../common/resolution.dart'; 11 import '../common/resolution.dart';
12 import '../common/tasks.dart'; 12 import '../common/tasks.dart';
13 import '../common/work.dart'; 13 import '../common/work.dart';
14 import '../elements/elements.dart'; 14 import '../elements/elements.dart';
15 import '../elements/entities.dart'; 15 import '../elements/entities.dart';
16 import '../elements/types.dart'; 16 import '../elements/types.dart';
17 import '../environment.dart' as env; 17 import '../environment.dart' as env;
18 import '../enqueue.dart'; 18 import '../enqueue.dart';
19 import '../frontend_strategy.dart'; 19 import '../frontend_strategy.dart';
20 import '../js_backend/backend.dart'; 20 import '../js_backend/backend.dart';
21 import '../js_backend/backend_usage.dart'; 21 import '../js_backend/backend_usage.dart';
22 import '../js_backend/interceptor_data.dart'; 22 import '../js_backend/interceptor_data.dart';
23 import '../js_backend/mirrors_analysis.dart'; 23 import '../js_backend/mirrors_analysis.dart';
24 import '../js_backend/mirrors_data.dart'; 24 import '../js_backend/mirrors_data.dart';
25 import '../js_backend/native_data.dart'; 25 import '../js_backend/native_data.dart';
26 import '../js_backend/no_such_method_registry.dart'; 26 import '../js_backend/no_such_method_registry.dart';
27 import '../js_backend/runtime_types.dart'; 27 import '../js_backend/runtime_types.dart';
28 import '../library_loader.dart'; 28 import '../library_loader.dart';
29 import '../native/enqueue.dart' show NativeResolutionEnqueuer;
29 import '../native/resolver.dart'; 30 import '../native/resolver.dart';
31 import '../options.dart';
30 import '../serialization/task.dart'; 32 import '../serialization/task.dart';
31 import '../patch_parser.dart'; 33 import '../patch_parser.dart';
32 import '../resolved_uri_translator.dart'; 34 import '../resolved_uri_translator.dart';
33 import '../universe/world_builder.dart'; 35 import '../universe/world_builder.dart';
34 import '../universe/world_impact.dart'; 36 import '../universe/world_impact.dart';
35 import '../world.dart'; 37 import '../world.dart';
36 import 'element_map.dart'; 38 import 'element_map.dart';
37 import 'element_map_impl.dart'; 39 import 'element_map_impl.dart';
38 import 'kernel_backend_strategy.dart'; 40 import 'kernel_backend_strategy.dart';
39 41
40 /// Front end strategy that loads '.dill' files and builds a resolved element 42 /// Front end strategy that loads '.dill' files and builds a resolved element
41 /// model from kernel IR nodes. 43 /// model from kernel IR nodes.
42 class KernelFrontEndStrategy implements FrontendStrategy { 44 class KernelFrontEndStrategy extends FrontendStrategyBase {
45 CompilerOptions _options;
43 KernelToElementMapForImpactImpl _elementMap; 46 KernelToElementMapForImpactImpl _elementMap;
44 47
45 KernelAnnotationProcessor _annotationProcesser; 48 KernelAnnotationProcessor _annotationProcesser;
46 49
47 KernelFrontEndStrategy( 50 KernelFrontEndStrategy(
48 DiagnosticReporter reporter, env.Environment environment) 51 this._options, DiagnosticReporter reporter, env.Environment environment)
49 : _elementMap = useJsStrategyForTesting 52 : _elementMap = useJsStrategyForTesting
50 ? new KernelToElementMapForImpactImpl2(reporter, environment) 53 ? new KernelToElementMapForImpactImpl2(reporter, environment)
51 : new KernelToElementMapImpl(reporter, environment); 54 : new KernelToElementMapImpl(reporter, environment);
52 55
53 @override 56 @override
54 LibraryLoaderTask createLibraryLoader( 57 LibraryLoaderTask createLibraryLoader(
55 ResolvedUriTranslator uriTranslator, 58 ResolvedUriTranslator uriTranslator,
56 ScriptLoader scriptLoader, 59 ScriptLoader scriptLoader,
57 ElementScanner scriptScanner, 60 ElementScanner scriptScanner,
58 LibraryDeserializer deserializer, 61 LibraryDeserializer deserializer,
(...skipping 10 matching lines...) Expand all
69 ElementEnvironment get elementEnvironment => _elementMap.elementEnvironment; 72 ElementEnvironment get elementEnvironment => _elementMap.elementEnvironment;
70 73
71 @override 74 @override
72 CommonElements get commonElements => _elementMap.commonElements; 75 CommonElements get commonElements => _elementMap.commonElements;
73 76
74 DartTypes get dartTypes => _elementMap.types; 77 DartTypes get dartTypes => _elementMap.types;
75 78
76 KernelToElementMapForImpact get elementMap => _elementMap; 79 KernelToElementMapForImpact get elementMap => _elementMap;
77 80
78 @override 81 @override
79 AnnotationProcessor get annotationProcesser => 82 AnnotationProcessor get annotationProcesser => _annotationProcesser ??=
80 _annotationProcesser ??= new KernelAnnotationProcessor(elementMap); 83 new KernelAnnotationProcessor(elementMap, nativeBasicDataBuilder);
81 84
82 @override 85 @override
83 NativeClassFinder createNativeClassFinder(NativeBasicData nativeBasicData) { 86 NativeClassFinder createNativeClassFinder(NativeBasicData nativeBasicData) {
84 return new BaseNativeClassFinder(_elementMap.elementEnvironment, 87 return new BaseNativeClassFinder(_elementMap.elementEnvironment,
85 elementMap.commonElements, nativeBasicData); 88 elementMap.commonElements, nativeBasicData);
86 } 89 }
87 90
88 NoSuchMethodResolver createNoSuchMethodResolver() { 91 NoSuchMethodResolver createNoSuchMethodResolver() {
89 return new KernelNoSuchMethodResolver(elementMap); 92 return new KernelNoSuchMethodResolver(elementMap);
90 } 93 }
(...skipping 17 matching lines...) Expand all
108 RuntimeTypesNeedBuilder createRuntimeTypesNeedBuilder() { 111 RuntimeTypesNeedBuilder createRuntimeTypesNeedBuilder() {
109 return new RuntimeTypesNeedBuilderImpl( 112 return new RuntimeTypesNeedBuilderImpl(
110 elementEnvironment, _elementMap.types); 113 elementEnvironment, _elementMap.types);
111 } 114 }
112 115
113 ResolutionWorldBuilder createResolutionWorldBuilder( 116 ResolutionWorldBuilder createResolutionWorldBuilder(
114 NativeBasicData nativeBasicData, 117 NativeBasicData nativeBasicData,
115 NativeDataBuilder nativeDataBuilder, 118 NativeDataBuilder nativeDataBuilder,
116 InterceptorDataBuilder interceptorDataBuilder, 119 InterceptorDataBuilder interceptorDataBuilder,
117 BackendUsageBuilder backendUsageBuilder, 120 BackendUsageBuilder backendUsageBuilder,
121 RuntimeTypesNeedBuilder rtiNeedBuilder,
122 NativeResolutionEnqueuer nativeResolutionEnqueuer,
118 SelectorConstraintsStrategy selectorConstraintsStrategy) { 123 SelectorConstraintsStrategy selectorConstraintsStrategy) {
119 return new KernelResolutionWorldBuilder( 124 return new KernelResolutionWorldBuilder(
125 _options,
120 elementMap, 126 elementMap,
121 nativeBasicData, 127 nativeBasicData,
122 nativeDataBuilder, 128 nativeDataBuilder,
123 interceptorDataBuilder, 129 interceptorDataBuilder,
124 backendUsageBuilder, 130 backendUsageBuilder,
131 rtiNeedBuilder,
132 nativeResolutionEnqueuer,
125 selectorConstraintsStrategy); 133 selectorConstraintsStrategy);
126 } 134 }
127 135
128 WorkItemBuilder createResolutionWorkItemBuilder( 136 WorkItemBuilder createResolutionWorkItemBuilder(
129 NativeBasicData nativeBasicData, 137 NativeBasicData nativeBasicData,
130 NativeDataBuilder nativeDataBuilder, 138 NativeDataBuilder nativeDataBuilder,
131 ImpactTransformer impactTransformer) { 139 ImpactTransformer impactTransformer) {
132 return new KernelWorkItemBuilder( 140 return new KernelWorkItemBuilder(
133 elementMap, nativeBasicData, nativeDataBuilder, impactTransformer); 141 elementMap, nativeBasicData, nativeDataBuilder, impactTransformer);
134 } 142 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 int get preMirrorsMethodCount { 231 int get preMirrorsMethodCount {
224 // TODO(redemption): Implement this. 232 // TODO(redemption): Implement this.
225 return null; 233 return null;
226 } 234 }
227 235
228 @override 236 @override
229 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) { 237 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
230 // TODO(redemption): Implement this. 238 // TODO(redemption): Implement this.
231 } 239 }
232 } 240 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/kelements.dart ('k') | pkg/compiler/lib/src/kernel/native_basic_data.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698