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

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

Issue 2873113004: Add equivalence check of NativeData and InterceptorData (Closed)
Patch Set: Created 3 years, 7 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 '../backend_strategy.dart'; 8 import '../backend_strategy.dart';
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common_elements.dart'; 10 import '../common_elements.dart';
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 ResolutionWorldBuilder createResolutionWorldBuilder( 110 ResolutionWorldBuilder createResolutionWorldBuilder(
111 NativeBasicData nativeBasicData, 111 NativeBasicData nativeBasicData,
112 NativeDataBuilder nativeDataBuilder, 112 NativeDataBuilder nativeDataBuilder,
113 InterceptorDataBuilder interceptorDataBuilder, 113 InterceptorDataBuilder interceptorDataBuilder,
114 SelectorConstraintsStrategy selectorConstraintsStrategy) { 114 SelectorConstraintsStrategy selectorConstraintsStrategy) {
115 return new KernelResolutionWorldBuilder(elementMap, nativeBasicData, 115 return new KernelResolutionWorldBuilder(elementMap, nativeBasicData,
116 nativeDataBuilder, interceptorDataBuilder, selectorConstraintsStrategy); 116 nativeDataBuilder, interceptorDataBuilder, selectorConstraintsStrategy);
117 } 117 }
118 118
119 WorkItemBuilder createResolutionWorkItemBuilder( 119 WorkItemBuilder createResolutionWorkItemBuilder(
120 NativeBasicData nativeBasicData,
121 NativeDataBuilder nativeDataBuilder,
120 ImpactTransformer impactTransformer) { 122 ImpactTransformer impactTransformer) {
121 return new KernelWorkItemBuilder(elementMap, impactTransformer); 123 return new KernelWorkItemBuilder(
124 elementMap, nativeBasicData, nativeDataBuilder, impactTransformer);
122 } 125 }
123 } 126 }
124 127
125 class KernelWorkItemBuilder implements WorkItemBuilder { 128 class KernelWorkItemBuilder implements WorkItemBuilder {
126 final KernelToElementMapImpl _elementMap; 129 final KernelToElementMapImpl _elementMap;
127 final ImpactTransformer _impactTransformer; 130 final ImpactTransformer _impactTransformer;
131 final NativeMemberResolver _nativeMemberResolver;
128 132
129 KernelWorkItemBuilder(this._elementMap, this._impactTransformer); 133 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData,
134 NativeDataBuilder nativeDataBuilder, this._impactTransformer)
135 : _nativeMemberResolver = new KernelNativeMemberResolver(
136 _elementMap, nativeBasicData, nativeDataBuilder);
130 137
131 @override 138 @override
132 WorkItem createWorkItem(MemberEntity entity) { 139 WorkItem createWorkItem(MemberEntity entity) {
133 return new KernelWorkItem(_elementMap, _impactTransformer, entity); 140 return new KernelWorkItem(
141 _elementMap, _impactTransformer, _nativeMemberResolver, entity);
134 } 142 }
135 } 143 }
136 144
137 class KernelWorkItem implements ResolutionWorkItem { 145 class KernelWorkItem implements ResolutionWorkItem {
138 final KernelToElementMapImpl _elementMap; 146 final KernelToElementMapImpl _elementMap;
139 final ImpactTransformer _impactTransformer; 147 final ImpactTransformer _impactTransformer;
148 final NativeMemberResolver _nativeMemberResolver;
140 final MemberEntity element; 149 final MemberEntity element;
141 150
142 KernelWorkItem(this._elementMap, this._impactTransformer, this.element); 151 KernelWorkItem(this._elementMap, this._impactTransformer,
152 this._nativeMemberResolver, this.element);
143 153
144 @override 154 @override
145 WorldImpact run() { 155 WorldImpact run() {
156 _nativeMemberResolver.resolveNativeMember(element);
146 ResolutionImpact impact = _elementMap.computeWorldImpact(element); 157 ResolutionImpact impact = _elementMap.computeWorldImpact(element);
147 return _impactTransformer.transformResolutionImpact(impact); 158 return _impactTransformer.transformResolutionImpact(impact);
148 } 159 }
149 } 160 }
150 161
151 /// Mock implementation of [MirrorsDataImpl]. 162 /// Mock implementation of [MirrorsDataImpl].
152 class MirrorsDataBuilderImpl extends MirrorsDataImpl { 163 class MirrorsDataBuilderImpl extends MirrorsDataImpl {
153 MirrorsDataBuilderImpl() : super(null, null, null); 164 MirrorsDataBuilderImpl() : super(null, null, null);
154 165
155 @override 166 @override
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 Sorter get sorter => 235 Sorter get sorter =>
225 throw new UnimplementedError('KernelBackendStrategy.sorter'); 236 throw new UnimplementedError('KernelBackendStrategy.sorter');
226 237
227 @override 238 @override
228 void convertClosures(ClosedWorldRefiner closedWorldRefiner) { 239 void convertClosures(ClosedWorldRefiner closedWorldRefiner) {
229 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based 240 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based
230 // elements. 241 // elements.
231 throw new UnimplementedError('KernelBackendStrategy.createClosureClasses'); 242 throw new UnimplementedError('KernelBackendStrategy.createClosureClasses');
232 } 243 }
233 } 244 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698