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

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

Issue 13261008: Check for cyclic reference in typedefs (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased Created 7 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 | 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 /** 7 /**
8 * If true, print a warning for each method that was resolved, but not 8 * If true, print a warning for each method that was resolved, but not
9 * compiled. 9 * compiled.
10 */ 10 */
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 assert(invariant(element, resolutionTree != null, 78 assert(invariant(element, resolutionTree != null,
79 message: 'Resolution tree is null for $element in codegen work item')); 79 message: 'Resolution tree is null for $element in codegen work item'));
80 } 80 }
81 81
82 void run(Compiler compiler, CodegenEnqueuer world) { 82 void run(Compiler compiler, CodegenEnqueuer world) {
83 if (world.isProcessed(element)) return; 83 if (world.isProcessed(element)) return;
84 compiler.codegen(this, world); 84 compiler.codegen(this, world);
85 } 85 }
86 } 86 }
87 87
88 typedef void PostProcess();
ahe 2013/04/02 08:22:39 I'd call this PostProcessAction or VoidFunction.
Johnni Winther 2013/04/02 09:40:14 PostProcessAction it is.
89
90 class PostProcessing {
ahe 2013/04/02 08:22:39 I'd call this PostProcessTask.
Johnni Winther 2013/04/02 09:40:14 Done.
91 final Element element;
92 final PostProcess process;
93
94 PostProcessing(this.element, this.process);
95 }
96
88 class ReadingFilesTask extends CompilerTask { 97 class ReadingFilesTask extends CompilerTask {
89 ReadingFilesTask(Compiler compiler) : super(compiler); 98 ReadingFilesTask(Compiler compiler) : super(compiler);
90 String get name => 'Reading input files'; 99 String get name => 'Reading input files';
91 } 100 }
92 101
93 abstract class Backend { 102 abstract class Backend {
94 final Compiler compiler; 103 final Compiler compiler;
95 final ConstantSystem constantSystem; 104 final ConstantSystem constantSystem;
96 105
97 Backend(this.compiler, 106 Backend(this.compiler,
(...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 void processQueue(Enqueuer world, Element main) { 837 void processQueue(Enqueuer world, Element main) {
829 world.nativeEnqueuer.processNativeClasses(libraries.values); 838 world.nativeEnqueuer.processNativeClasses(libraries.values);
830 if (main != null) { 839 if (main != null) {
831 world.addToWorkList(main); 840 world.addToWorkList(main);
832 } 841 }
833 progress.reset(); 842 progress.reset();
834 world.forEach((WorkItem work) { 843 world.forEach((WorkItem work) {
835 withCurrentElement(work.element, () => work.run(this, world)); 844 withCurrentElement(work.element, () => work.run(this, world));
836 }); 845 });
837 world.queueIsClosed = true; 846 world.queueIsClosed = true;
847 world.forEachPostProcessing((PostProcessing work) {
848 withCurrentElement(work.element, () => work.process());
849 });
838 if (compilationFailed) return; 850 if (compilationFailed) return;
839 assert(world.checkNoEnqueuedInvokedInstanceMethods()); 851 assert(world.checkNoEnqueuedInvokedInstanceMethods());
840 if (DUMP_INFERRED_TYPES && phase == PHASE_COMPILING) { 852 if (DUMP_INFERRED_TYPES && phase == PHASE_COMPILING) {
841 backend.dumpInferredTypes(); 853 backend.dumpInferredTypes();
842 } 854 }
843 } 855 }
844 856
845 /** 857 /**
846 * Perform various checks of the queues. This includes checking that 858 * Perform various checks of the queues. This includes checking that
847 * the queues are empty (nothing was added after we stopped 859 * the queues are empty (nothing was added after we stopped
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 1275
1264 void close() {} 1276 void close() {}
1265 1277
1266 toString() => name; 1278 toString() => name;
1267 1279
1268 /// Convenience method for getting an [api.CompilerOutputProvider]. 1280 /// Convenience method for getting an [api.CompilerOutputProvider].
1269 static NullSink outputProvider(String name, String extension) { 1281 static NullSink outputProvider(String name, String extension) {
1270 return new NullSink('$name.$extension'); 1282 return new NullSink('$name.$extension');
1271 } 1283 }
1272 } 1284 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698