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

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

Issue 2814453005: Merge CommonElements and BackendHelpers! (Closed)
Patch Set: comments and re-merge, take two 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) 2016, 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 // 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';
11 import 'package:compiler/src/commandline_options.dart'; 11 import 'package:compiler/src/commandline_options.dart';
12 import 'package:compiler/src/common.dart'; 12 import 'package:compiler/src/common.dart';
13 import 'package:compiler/src/common_elements.dart'; 13 import 'package:compiler/src/common_elements.dart';
14 import 'package:compiler/src/common/backend_api.dart'; 14 import 'package:compiler/src/common/backend_api.dart';
15 import 'package:compiler/src/common/resolution.dart'; 15 import 'package:compiler/src/common/resolution.dart';
16 import 'package:compiler/src/common/work.dart'; 16 import 'package:compiler/src/common/work.dart';
17 import 'package:compiler/src/compiler.dart'; 17 import 'package:compiler/src/compiler.dart';
18 import 'package:compiler/src/deferred_load.dart'; 18 import 'package:compiler/src/deferred_load.dart';
19 import 'package:compiler/src/elements/resolution_types.dart'; 19 import 'package:compiler/src/elements/resolution_types.dart';
20 import 'package:compiler/src/elements/elements.dart'; 20 import 'package:compiler/src/elements/elements.dart';
21 import 'package:compiler/src/elements/entities.dart'; 21 import 'package:compiler/src/elements/entities.dart';
22 import 'package:compiler/src/elements/types.dart'; 22 import 'package:compiler/src/elements/types.dart';
23 import 'package:compiler/src/enqueue.dart'; 23 import 'package:compiler/src/enqueue.dart';
24 import 'package:compiler/src/js_backend/backend.dart'; 24 import 'package:compiler/src/js_backend/backend.dart';
25 import 'package:compiler/src/js_backend/backend_helpers.dart';
26 import 'package:compiler/src/js_backend/backend_impact.dart'; 25 import 'package:compiler/src/js_backend/backend_impact.dart';
27 import 'package:compiler/src/js_backend/backend_usage.dart'; 26 import 'package:compiler/src/js_backend/backend_usage.dart';
28 import 'package:compiler/src/js_backend/custom_elements_analysis.dart'; 27 import 'package:compiler/src/js_backend/custom_elements_analysis.dart';
29 import 'package:compiler/src/js_backend/native_data.dart'; 28 import 'package:compiler/src/js_backend/native_data.dart';
30 import 'package:compiler/src/js_backend/impact_transformer.dart'; 29 import 'package:compiler/src/js_backend/impact_transformer.dart';
31 import 'package:compiler/src/js_backend/interceptor_data.dart'; 30 import 'package:compiler/src/js_backend/interceptor_data.dart';
32 import 'package:compiler/src/js_backend/lookup_map_analysis.dart'; 31 import 'package:compiler/src/js_backend/lookup_map_analysis.dart';
33 import 'package:compiler/src/js_backend/mirrors_analysis.dart'; 32 import 'package:compiler/src/js_backend/mirrors_analysis.dart';
34 import 'package:compiler/src/js_backend/mirrors_data.dart'; 33 import 'package:compiler/src/js_backend/mirrors_data.dart';
35 import 'package:compiler/src/js_backend/no_such_method_registry.dart'; 34 import 'package:compiler/src/js_backend/no_such_method_registry.dart';
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 94
96 computeClosedWorld( 95 computeClosedWorld(
97 compiler.reporter, enqueuer, worldBuilder.elementEnvironment); 96 compiler.reporter, enqueuer, worldBuilder.elementEnvironment);
98 }); 97 });
99 } 98 }
100 99
101 List createKernelResolutionEnqueuerListener(CompilerOptions options, 100 List createKernelResolutionEnqueuerListener(CompilerOptions options,
102 DeferredLoadTask deferredLoadTask, KernelWorldBuilder worldBuilder) { 101 DeferredLoadTask deferredLoadTask, KernelWorldBuilder worldBuilder) {
103 ElementEnvironment elementEnvironment = worldBuilder.elementEnvironment; 102 ElementEnvironment elementEnvironment = worldBuilder.elementEnvironment;
104 CommonElements commonElements = worldBuilder.commonElements; 103 CommonElements commonElements = worldBuilder.commonElements;
105 BackendHelpers helpers = 104 BackendImpacts impacts = new BackendImpacts(options, commonElements);
106 new BackendHelpers(elementEnvironment, commonElements);
107 BackendImpacts impacts = new BackendImpacts(options, commonElements, helpers);
108 105
109 // TODO(johnniwinther): Create Kernel based implementations for these: 106 // TODO(johnniwinther): Create Kernel based implementations for these:
110 NativeBasicData nativeBasicData = new NativeBasicDataImpl(); 107 NativeBasicData nativeBasicData = new NativeBasicDataImpl();
111 RuntimeTypesNeedBuilder rtiNeedBuilder = new RuntimeTypesNeedBuilderImpl(); 108 RuntimeTypesNeedBuilder rtiNeedBuilder = new RuntimeTypesNeedBuilderImpl();
112 MirrorsDataBuilder mirrorsDataBuilder = new MirrorsDataBuilderImpl(); 109 MirrorsDataBuilder mirrorsDataBuilder = new MirrorsDataBuilderImpl();
113 CustomElementsResolutionAnalysis customElementsResolutionAnalysis = 110 CustomElementsResolutionAnalysis customElementsResolutionAnalysis =
114 new CustomElementsResolutionAnalysisImpl(); 111 new CustomElementsResolutionAnalysisImpl();
115 LookupMapResolutionAnalysis lookupMapResolutionAnalysis = 112 LookupMapResolutionAnalysis lookupMapResolutionAnalysis =
116 new LookupMapResolutionAnalysisImpl(); 113 new LookupMapResolutionAnalysisImpl();
117 MirrorsResolutionAnalysis mirrorsResolutionAnalysis = 114 MirrorsResolutionAnalysis mirrorsResolutionAnalysis =
118 new MirrorsResolutionAnalysisImpl(); 115 new MirrorsResolutionAnalysisImpl();
119 116
120 BackendClasses backendClasses = new JavaScriptBackendClasses( 117 BackendClasses backendClasses = new JavaScriptBackendClasses(
121 elementEnvironment, helpers, nativeBasicData); 118 elementEnvironment, commonElements, nativeBasicData);
122 InterceptorDataBuilder interceptorDataBuilder = 119 InterceptorDataBuilder interceptorDataBuilder =
123 new InterceptorDataBuilderImpl( 120 new InterceptorDataBuilderImpl(
124 nativeBasicData, helpers, elementEnvironment, commonElements); 121 nativeBasicData, elementEnvironment, commonElements);
125 BackendUsageBuilder backendUsageBuilder = 122 BackendUsageBuilder backendUsageBuilder =
126 new BackendUsageBuilderImpl(commonElements, helpers); 123 new BackendUsageBuilderImpl(commonElements);
127 NoSuchMethodRegistry noSuchMethodRegistry = new NoSuchMethodRegistry( 124 NoSuchMethodRegistry noSuchMethodRegistry = new NoSuchMethodRegistry(
128 helpers, new KernelNoSuchMethodResolver(worldBuilder)); 125 commonElements, new KernelNoSuchMethodResolver(worldBuilder));
129 NativeResolutionEnqueuer nativeResolutionEnqueuer = 126 NativeResolutionEnqueuer nativeResolutionEnqueuer =
130 new NativeResolutionEnqueuer( 127 new NativeResolutionEnqueuer(
131 options, 128 options,
132 elementEnvironment, 129 elementEnvironment,
133 commonElements, 130 commonElements,
134 helpers,
135 backendClasses, 131 backendClasses,
136 backendUsageBuilder, 132 backendUsageBuilder,
137 new KernelNativeClassResolver(worldBuilder)); 133 new KernelNativeClassResolver(worldBuilder));
138 134
139 ResolutionEnqueuerListener listener = new ResolutionEnqueuerListener( 135 ResolutionEnqueuerListener listener = new ResolutionEnqueuerListener(
140 options, 136 options,
141 elementEnvironment, 137 elementEnvironment,
142 commonElements, 138 commonElements,
143 helpers,
144 impacts, 139 impacts,
145 backendClasses, 140 backendClasses,
146 nativeBasicData, 141 nativeBasicData,
147 interceptorDataBuilder, 142 interceptorDataBuilder,
148 backendUsageBuilder, 143 backendUsageBuilder,
149 rtiNeedBuilder, 144 rtiNeedBuilder,
150 mirrorsDataBuilder, 145 mirrorsDataBuilder,
151 noSuchMethodRegistry, 146 noSuchMethodRegistry,
152 customElementsResolutionAnalysis, 147 customElementsResolutionAnalysis,
153 lookupMapResolutionAnalysis, 148 lookupMapResolutionAnalysis,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 class RuntimeTypesNeedBuilderImpl implements RuntimeTypesNeedBuilder { 204 class RuntimeTypesNeedBuilderImpl implements RuntimeTypesNeedBuilder {
210 @override 205 @override
211 void registerClassUsingTypeVariableExpression(ClassEntity cls) {} 206 void registerClassUsingTypeVariableExpression(ClassEntity cls) {}
212 207
213 @override 208 @override
214 RuntimeTypesNeed computeRuntimeTypesNeed( 209 RuntimeTypesNeed computeRuntimeTypesNeed(
215 ResolutionWorldBuilder resolutionWorldBuilder, 210 ResolutionWorldBuilder resolutionWorldBuilder,
216 ClosedWorld closedWorld, 211 ClosedWorld closedWorld,
217 DartTypes types, 212 DartTypes types,
218 CommonElements commonElements, 213 CommonElements commonElements,
219 BackendHelpers helpers,
220 BackendUsage backendUsage, 214 BackendUsage backendUsage,
221 {bool enableTypeAssertions}) { 215 {bool enableTypeAssertions}) {
222 throw new UnimplementedError( 216 throw new UnimplementedError(
223 'RuntimeTypesNeedBuilderImpl.computeRuntimeTypesNeed'); 217 'RuntimeTypesNeedBuilderImpl.computeRuntimeTypesNeed');
224 } 218 }
225 219
226 @override 220 @override
227 void registerRtiDependency(ClassEntity element, ClassEntity dependency) {} 221 void registerRtiDependency(ClassEntity element, ClassEntity dependency) {}
228 } 222 }
229 223
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 final MemberEntity element; 313 final MemberEntity element;
320 314
321 KernelWorkItem(this._worldBuilder, this._impactTransformer, this.element); 315 KernelWorkItem(this._worldBuilder, this._impactTransformer, this.element);
322 316
323 @override 317 @override
324 WorldImpact run() { 318 WorldImpact run() {
325 ResolutionImpact impact = _worldBuilder.computeWorldImpact(element); 319 ResolutionImpact impact = _worldBuilder.computeWorldImpact(element);
326 return _impactTransformer.transformResolutionImpact(impact); 320 return _impactTransformer.transformResolutionImpact(impact);
327 } 321 }
328 } 322 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/jsinterop/world_test.dart ('k') | tests/compiler/dart2js/kernel/closed_world_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698