Chromium Code Reviews| Index: pkg/compiler/lib/src/compiler.dart |
| diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart |
| index 7e4264936ff25fe7b85dd427f3394f5060a51a54..3bf0d2ba697b328b73d89edd17c95cfd1d70f0f5 100644 |
| --- a/pkg/compiler/lib/src/compiler.dart |
| +++ b/pkg/compiler/lib/src/compiler.dart |
| @@ -26,8 +26,6 @@ abstract class WorkItem { |
| */ |
| final AstElement element; |
| - TreeElements get resolutionTree; |
| - |
| WorkItem(this.element, this.compilationContext) { |
| assert(invariant(element, element.isDeclaration)); |
| } |
| @@ -37,7 +35,7 @@ abstract class WorkItem { |
| /// [WorkItem] used exclusively by the [ResolutionEnqueuer]. |
| class ResolutionWorkItem extends WorkItem { |
| - TreeElements resolutionTree; |
| + bool _isAnalyzed = false; |
| ResolutionWorkItem(AstElement element, |
| ItemCompilationContext compilationContext) |
| @@ -45,11 +43,11 @@ class ResolutionWorkItem extends WorkItem { |
| WorldImpact run(Compiler compiler, ResolutionEnqueuer world) { |
| WorldImpact impact = compiler.analyze(this, world); |
| - resolutionTree = element.resolvedAst.elements; |
| + _isAnalyzed = true; |
| return impact; |
| } |
| - bool isAnalyzed() => resolutionTree != null; |
| + bool get isAnalyzed => _isAnalyzed; |
| } |
| // TODO(johnniwinther): Split this class into interface and implementation. |
| @@ -944,6 +942,7 @@ abstract class Compiler implements DiagnosticListener { |
| ParserTask parser; |
| PatchParserTask patchParser; |
| LibraryLoaderTask libraryLoader; |
| + SerializationTask serialization; |
| ResolverTask resolver; |
| closureMapping.ClosureTask closureToClassMapper; |
| TypeCheckerTask checker; |
| @@ -1115,6 +1114,7 @@ abstract class Compiler implements DiagnosticListener { |
| tasks = [ |
| libraryLoader = new LibraryLoaderTask(this), |
| + serialization = new SerializationTask(this), |
| scanner = new ScannerTask(this), |
| dietParser = new DietParserTask(this), |
| parser = new ParserTask(this), |
| @@ -1742,6 +1742,7 @@ abstract class Compiler implements DiagnosticListener { |
| }); |
| }); |
| world.queueIsClosed = true; |
| + //print('------------ $world is closed --------------'); |
|
floitsch
2015/06/26 20:54:03
remove.
Johnni Winther
2015/07/03 12:13:44
Done.
|
| assert(compilationFailed || world.checkNoEnqueuedInvokedInstanceMethods()); |
| } |
| @@ -1815,7 +1816,7 @@ abstract class Compiler implements DiagnosticListener { |
| WorldImpact analyze(ResolutionWorkItem work, ResolutionEnqueuer world) { |
| assert(invariant(work.element, identical(world, enqueuer.resolution))); |
| - assert(invariant(work.element, !work.isAnalyzed(), |
| + assert(invariant(work.element, !work.isAnalyzed, |
| message: 'Element ${work.element} has already been analyzed')); |
| if (shouldPrintProgress) { |
| // TODO(ahe): Add structured diagnostics to the compiler API and |
| @@ -2239,6 +2240,20 @@ class SourceSpan implements Spannable { |
| return f(beginOffset, endOffset); |
| } |
| + int get hashCode { |
| + return 13 * uri.hashCode + |
| + 17 * begin.hashCode + |
| + 19 * end.hashCode; |
| + } |
| + |
| + bool operator ==(other) { |
| + if (identical(this, other)) return true; |
| + if (other is! SourceSpan) return false; |
| + return uri == other.uri && |
| + begin == other.begin && |
| + end == other.end; |
| + } |
| + |
| String toString() => 'SourceSpan($uri, $begin, $end)'; |
| } |
| @@ -2413,22 +2428,22 @@ class AnyLocation implements CodeLocation { |
| class _CompilerCoreTypes implements CoreTypes { |
| final Compiler compiler; |
| - ClassElementX objectClass; |
| - ClassElementX boolClass; |
| - ClassElementX numClass; |
| - ClassElementX intClass; |
| - ClassElementX doubleClass; |
| - ClassElementX stringClass; |
| - ClassElementX functionClass; |
| - ClassElementX nullClass; |
| - ClassElementX listClass; |
| - ClassElementX typeClass; |
| - ClassElementX mapClass; |
| - ClassElementX symbolClass; |
| - ClassElementX stackTraceClass; |
| - ClassElementX futureClass; |
| - ClassElementX iterableClass; |
| - ClassElementX streamClass; |
| + ClassElement objectClass; |
| + ClassElement boolClass; |
| + ClassElement numClass; |
| + ClassElement intClass; |
| + ClassElement doubleClass; |
| + ClassElement stringClass; |
| + ClassElement functionClass; |
| + ClassElement nullClass; |
| + ClassElement listClass; |
| + ClassElement typeClass; |
| + ClassElement mapClass; |
| + ClassElement symbolClass; |
| + ClassElement stackTraceClass; |
| + ClassElement futureClass; |
| + ClassElement iterableClass; |
| + ClassElement streamClass; |
| _CompilerCoreTypes(this.compiler); |