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

Side by Side Diff: tests/compiler/dart2js/kernel/closed_world2_test.dart

Issue 2813853002: Use entity WorldImpl where possible (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
« no previous file with comments | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/world_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 // Partial test that the closed world computed from [WorldImpact]s derived from 5 // Partial test that the closed world computed from [WorldImpact]s derived from
6 // kernel is equivalent to the original computed from resolution. 6 // kernel is equivalent to the original computed from resolution.
7 library dart2js.kernel.closed_world2_test; 7 library dart2js.kernel.closed_world2_test;
8 8
9 import 'package:async_helper/async_helper.dart'; 9 import 'package:async_helper/async_helper.dart';
10 import 'package:compiler/src/closure.dart'; 10 import 'package:compiler/src/closure.dart';
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 Flags.useKernel, 68 Flags.useKernel,
69 Flags.enableAssertMessage 69 Flags.enableAssertMessage
70 ]); 70 ]);
71 ElementResolutionWorldBuilder.useInstantiationMap = true; 71 ElementResolutionWorldBuilder.useInstantiationMap = true;
72 compiler.resolution.retainCachesForTesting = true; 72 compiler.resolution.retainCachesForTesting = true;
73 await compiler.run(entryPoint); 73 await compiler.run(entryPoint);
74 compiler.resolutionWorldBuilder.closeWorld(compiler.reporter); 74 compiler.resolutionWorldBuilder.closeWorld(compiler.reporter);
75 75
76 KernelWorldBuilder worldBuilder = new KernelWorldBuilder( 76 KernelWorldBuilder worldBuilder = new KernelWorldBuilder(
77 compiler.reporter, compiler.backend.kernelTask.program); 77 compiler.reporter, compiler.backend.kernelTask.program);
78 List list = createKernelResolutionEnqueuerListener( 78 List list = createKernelResolutionEnqueuerListener(compiler.options,
79 compiler.options, compiler.deferredLoadTask, worldBuilder); 79 compiler.reporter, compiler.deferredLoadTask, worldBuilder);
80 ResolutionEnqueuerListener resolutionEnqueuerListener = list[0]; 80 ResolutionEnqueuerListener resolutionEnqueuerListener = list[0];
81 ImpactTransformer impactTransformer = list[1]; 81 ImpactTransformer impactTransformer = list[1];
82 ResolutionEnqueuer enqueuer = new ResolutionEnqueuer( 82 ResolutionEnqueuer enqueuer = new ResolutionEnqueuer(
83 compiler.enqueuer, 83 compiler.enqueuer,
84 compiler.options, 84 compiler.options,
85 compiler.reporter, 85 compiler.reporter,
86 const TreeShakingEnqueuerStrategy(), 86 const TreeShakingEnqueuerStrategy(),
87 resolutionEnqueuerListener, 87 resolutionEnqueuerListener,
88 new KernelResolutionWorldBuilder( 88 new KernelResolutionWorldBuilder(
89 worldBuilder.elementEnvironment, 89 worldBuilder.elementEnvironment,
90 worldBuilder.commonElements, 90 worldBuilder.commonElements,
91 new NativeBasicDataImpl(), 91 new NativeBasicDataImpl(),
92 const OpenWorldStrategy()), 92 const OpenWorldStrategy()),
93 new KernelWorkItemBuilder(worldBuilder, impactTransformer), 93 new KernelWorkItemBuilder(worldBuilder, impactTransformer),
94 'enqueuer from kelements'); 94 'enqueuer from kelements');
95 95
96 computeClosedWorld( 96 computeClosedWorld(
97 compiler.reporter, enqueuer, worldBuilder.elementEnvironment); 97 compiler.reporter, enqueuer, worldBuilder.elementEnvironment);
98 }); 98 });
99 } 99 }
100 100
101 List createKernelResolutionEnqueuerListener(CompilerOptions options, 101 List createKernelResolutionEnqueuerListener(
102 DeferredLoadTask deferredLoadTask, KernelWorldBuilder worldBuilder) { 102 CompilerOptions options,
103 DiagnosticReporter reporter,
104 DeferredLoadTask deferredLoadTask,
105 KernelWorldBuilder worldBuilder) {
103 ElementEnvironment elementEnvironment = worldBuilder.elementEnvironment; 106 ElementEnvironment elementEnvironment = worldBuilder.elementEnvironment;
104 CommonElements commonElements = worldBuilder.commonElements; 107 CommonElements commonElements = worldBuilder.commonElements;
105 BackendHelpers helpers = 108 BackendHelpers helpers =
106 new BackendHelpers(elementEnvironment, commonElements); 109 new BackendHelpers(elementEnvironment, commonElements);
107 BackendImpacts impacts = new BackendImpacts(options, commonElements, helpers); 110 BackendImpacts impacts = new BackendImpacts(options, commonElements, helpers);
108 111
109 // TODO(johnniwinther): Create Kernel based implementations for these: 112 // TODO(johnniwinther): Create Kernel based implementations for these:
110 NativeBasicData nativeBasicData = new NativeBasicDataImpl(); 113 NativeBasicData nativeBasicData = new NativeBasicDataImpl();
111 RuntimeTypesNeedBuilder rtiNeedBuilder = new RuntimeTypesNeedBuilderImpl(); 114 RuntimeTypesNeedBuilder rtiNeedBuilder = new RuntimeTypesNeedBuilderImpl();
112 MirrorsDataBuilder mirrorsDataBuilder = new MirrorsDataBuilderImpl(); 115 MirrorsDataBuilder mirrorsDataBuilder = new MirrorsDataBuilderImpl();
113 CustomElementsResolutionAnalysis customElementsResolutionAnalysis = 116 CustomElementsResolutionAnalysis customElementsResolutionAnalysis =
114 new CustomElementsResolutionAnalysisImpl(); 117 new CustomElementsResolutionAnalysisImpl();
115 LookupMapResolutionAnalysis lookupMapResolutionAnalysis =
116 new LookupMapResolutionAnalysisImpl();
117 MirrorsResolutionAnalysis mirrorsResolutionAnalysis = 118 MirrorsResolutionAnalysis mirrorsResolutionAnalysis =
118 new MirrorsResolutionAnalysisImpl(); 119 new MirrorsResolutionAnalysisImpl();
119 120
121 LookupMapResolutionAnalysis lookupMapResolutionAnalysis =
122 new LookupMapResolutionAnalysis(reporter, elementEnvironment);
120 BackendClasses backendClasses = new JavaScriptBackendClasses( 123 BackendClasses backendClasses = new JavaScriptBackendClasses(
121 elementEnvironment, helpers, nativeBasicData); 124 elementEnvironment, helpers, nativeBasicData);
122 InterceptorDataBuilder interceptorDataBuilder = 125 InterceptorDataBuilder interceptorDataBuilder =
123 new InterceptorDataBuilderImpl( 126 new InterceptorDataBuilderImpl(
124 nativeBasicData, helpers, elementEnvironment, commonElements); 127 nativeBasicData, helpers, elementEnvironment, commonElements);
125 BackendUsageBuilder backendUsageBuilder = 128 BackendUsageBuilder backendUsageBuilder =
126 new BackendUsageBuilderImpl(commonElements, helpers); 129 new BackendUsageBuilderImpl(commonElements, helpers);
127 NoSuchMethodRegistry noSuchMethodRegistry = new NoSuchMethodRegistry( 130 NoSuchMethodRegistry noSuchMethodRegistry = new NoSuchMethodRegistry(
128 helpers, new KernelNoSuchMethodResolver(worldBuilder)); 131 helpers, new KernelNoSuchMethodResolver(worldBuilder));
129 NativeResolutionEnqueuer nativeResolutionEnqueuer = 132 NativeResolutionEnqueuer nativeResolutionEnqueuer =
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 @override 268 @override
266 void registerStaticUse(MemberEntity element) {} 269 void registerStaticUse(MemberEntity element) {}
267 270
268 @override 271 @override
269 void registerInstantiatedClass(ClassEntity classElement) {} 272 void registerInstantiatedClass(ClassEntity classElement) {}
270 273
271 @override 274 @override
272 void registerTypeLiteral(DartType type) {} 275 void registerTypeLiteral(DartType type) {}
273 } 276 }
274 277
275 class LookupMapResolutionAnalysisImpl implements LookupMapResolutionAnalysis {
276 @override
277 FieldEntity lookupMapVersionVariable;
278 @override
279 LibraryEntity lookupMapLibrary;
280
281 @override
282 WorldImpact flush() {
283 // TODO(johnniwinther): Implement this.
284 return const WorldImpact();
285 }
286
287 @override
288 void init(LibraryEntity library) {}
289 }
290
291 class MirrorsResolutionAnalysisImpl implements MirrorsResolutionAnalysis { 278 class MirrorsResolutionAnalysisImpl implements MirrorsResolutionAnalysis {
292 @override 279 @override
293 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {} 280 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {}
294 281
295 @override 282 @override
296 MirrorsCodegenAnalysis close() { 283 MirrorsCodegenAnalysis close() {
297 throw new UnimplementedError('MirrorsResolutionAnalysisImpl.close'); 284 throw new UnimplementedError('MirrorsResolutionAnalysisImpl.close');
298 } 285 }
299 286
300 @override 287 @override
(...skipping 18 matching lines...) Expand all
319 final MemberEntity element; 306 final MemberEntity element;
320 307
321 KernelWorkItem(this._worldBuilder, this._impactTransformer, this.element); 308 KernelWorkItem(this._worldBuilder, this._impactTransformer, this.element);
322 309
323 @override 310 @override
324 WorldImpact run() { 311 WorldImpact run() {
325 ResolutionImpact impact = _worldBuilder.computeWorldImpact(element); 312 ResolutionImpact impact = _worldBuilder.computeWorldImpact(element);
326 return _impactTransformer.transformResolutionImpact(impact); 313 return _impactTransformer.transformResolutionImpact(impact);
327 } 314 }
328 } 315 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/world.dart ('k') | tests/compiler/dart2js/world_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698