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

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

Issue 2964683003: Split implementation of KernelToElementMapImpl (Closed)
Patch Set: 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';
(...skipping 16 matching lines...) Expand all
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/resolver.dart'; 29 import '../native/resolver.dart';
30 import '../serialization/task.dart'; 30 import '../serialization/task.dart';
31 import '../patch_parser.dart'; 31 import '../patch_parser.dart';
32 import '../resolved_uri_translator.dart'; 32 import '../resolved_uri_translator.dart';
33 import '../universe/world_builder.dart'; 33 import '../universe/world_builder.dart';
34 import '../universe/world_impact.dart'; 34 import '../universe/world_impact.dart';
35 import '../world.dart'; 35 import '../world.dart';
36 import 'element_map_impl.dart'; 36 import 'element_map_impl.dart';
37 import 'kernel_backend_strategy.dart';
37 38
38 /// Front end strategy that loads '.dill' files and builds a resolved element 39 /// Front end strategy that loads '.dill' files and builds a resolved element
39 /// model from kernel IR nodes. 40 /// model from kernel IR nodes.
40 class KernelFrontEndStrategy implements FrontendStrategy { 41 class KernelFrontEndStrategy implements FrontendStrategy {
41 KernelToElementMapImpl elementMap; 42 KernelToElementMapForImpactImpl elementMap;
42 43
43 KernelAnnotationProcessor _annotationProcesser; 44 KernelAnnotationProcessor _annotationProcesser;
44 45
45 KernelFrontEndStrategy( 46 KernelFrontEndStrategy(
46 DiagnosticReporter reporter, env.Environment environment) 47 DiagnosticReporter reporter, env.Environment environment)
47 : elementMap = new KernelToElementMapImpl(reporter, environment); 48 : elementMap = useJsStrategyForTesting
49 ? new KernelToElementMapForImpactImpl2(reporter, environment)
50 : new KernelToElementMapImpl(reporter, environment);
48 51
49 @override 52 @override
50 LibraryLoaderTask createLibraryLoader( 53 LibraryLoaderTask createLibraryLoader(
51 ResolvedUriTranslator uriTranslator, 54 ResolvedUriTranslator uriTranslator,
52 ScriptLoader scriptLoader, 55 ScriptLoader scriptLoader,
53 ElementScanner scriptScanner, 56 ElementScanner scriptScanner,
54 LibraryDeserializer deserializer, 57 LibraryDeserializer deserializer,
55 PatchResolverFunction patchResolverFunc, 58 PatchResolverFunction patchResolverFunc,
56 PatchParserTask patchParser, 59 PatchParserTask patchParser,
57 env.Environment environment, 60 env.Environment environment,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 } 131 }
129 132
130 @override 133 @override
131 SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement) { 134 SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement) {
132 // TODO(redemption): Compute source spans from kernel elements. 135 // TODO(redemption): Compute source spans from kernel elements.
133 return new SourceSpan(null, null, null); 136 return new SourceSpan(null, null, null);
134 } 137 }
135 } 138 }
136 139
137 class KernelWorkItemBuilder implements WorkItemBuilder { 140 class KernelWorkItemBuilder implements WorkItemBuilder {
138 final KernelToElementMapImpl _elementMap; 141 final KernelToElementMapForImpactImpl _elementMap;
139 final ImpactTransformer _impactTransformer; 142 final ImpactTransformer _impactTransformer;
140 final NativeMemberResolver _nativeMemberResolver; 143 final NativeMemberResolver _nativeMemberResolver;
141 144
142 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData, 145 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData,
143 NativeDataBuilder nativeDataBuilder, this._impactTransformer) 146 NativeDataBuilder nativeDataBuilder, this._impactTransformer)
144 : _nativeMemberResolver = new KernelNativeMemberResolver( 147 : _nativeMemberResolver = new KernelNativeMemberResolver(
145 _elementMap, nativeBasicData, nativeDataBuilder); 148 _elementMap, nativeBasicData, nativeDataBuilder);
146 149
147 @override 150 @override
148 WorkItem createWorkItem(MemberEntity entity) { 151 WorkItem createWorkItem(MemberEntity entity) {
149 return new KernelWorkItem( 152 return new KernelWorkItem(
150 _elementMap, _impactTransformer, _nativeMemberResolver, entity); 153 _elementMap, _impactTransformer, _nativeMemberResolver, entity);
151 } 154 }
152 } 155 }
153 156
154 class KernelWorkItem implements ResolutionWorkItem { 157 class KernelWorkItem implements ResolutionWorkItem {
155 final KernelToElementMapImpl _elementMap; 158 final KernelToElementMapForImpactImpl _elementMap;
156 final ImpactTransformer _impactTransformer; 159 final ImpactTransformer _impactTransformer;
157 final NativeMemberResolver _nativeMemberResolver; 160 final NativeMemberResolver _nativeMemberResolver;
158 final MemberEntity element; 161 final MemberEntity element;
159 162
160 KernelWorkItem(this._elementMap, this._impactTransformer, 163 KernelWorkItem(this._elementMap, this._impactTransformer,
161 this._nativeMemberResolver, this.element); 164 this._nativeMemberResolver, this.element);
162 165
163 @override 166 @override
164 WorldImpact run() { 167 WorldImpact run() {
165 _nativeMemberResolver.resolveNativeMember(element); 168 _nativeMemberResolver.resolveNativeMember(element);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 int get preMirrorsMethodCount { 220 int get preMirrorsMethodCount {
218 // TODO(redemption): Implement this. 221 // TODO(redemption): Implement this.
219 return null; 222 return null;
220 } 223 }
221 224
222 @override 225 @override
223 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) { 226 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
224 // TODO(redemption): Implement this. 227 // TODO(redemption): Implement this.
225 } 228 }
226 } 229 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698