| Index: pkg/compiler/lib/src/dart_backend/backend.dart
 | 
| diff --git a/pkg/compiler/lib/src/dart_backend/backend.dart b/pkg/compiler/lib/src/dart_backend/backend.dart
 | 
| index bb925f94d8ca8060e978cccfa7945fef4eecda21..8d9d0cce24ce852446f1c395b5b21f3c2b097436 100644
 | 
| --- a/pkg/compiler/lib/src/dart_backend/backend.dart
 | 
| +++ b/pkg/compiler/lib/src/dart_backend/backend.dart
 | 
| @@ -52,11 +52,10 @@ class DartBackend extends Backend {
 | 
|        new Set<ClassElement>();
 | 
|  
 | 
|    bool enableCodegenWithErrorsIfSupported(Spannable node) {
 | 
| -    reporter.reportHintMessage(
 | 
| -        node,
 | 
| -        MessageKind.GENERIC,
 | 
| -        {'text': "Generation of code with compile time errors is not "
 | 
| -                 "supported for dart2dart."});
 | 
| +    reporter.reportHintMessage(node, MessageKind.GENERIC, {
 | 
| +      'text': "Generation of code with compile time errors is not "
 | 
| +          "supported for dart2dart."
 | 
| +    });
 | 
|      return false;
 | 
|    }
 | 
|  
 | 
| @@ -73,14 +72,14 @@ class DartBackend extends Backend {
 | 
|        Map<ClassElement, Iterable<Element>> classMembers) {
 | 
|      ClassElement typeErrorElement = compiler.coreLibrary.find('TypeError');
 | 
|      if (classMembers.containsKey(typeErrorElement) ||
 | 
| -        compiler.resolverWorld.isChecks.any(
 | 
| -            (DartType type) => type.element == typeErrorElement)) {
 | 
| +        compiler.resolverWorld.isChecks
 | 
| +            .any((DartType type) => type.element == typeErrorElement)) {
 | 
|        return false;
 | 
|      }
 | 
|      Set<DartType> processedTypes = new Set<DartType>();
 | 
|      List<DartType> workQueue = new List<DartType>();
 | 
| -    workQueue.addAll(
 | 
| -        classMembers.keys.map((classElement) => classElement.thisType));
 | 
| +    workQueue
 | 
| +        .addAll(classMembers.keys.map((classElement) => classElement.thisType));
 | 
|      workQueue.addAll(compiler.resolverWorld.isChecks);
 | 
|  
 | 
|      while (!workQueue.isEmpty) {
 | 
| @@ -116,7 +115,6 @@ class DartBackend extends Backend {
 | 
|      impactTransformer = new DartImpactTransformer(this);
 | 
|    }
 | 
|  
 | 
| -
 | 
|    DiagnosticReporter get reporter => compiler.reporter;
 | 
|  
 | 
|    Resolution get resolution => compiler.resolution;
 | 
| @@ -128,7 +126,12 @@ class DartBackend extends Backend {
 | 
|      // Right now resolver doesn't always resolve interfaces needed
 | 
|      // for literals, so force them. TODO(antonm): fix in the resolver.
 | 
|      final LITERAL_TYPE_NAMES = const [
 | 
| -      'Map', 'List', 'num', 'int', 'double', 'bool'
 | 
| +      'Map',
 | 
| +      'List',
 | 
| +      'num',
 | 
| +      'int',
 | 
| +      'double',
 | 
| +      'bool'
 | 
|      ];
 | 
|      final coreLibrary = compiler.coreLibrary;
 | 
|      for (final name in LITERAL_TYPE_NAMES) {
 | 
| @@ -138,12 +141,10 @@ class DartBackend extends Backend {
 | 
|      // Enqueue the methods that the VM might invoke on user objects because
 | 
|      // we don't trust the resolution to always get these included.
 | 
|      world.registerDynamicUse(new DynamicUse(Selectors.toString_, null));
 | 
| -    world.registerDynamicUse(
 | 
| -        new DynamicUse(Selectors.hashCode_, null));
 | 
| +    world.registerDynamicUse(new DynamicUse(Selectors.hashCode_, null));
 | 
|      world.registerDynamicUse(
 | 
|          new DynamicUse(new Selector.binaryOperator('=='), null));
 | 
| -    world.registerDynamicUse(
 | 
| -        new DynamicUse(Selectors.compareTo, null));
 | 
| +    world.registerDynamicUse(new DynamicUse(Selectors.compareTo, null));
 | 
|    }
 | 
|  
 | 
|    WorldImpact codegen(CodegenWorkItem work) {
 | 
| @@ -158,27 +159,25 @@ class DartBackend extends Backend {
 | 
|    bool shouldOutput(Element element) {
 | 
|      return (!element.library.isPlatformLibrary &&
 | 
|              !element.isSynthesized &&
 | 
| -            element is! AbstractFieldElement)
 | 
| -        || mirrorRenamer.isMirrorHelperLibrary(element.library);
 | 
| +            element is! AbstractFieldElement) ||
 | 
| +        mirrorRenamer.isMirrorHelperLibrary(element.library);
 | 
|    }
 | 
|  
 | 
|    int assembleProgram() {
 | 
|      ElementAst computeElementAst(AstElement element) {
 | 
| -      return new ElementAst(element.resolvedAst.node,
 | 
| -                            element.resolvedAst.elements);
 | 
| +      return new ElementAst(
 | 
| +          element.resolvedAst.node, element.resolvedAst.elements);
 | 
|      }
 | 
|  
 | 
|      // TODO(johnniwinther): Remove the need for this method.
 | 
| -    void postProcessElementAst(
 | 
| -        AstElement element, ElementAst elementAst,
 | 
| -        newTypedefElementCallback,
 | 
| -        newClassElementCallback) {
 | 
| -      ReferencedElementCollector collector =
 | 
| -          new ReferencedElementCollector(reporter,
 | 
| -                                         element,
 | 
| -                                         elementAst,
 | 
| -                                         newTypedefElementCallback,
 | 
| -                                         newClassElementCallback);
 | 
| +    void postProcessElementAst(AstElement element, ElementAst elementAst,
 | 
| +        newTypedefElementCallback, newClassElementCallback) {
 | 
| +      ReferencedElementCollector collector = new ReferencedElementCollector(
 | 
| +          reporter,
 | 
| +          element,
 | 
| +          elementAst,
 | 
| +          newTypedefElementCallback,
 | 
| +          newClassElementCallback);
 | 
|        collector.collect();
 | 
|      }
 | 
|  
 | 
| @@ -198,17 +197,14 @@ class DartBackend extends Backend {
 | 
|  
 | 
|      // Output verbose info about size ratio of resulting bundle to all
 | 
|      // referenced non-platform sources.
 | 
| -    logResultBundleSizeInfo(
 | 
| -        outputter.libraryInfo.userLibraries,
 | 
| -        outputter.elementInfo.topLevelElements,
 | 
| -        totalSize);
 | 
| +    logResultBundleSizeInfo(outputter.libraryInfo.userLibraries,
 | 
| +        outputter.elementInfo.topLevelElements, totalSize);
 | 
|  
 | 
|      return totalSize;
 | 
|    }
 | 
|  
 | 
|    void logResultBundleSizeInfo(Iterable<LibraryElement> userLibraries,
 | 
| -                               Iterable<Element> topLevelElements,
 | 
| -                               int totalOutputSize) {
 | 
| +      Iterable<Element> topLevelElements, int totalOutputSize) {
 | 
|      // Sum total size of scripts in each referenced library.
 | 
|      int nonPlatformSize = 0;
 | 
|      for (LibraryElement lib in userLibraries) {
 | 
| @@ -239,11 +235,12 @@ class DartBackend extends Backend {
 | 
|      });
 | 
|      if (useMirrorHelperLibrary &&
 | 
|          loadedLibraries.containsLibrary(Uris.dart_mirrors)) {
 | 
| -      return compiler.libraryLoader.loadLibrary(
 | 
| -          compiler.translateResolvedUri(
 | 
| +      return compiler.libraryLoader
 | 
| +          .loadLibrary(compiler.translateResolvedUri(
 | 
|                loadedLibraries.getLibrary(Uris.dart_mirrors),
 | 
| -              MirrorRenamerImpl.DART_MIRROR_HELPER, null)).
 | 
| -          then((LibraryElement library) {
 | 
| +              MirrorRenamerImpl.DART_MIRROR_HELPER,
 | 
| +              null))
 | 
| +          .then((LibraryElement library) {
 | 
|          mirrorRenamer = new MirrorRenamerImpl(compiler, this, library);
 | 
|        });
 | 
|      }
 | 
| @@ -261,21 +258,18 @@ class DartBackend extends Backend {
 | 
|    }
 | 
|  
 | 
|    @override
 | 
| -  void registerInstantiatedType(InterfaceType type,
 | 
| -                                Enqueuer enqueuer,
 | 
| -                                Registry registry,
 | 
| -                                {bool mirrorUsage: false}) {
 | 
| +  void registerInstantiatedType(
 | 
| +      InterfaceType type, Enqueuer enqueuer, Registry registry,
 | 
| +      {bool mirrorUsage: false}) {
 | 
|      registerPlatformMembers(type, registerUse: registry.registerDynamicUse);
 | 
| -    super.registerInstantiatedType(
 | 
| -        type, enqueuer, registry, mirrorUsage: mirrorUsage);
 | 
| +    super.registerInstantiatedType(type, enqueuer, registry,
 | 
| +        mirrorUsage: mirrorUsage);
 | 
|    }
 | 
|  
 | 
|    /// Register dynamic access of members of [type] that implement members
 | 
|    /// of types defined in the platform libraries.
 | 
| -  void registerPlatformMembers(
 | 
| -      InterfaceType type,
 | 
| +  void registerPlatformMembers(InterfaceType type,
 | 
|        {void registerUse(DynamicUse dynamicUse)}) {
 | 
| -
 | 
|      // Without patching, dart2dart has no way of performing sound tree-shaking
 | 
|      // in face external functions. Therefore we employ another scheme:
 | 
|      //
 | 
| @@ -310,8 +304,8 @@ class DartBackend extends Backend {
 | 
|      ClassElement cls = type.element;
 | 
|      if (!cls.library.isPlatformLibrary) {
 | 
|        for (Link<DartType> link = cls.allSupertypes;
 | 
| -           !link.isEmpty;
 | 
| -           link = link.tail) {
 | 
| +          !link.isEmpty;
 | 
| +          link = link.tail) {
 | 
|          InterfaceType supertype = link.head;
 | 
|          ClassElement superclass = supertype.element;
 | 
|          LibraryElement library = superclass.library;
 | 
| @@ -326,8 +320,7 @@ class DartBackend extends Backend {
 | 
|                FunctionElement function = element.asFunctionElement();
 | 
|                element.computeType(resolution);
 | 
|                Selector selector = new Selector.fromElement(element);
 | 
| -              registerUse(
 | 
| -                  new DynamicUse(selector, null));
 | 
| +              registerUse(new DynamicUse(selector, null));
 | 
|              });
 | 
|            }
 | 
|          }
 | 
| @@ -402,7 +395,6 @@ class EmitterUnparser extends Unparser {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -
 | 
|  /**
 | 
|   * Some elements are not recorded by resolver now,
 | 
|   * for example, typedefs or classes which are only
 | 
| @@ -416,11 +408,8 @@ class ReferencedElementCollector extends Visitor {
 | 
|    final newTypedefElementCallback;
 | 
|    final newClassElementCallback;
 | 
|  
 | 
| -  ReferencedElementCollector(this.reporter,
 | 
| -                             this.element,
 | 
| -                             this.elementAst,
 | 
| -                             this.newTypedefElementCallback,
 | 
| -                             this.newClassElementCallback);
 | 
| +  ReferencedElementCollector(this.reporter, this.element, this.elementAst,
 | 
| +      this.newTypedefElementCallback, this.newClassElementCallback);
 | 
|  
 | 
|    visitNode(Node node) {
 | 
|      node.visitChildren(this);
 | 
| @@ -466,8 +455,8 @@ class DartConstantTask extends ConstantCompilerTask
 | 
|    final DartConstantCompiler constantCompiler;
 | 
|  
 | 
|    DartConstantTask(Compiler compiler)
 | 
| -    : this.constantCompiler = new DartConstantCompiler(compiler),
 | 
| -      super(compiler);
 | 
| +      : this.constantCompiler = new DartConstantCompiler(compiler),
 | 
| +        super(compiler);
 | 
|  
 | 
|    String get name => 'ConstantHandler';
 | 
|  
 | 
| @@ -526,9 +515,7 @@ class DartConstantTask extends ConstantCompilerTask
 | 
|    }
 | 
|  
 | 
|    @override
 | 
| -  ConstantExpression compileNode(
 | 
| -      Node node,
 | 
| -      TreeElements elements,
 | 
| +  ConstantExpression compileNode(Node node, TreeElements elements,
 | 
|        {bool enforceConst: true}) {
 | 
|      return measure(() {
 | 
|        return constantCompiler.compileNodeWithDefinitions(node, elements,
 | 
| @@ -538,9 +525,7 @@ class DartConstantTask extends ConstantCompilerTask
 | 
|  
 | 
|    @override
 | 
|    ConstantExpression compileMetadata(
 | 
| -      MetadataAnnotation metadata,
 | 
| -      Node node,
 | 
| -      TreeElements elements) {
 | 
| +      MetadataAnnotation metadata, Node node, TreeElements elements) {
 | 
|      return measure(() {
 | 
|        return constantCompiler.compileMetadata(metadata, node, elements);
 | 
|      });
 | 
| @@ -550,7 +535,7 @@ class DartConstantTask extends ConstantCompilerTask
 | 
|    // expressions.
 | 
|    @override
 | 
|    void copyConstantValues(DartConstantTask task) {
 | 
| -    constantCompiler.constantValueMap.addAll(
 | 
| -        task.constantCompiler.constantValueMap);
 | 
| +    constantCompiler.constantValueMap
 | 
| +        .addAll(task.constantCompiler.constantValueMap);
 | 
|    }
 | 
|  }
 | 
| 
 |