Index: sdk/lib/_internal/compiler/implementation/compiler.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/compiler.dart b/sdk/lib/_internal/compiler/implementation/compiler.dart |
index 4270b83fd81f09f391d8b53eae757376e32d1f70..d61e0e6e18e4ee2b001cf0b5350cc96bf4c1b88f 100644 |
--- a/sdk/lib/_internal/compiler/implementation/compiler.dart |
+++ b/sdk/lib/_internal/compiler/implementation/compiler.dart |
@@ -85,6 +85,15 @@ class CodegenWorkItem extends WorkItem { |
} |
} |
+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.
|
+ |
+class PostProcessing { |
ahe
2013/04/02 08:22:39
I'd call this PostProcessTask.
Johnni Winther
2013/04/02 09:40:14
Done.
|
+ final Element element; |
+ final PostProcess process; |
+ |
+ PostProcessing(this.element, this.process); |
+} |
+ |
class ReadingFilesTask extends CompilerTask { |
ReadingFilesTask(Compiler compiler) : super(compiler); |
String get name => 'Reading input files'; |
@@ -835,6 +844,9 @@ abstract class Compiler implements DiagnosticListener { |
withCurrentElement(work.element, () => work.run(this, world)); |
}); |
world.queueIsClosed = true; |
+ world.forEachPostProcessing((PostProcessing work) { |
+ withCurrentElement(work.element, () => work.process()); |
+ }); |
if (compilationFailed) return; |
assert(world.checkNoEnqueuedInvokedInstanceMethods()); |
if (DUMP_INFERRED_TYPES && phase == PHASE_COMPILING) { |