Chromium Code Reviews| Index: pkg/fletchc/lib/incremental/library_updater.dart | 
| diff --git a/pkg/fletchc/lib/incremental/library_updater.dart b/pkg/fletchc/lib/incremental/library_updater.dart | 
| index 09487fcc2056e0449f6d899c43c790508bcfb368..ff2e37f3e25dd500832596cbba5796a1d5d39f5e 100644 | 
| --- a/pkg/fletchc/lib/incremental/library_updater.dart | 
| +++ b/pkg/fletchc/lib/incremental/library_updater.dart | 
| @@ -13,10 +13,16 @@ import 'package:compiler/compiler_new.dart' show | 
| import 'package:compiler/compiler.dart' as api; | 
| -import 'package:compiler/src/dart2jslib.dart' show | 
| - Compiler, | 
| - EnqueueTask, | 
| - MessageKind, | 
| +import 'package:compiler/src/compiler.dart' show | 
| + Compiler; | 
| + | 
| +import 'package:compiler/src/enqueue.dart' show | 
| + EnqueueTask; | 
| + | 
| +import 'package:compiler/src/diagnostics/messages.dart' show | 
| + MessageKind; | 
| + | 
| +import 'package:compiler/src/script.dart' show | 
| Script; | 
| import 'package:compiler/src/elements/elements.dart' show | 
| @@ -31,17 +37,29 @@ import 'package:compiler/src/elements/elements.dart' show | 
| ScopeContainerElement, | 
| TypeDeclarationElement; | 
| -import 'package:compiler/src/scanner/scannerlib.dart' show | 
| - EOF_TOKEN, | 
| - Listener, | 
| - NodeListener, | 
| - Parser, | 
| +import 'package:compiler/src/tokens/token_constants.dart' show | 
| + EOF_TOKEN; | 
| + | 
| +import 'package:compiler/src/tokens/token.dart' show | 
| + Token; | 
| + | 
| +import 'package:compiler/src/parser/partial_elements.dart' show | 
| PartialClassElement, | 
| PartialElement, | 
| PartialFieldList, | 
| - PartialFunctionElement, | 
| - Scanner, | 
| - Token; | 
| + PartialFunctionElement; | 
| + | 
| +import 'package:compiler/src/scanner/scanner.dart' show | 
| + Scanner; | 
| + | 
| +import 'package:compiler/src/parser/parser.dart' show | 
| + Parser; | 
| + | 
| +import 'package:compiler/src/parser/listener.dart' show | 
| + Listener; | 
| + | 
| +import 'package:compiler/src/parser/node_listener.dart' show | 
| + NodeListener; | 
| import 'package:compiler/src/io/source_file.dart' show | 
| CachingUtf8BytesSourceFile, | 
| @@ -92,10 +110,6 @@ import 'package:compiler/src/elements/modelx.dart' show | 
| FieldElementX, | 
| LibraryElementX; | 
| -import 'package:compiler/src/universe/universe.dart' show | 
| - Selector, | 
| - UniverseSelector; | 
| - | 
| import 'package:compiler/src/constants/values.dart' show | 
| ConstantValue; | 
| @@ -317,7 +331,7 @@ class LibraryUpdater extends FletchFeatures { | 
| }); | 
| } | 
| - Future<bool> _haveTagsChanged(LibraryElement library) { | 
| + Future<bool> _haveTagsChanged(LibraryElementX library) { | 
| Script before = library.entryCompilationUnit.script; | 
| if (!_context._uriHasUpdate(before.resourceUri)) { | 
| // The entry compilation unit hasn't been updated. So the tags aren't | 
| @@ -331,8 +345,11 @@ class LibraryUpdater extends FletchFeatures { | 
| _entryUnitTokens[library] = token; | 
| // Using two parsers to only create the nodes we want ([LibraryTag]). | 
| Parser parser = new Parser(new Listener()); | 
| + Element entryCompilationUnit = library.entryCompilationUnit; | 
| NodeListener listener = new NodeListener( | 
| - compiler, library.entryCompilationUnit); | 
| + compiler.resolution.parsing | 
| + .getScannerOptionsFor(entryCompilationUnit), | 
| + compiler.reporter, entryCompilationUnit); | 
| Parser nodeParser = new Parser(listener); | 
| Iterator<LibraryTag> tags = library.tags.iterator; | 
| while (token.kind != EOF_TOKEN) { | 
| @@ -391,18 +408,18 @@ class LibraryUpdater extends FletchFeatures { | 
| TagState tagState = new TagState(); | 
| for (LibraryTag tag in newLibrary.tags) { | 
| if (tag.isImport) { | 
| - tagState.checkTag(TagState.IMPORT_OR_EXPORT, tag, compiler); | 
| + tagState.checkTag(TagState.IMPORT_OR_EXPORT, tag, compiler.reporter); | 
| } else if (tag.isExport) { | 
| - tagState.checkTag(TagState.IMPORT_OR_EXPORT, tag, compiler); | 
| + tagState.checkTag(TagState.IMPORT_OR_EXPORT, tag, compiler.reporter); | 
| } else if (tag.isLibraryName) { | 
| - tagState.checkTag(TagState.LIBRARY, tag, compiler); | 
| + tagState.checkTag(TagState.LIBRARY, tag, compiler.reporter); | 
| if (newLibrary.libraryTag == null) { | 
| // Use the first if there are multiple (which is reported as an | 
| // error in [TagState.checkTag]). | 
| newLibrary.libraryTag = tag; | 
| } | 
| } else if (tag.isPart) { | 
| - tagState.checkTag(TagState.PART, tag, compiler); | 
| + tagState.checkTag(TagState.PART, tag, compiler.reporter); | 
| } | 
| } | 
| @@ -416,10 +433,11 @@ class LibraryUpdater extends FletchFeatures { | 
| // TODO(ahe): Copied from library_loader. | 
| CompilationUnitElement newUnit = | 
| new CompilationUnitElementX(script, newLibrary); | 
| - compiler.withCurrentElement(newUnit, () { | 
| + compiler.reporter.withCurrentElement(newUnit, () { | 
| compiler.scanner.scan(newUnit); | 
| if (unit.partTag == null) { | 
| - compiler.reportError(unit, MessageKind.MISSING_PART_OF_TAG); | 
| + compiler.reporter | 
| + .reportErrorMessage(unit, MessageKind.MISSING_PART_OF_TAG); | 
| } | 
| }); | 
| } | 
| @@ -639,7 +657,7 @@ class LibraryUpdater extends FletchFeatures { | 
| if (element is TypeDeclarationElement) { | 
| if (!element.isResolved) { | 
| if (element is PartialClassElement) { | 
| - ClassNode node = element.parseNode(compiler).asClassNode(); | 
| + ClassNode node = element.parseNode(compiler.parsing).asClassNode(); | 
| if (node == null) { | 
| cannotReuse( | 
| element, "Class body isn't a ClassNode on $element"); | 
| @@ -767,7 +785,7 @@ class LibraryUpdater extends FletchFeatures { | 
| PartialFunctionElement before, | 
| PartialFunctionElement after) { | 
| FunctionExpression node = | 
| - after.parseNode(compiler).asFunctionExpression(); | 
| + after.parseNode(compiler.parsing).asFunctionExpression(); | 
| if (node == null) { | 
| return cannotReuse(after, "Not a function expression: '$node'"); | 
| } | 
| @@ -775,7 +793,7 @@ class LibraryUpdater extends FletchFeatures { | 
| if (node.body != null) { | 
| last = node.body.getBeginToken(); | 
| } | 
| - if (before.isErroneous || | 
| + if (before.isMalformed || | 
| 
 
ahe
2015/11/17 16:44:08
What does isMalformed mean?
 
sigurdm
2015/11/19 14:33:46
It's basically a rename of what was before isErron
 
 | 
| compiler.elementsWithCompileTimeErrors.contains(before) || | 
| isTokenBetween(diffToken, after.beginToken, last)) { | 
| removeFunction(before); | 
| @@ -805,7 +823,7 @@ class LibraryUpdater extends FletchFeatures { | 
| Token diffToken, | 
| PartialClassElement before, | 
| PartialClassElement after) { | 
| - ClassNode node = after.parseNode(compiler).asClassNode(); | 
| + ClassNode node = after.parseNode(compiler.parsing).asClassNode(); | 
| if (node == null) { | 
| return cannotReuse(after, "Not a ClassNode: '$node'"); | 
| } | 
| @@ -922,12 +940,12 @@ class LibraryUpdater extends FletchFeatures { | 
| enqueuer.resolution.addToWorkList(element); | 
| } else { | 
| ClassElement cls = element; | 
| - cls.ensureResolved(compiler); | 
| + cls.ensureResolved(compiler.resolution); | 
| // We've told the enqueuer to forget this class, now tell it that it's | 
| // in use again. TODO(ahe): We only need to do this if [cls] was | 
| // already instantiated. | 
| - enqueuer.codegen.registerInstantiatedType(cls.rawType, null); | 
| + enqueuer.codegen.registerInstantiatedType(cls.rawType); | 
| } | 
| } | 
| compiler.processQueue(enqueuer.resolution, null); | 
| @@ -1196,7 +1214,7 @@ class AddedFunctionUpdate extends Update with FletchFeatures { | 
| enclosing = enclosing.compilationUnit; | 
| } | 
| PartialFunctionElement copy = element.copyWithEnclosing(enclosing); | 
| - container.addMember(copy, compiler); | 
| + container.addMember(copy, compiler.reporter); | 
| return copy; | 
| } | 
| } | 
| @@ -1217,7 +1235,7 @@ class AddedClassUpdate extends Update with FletchFeatures { | 
| // TODO(ahe): Reuse compilation unit of element instead? | 
| CompilationUnitElementX compilationUnit = library.compilationUnit; | 
| PartialClassElement copy = element.copyWithEnclosing(compilationUnit); | 
| - compilationUnit.addMember(copy, compiler); | 
| + compilationUnit.addMember(copy, compiler.reporter); | 
| return copy; | 
| } | 
| } | 
| @@ -1241,7 +1259,7 @@ class AddedFieldUpdate extends Update with FletchFeatures { | 
| enclosing = enclosing.compilationUnit; | 
| } | 
| FieldElementX copy = element.copyWithEnclosing(enclosing); | 
| - container.addMember(copy, compiler); | 
| + container.addMember(copy, compiler.reporter); | 
| return copy; | 
| } | 
| } | 
| @@ -1271,7 +1289,6 @@ class ClassUpdate extends Update with FletchFeatures { | 
| void reuseElement() { | 
| before.supertype = null; | 
| before.interfaces = null; | 
| - before.nativeTagInfo = null; | 
| before.supertypeLoadState = STATE_NOT_STARTED; | 
| before.resolutionState = STATE_NOT_STARTED; | 
| before.isProxy = false; |