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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/enqueue.dart

Issue 11299225: Revert "Canonicalize raw type" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 part of dart2js; 5 part of dart2js;
6 6
7 class EnqueueTask extends CompilerTask { 7 class EnqueueTask extends CompilerTask {
8 final Enqueuer codegen; 8 final Enqueuer codegen;
9 final Enqueuer resolution; 9 final Enqueuer resolution;
10 10
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 219 }
220 } 220 }
221 } 221 }
222 222
223 void onRegisterInstantiatedClass(ClassElement cls) { 223 void onRegisterInstantiatedClass(ClassElement cls) {
224 task.measure(() { 224 task.measure(() {
225 // The class must be resolved to compute the set of all 225 // The class must be resolved to compute the set of all
226 // supertypes. 226 // supertypes.
227 cls.ensureResolved(compiler); 227 cls.ensureResolved(compiler);
228 228
229 void processClass(ClassElement cls) { 229 for (Link<DartType> supertypes = cls.allSupertypesAndSelf;
230 if (seenClasses.contains(cls)) return; 230 !supertypes.isEmpty; supertypes = supertypes.tail) {
231 231 cls = supertypes.head.element;
232 if (seenClasses.contains(cls)) continue;
232 seenClasses.add(cls); 233 seenClasses.add(cls);
233 cls.ensureResolved(compiler); 234 cls.ensureResolved(compiler);
234 cls.implementation.forEachMember(processInstantiatedClassMember); 235 cls.implementation.forEachMember(processInstantiatedClassMember);
235 if (isResolutionQueue) { 236 if (isResolutionQueue) {
236 compiler.resolver.checkMembers(cls); 237 compiler.resolver.checkMembers(cls);
237 } 238 }
238 239
239 if (compiler.enableTypeAssertions) { 240 if (compiler.enableTypeAssertions) {
240 // We need to register is checks and helpers for checking 241 // We need to register is checks and helpers for checking
241 // assignments to fields. 242 // assignments to fields.
242 // TODO(ngeoffray): This should really move to the backend. 243 // TODO(ngeoffray): This should really move to the backend.
243 cls.localMembers.forEach((Element member) { 244 cls.localMembers.forEach((Element member) {
244 if (!member.isInstanceMember() || !member.isField()) return; 245 if (!member.isInstanceMember() || !member.isField()) return;
245 DartType type = member.computeType(compiler); 246 DartType type = member.computeType(compiler);
246 registerIsCheck(type); 247 registerIsCheck(type);
247 SourceString helper = compiler.backend.getCheckedModeHelper(type); 248 SourceString helper = compiler.backend.getCheckedModeHelper(type);
248 if (helper != null) { 249 if (helper != null) {
249 Element helperElement = compiler.findHelper(helper); 250 Element helperElement = compiler.findHelper(helper);
250 registerStaticUse(helperElement); 251 registerStaticUse(helperElement);
251 } 252 }
252 }); 253 });
253 } 254 }
254 } 255 }
255 processClass(cls);
256 for (Link<DartType> supertypes = cls.allSupertypes;
257 !supertypes.isEmpty; supertypes = supertypes.tail) {
258 processClass(supertypes.head.element);
259 }
260 }); 256 });
261 } 257 }
262 258
263 void registerNewSelector(SourceString name, 259 void registerNewSelector(SourceString name,
264 Selector selector, 260 Selector selector,
265 Map<SourceString, Set<Selector>> selectorsMap) { 261 Map<SourceString, Set<Selector>> selectorsMap) {
266 if (name != selector.name) { 262 if (name != selector.name) {
267 String message = "$name != ${selector.name} (${selector.kind})"; 263 String message = "$name != ${selector.name} (${selector.kind})";
268 compiler.internalError("Wrong selector name: $message."); 264 compiler.internalError("Wrong selector name: $message.");
269 } 265 }
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 396
401 String toString() => 'Enqueuer($name)'; 397 String toString() => 'Enqueuer($name)';
402 398
403 void logSummary(log(message)) { 399 void logSummary(log(message)) {
404 log(isResolutionQueue 400 log(isResolutionQueue
405 ? 'Resolved ${resolvedElements.length} elements.' 401 ? 'Resolved ${resolvedElements.length} elements.'
406 : 'Compiled ${universe.generatedCode.length} methods.'); 402 : 'Compiled ${universe.generatedCode.length} methods.');
407 nativeEnqueuer.logSummary(log); 403 nativeEnqueuer.logSummary(log);
408 } 404 }
409 } 405 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698