diff --git a/.gitattributes b/.gitattributes
index 0f5ea98..30c6123 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -29,9 +29,9 @@
 tests/lib/mirrors/method_mirror_source_line_ending_lf.dart -text
 tests/lib/mirrors/method_mirror_source_test.dart -text
 tests/lib/mirrors/method_mirror_source_other.dart -text
-pkg/dev_compiler/test/codegen/language/multiline_newline_crlf.dart -text
-pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_cr.dart -text
-pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_crlf.dart -text
+tests/language_strong/multiline_newline_crlf.dart -text
+tests/lib_strong/mirrors/method_mirror_source_line_ending_cr.dart -text
+tests/lib_strong/mirrors/method_mirror_source_line_ending_crlf.dart -text
 
 # Files to leave alone and not diff.
 *.png binary
diff --git a/.travis.yml b/.travis.yml
index f458e35..f08c83f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -75,13 +75,11 @@
   - ANALYZER=master
   - ANALYZER=master DDC_BROWSERS=Firefox
   - ANALYZER=master DDC_BROWSERS=ChromeCanaryTravis
-  - ANALYZER=master CXX=g++
   - ANALYZER=master CXX=clang++
   - TEST=coverage
   - TEST=package
 matrix:
   allow_failures:
-    - env: ANALYZER=master CXX=g++
     - env: ANALYZER=master DDC_BROWSERS=ChromeCanaryTravis
 notifications:
   email:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f573d16..df7ef8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,26 @@
+## 1.22.0
+
+### Tool changes
+
+* Pub
+
+  * Avoid using a barback asset server for executables unless they actually use
+    transformers. This makes precompilation substantially faster, produces
+    better error messages when precompilation fails, and allows
+    globally-activated executables to consistently use the
+    `Isolate.resolvePackageUri()` API.
+
+  * On POSIX systems, always ignore packages' original file owners and
+    permissions when extracting those packages. This was already the default
+    under most circumstances.
+
+  * Properly close the standard input stream of child processes started using
+    `pub run`.
+
+  * Handle parse errors from the package cache more gracefully. A package whose
+    pubspec can't be parsed will now be ignored by `pub get --offline` and
+    deleted by `pub cache repair`.
+
 ## 1.21.0 - 2016-12-07
 
 ### Language
diff --git a/DEPS b/DEPS
index affb687..919c056 100644
--- a/DEPS
+++ b/DEPS
@@ -73,7 +73,7 @@
   "isolate_tag": "@0.2.3",
   "jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
   "json_rpc_2_tag": "@2.0.2",
-  "linter_rev": "@b2d95da1287e27d4dbb9bd199dd2d23d650bd274",
+  "linter_rev": "@3ec970f7acc8599ad8fb08b848485205d48052cf",
   "logging_tag": "@0.11.3+1",
   "markdown_tag": "@0.11.0",
   "matcher_tag": "@0.12.0+2",
@@ -90,7 +90,7 @@
   "ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",
   "pool_tag": "@1.2.4",
   "protobuf_tag": "@0.5.3",
-  "pub_rev": "@3dd04bd17ba269ccdd34502a253041dd96ded3be",
+  "pub_rev": "@9309be93140638fb19903648d07de59681a08989",
   "pub_semver_tag": "@1.3.0",
   "quiver_tag": "@0.22.0",
   "resource_rev":"@a49101ba2deb29c728acba6fb86000a8f730f4b1",
diff --git a/docs/language/dartLangSpec.tex b/docs/language/dartLangSpec.tex
index 8232a3b..44e846c 100644
--- a/docs/language/dartLangSpec.tex
+++ b/docs/language/dartLangSpec.tex
@@ -2616,10 +2616,7 @@
 The \code{Null} class declares no methods except those also declared by \code{Object}.
 
 \LMHash{}
-The static type of \NULL{} is $\bot$.
-
-\rationale{The decision to use $\bot$ instead of \code{Null} allows \NULL{} to be be assigned everywhere without complaint by the static checker.
-}
+The static type of \NULL{} is the \code{Null} type.
 
 
 \subsection{Numbers}
@@ -7369,11 +7366,6 @@
 \item If $J$ is a mixin application (\ref{mixinApplication}) of the mixin of $I$.
 \end{itemize}
 
-\commentary{
-
-
-}
-
 %\Q{Can wacky stuff happen with interface injection, e.g., a direct superinterface becomes indirect? What about side effects - loading order can affect type relationships.
 %}
 
@@ -7381,8 +7373,9 @@
 A type $T$ is more specific than a type $S$, written $T << S$,  if one of the following conditions is met:
 \begin{itemize}
 \item $T$ is $S$.
-\item T is $\bot$.
-\item S is \DYNAMIC{}.
+\item $T$ is $\bot$.
+\item $T$ is \NULL{} and $S$ is not $\bot$.
+\item $S$ is \DYNAMIC{}.
 \item $S$ is a direct supertype of $T$.
 \item $T$ is a type parameter and $S$ is the upper bound of $T$.
 \item $T$ is a type parameter and $S$ is \cd{Object}.
@@ -7409,7 +7402,7 @@
 \commentary{The supertypes of an interface are its direct supertypes and their supertypes. }
 
 \LMHash{}
-An interface type $T$ may be assigned to a type $S$, written  $T \Longleftrightarrow S$, iff either $T <: S$ or $S <: T$.
+An interface type $T$ may be assigned to a type $S$, written  $T \Longleftrightarrow S$, iff either $T <: S$, $S <: T$, or either $T$ or $S$ is the \code{Null} type.
 
 \rationale{This rule may surprise readers accustomed to conventional typechecking. The intent of the $\Longleftrightarrow$ relation is not to ensure that an assignment is correct. Instead, it aims to only flag assignments that are almost certain to be erroneous, without precluding assignments that may work.
 
diff --git a/pkg/analysis_server/BUILD.gn b/pkg/analysis_server/BUILD.gn
index 9e65d54..fae5d08 100644
--- a/pkg/analysis_server/BUILD.gn
+++ b/pkg/analysis_server/BUILD.gn
@@ -11,10 +11,10 @@
 
   deps = [
     "//dart/pkg/analyzer",
+    "//dart/third_party/pkg/linter",
     "//third_party/dart-pkg/pub/args",
     "//third_party/dart-pkg/pub/dart_style",
     "//third_party/dart-pkg/pub/isolate",
-    "//third_party/dart-pkg/pub/linter",
     "//third_party/dart-pkg/pub/logging",
     "//third_party/dart-pkg/pub/package_config",
     "//third_party/dart-pkg/pub/path",
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 8f22907..a241918 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -26,7 +26,9 @@
 import 'package:analysis_server/src/services/search/search_engine_internal.dart';
 import 'package:analysis_server/src/services/search/search_engine_internal2.dart';
 import 'package:analysis_server/src/single_context_manager.dart';
+import 'package:analysis_server/src/utilities/null_string_sink.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/file_system/file_system.dart';
@@ -370,7 +372,7 @@
 
     {
       String name = options.newAnalysisDriverLog;
-      StringSink sink = new _NullStringSink();
+      StringSink sink = new NullStringSink();
       if (name != null) {
         if (name == 'stdout') {
           sink = io.stdout;
@@ -1269,7 +1271,9 @@
                 sendAnalysisNotificationHighlights(this, file, dartUnit);
                 break;
               case AnalysisService.OUTLINE:
-                AnalysisContext context = dartUnit.element.context;
+                AnalysisContext context = resolutionMap
+                    .elementDeclaredByCompilationUnit(dartUnit)
+                    .context;
                 LineInfo lineInfo = context.getLineInfo(source);
                 SourceKind kind = context.getKindOf(source);
                 sendAnalysisNotificationOutline(
@@ -2110,10 +2114,3 @@
    */
   static PerformanceTag splitStore = new PerformanceTag('splitStore');
 }
-
-class _NullStringSink implements StringSink {
-  void write(Object obj) {}
-  void writeAll(Iterable objects, [String separator = ""]) {}
-  void writeCharCode(int charCode) {}
-  void writeln([Object obj = ""]) {}
-}
diff --git a/pkg/analysis_server/lib/src/computer/computer_highlights2.dart b/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
index 7d67c26..630b41f 100644
--- a/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_highlights2.dart
@@ -6,6 +6,7 @@
 
 import 'package:analysis_server/plugin/protocol/protocol.dart' hide Element;
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -428,7 +429,7 @@
     if (e is SimpleIdentifier && e.staticElement is PrefixElement) {
       return false;
     }
-    return e.bestType.isDynamic;
+    return resolutionMap.bestTypeForExpression(e).isDynamic;
   }
 }
 
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
index 4333b45..8bbadcc 100644
--- a/pkg/analysis_server/lib/src/context_manager.dart
+++ b/pkg/analysis_server/lib/src/context_manager.dart
@@ -10,10 +10,8 @@
 import 'dart:core';
 
 import 'package:analysis_server/src/analysis_server.dart';
-import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
-import 'package:analyzer/plugin/options.dart';
 import 'package:analyzer/plugin/resolver_provider.dart';
 import 'package:analyzer/source/analysis_options_provider.dart';
 import 'package:analyzer/source/package_map_provider.dart';
@@ -34,9 +32,6 @@
 import 'package:analyzer/src/util/absolute_path.dart';
 import 'package:analyzer/src/util/glob.dart';
 import 'package:analyzer/src/util/yaml.dart';
-import 'package:linter/src/config.dart';
-import 'package:linter/src/linter.dart';
-import 'package:linter/src/rules.dart';
 import 'package:package_config/packages.dart';
 import 'package:package_config/packages_file.dart' as pkgfile show parse;
 import 'package:package_config/src/packages_impl.dart' show MapPackages;
@@ -295,6 +290,13 @@
   AnalysisContext getContextFor(String path);
 
   /**
+   * Return a list of all of the analysis drivers reachable from the given
+   * [analysisRoot] (the driver associated with [analysisRoot] and all of its
+   * descendants).
+   */
+  List<AnalysisDriver> getDriversInAnalysisRoot(Folder analysisRoot);
+
+  /**
    * Return `true` if the given [path] is ignored by a [ContextInfo] whose
    * folder contains it.
    */
@@ -346,11 +348,6 @@
   AnalysisContext addContext(Folder folder, AnalysisOptions options);
 
   /**
-   * The given [file] was removed from the folder analyzed in the [driver].
-   */
-  void applyFileRemoved(AnalysisDriver driver, String file);
-
-  /**
    * Called when the set of files associated with a context have changed (or
    * some of those files have been modified).  [changeSet] is the set of
    * changes that need to be applied to the context.
@@ -358,6 +355,11 @@
   void applyChangesToContext(Folder contextFolder, ChangeSet changeSet);
 
   /**
+   * The given [file] was removed from the folder analyzed in the [driver].
+   */
+  void applyFileRemoved(AnalysisDriver driver, String file);
+
+  /**
    * Signals that the context manager has started to compute a package map (if
    * [computing] is `true`) or has finished (if [computing] is `false`).
    */
@@ -597,6 +599,30 @@
   }
 
   @override
+  List<AnalysisDriver> getDriversInAnalysisRoot(Folder analysisRoot) {
+    List<AnalysisDriver> drivers = <AnalysisDriver>[];
+    void addContextAndDescendants(ContextInfo info) {
+      drivers.add(info.analysisDriver);
+      info.children.forEach(addContextAndDescendants);
+    }
+
+    ContextInfo innermostContainingInfo =
+        _getInnermostContextInfoFor(analysisRoot.path);
+    if (innermostContainingInfo != null) {
+      if (analysisRoot == innermostContainingInfo.folder) {
+        addContextAndDescendants(innermostContainingInfo);
+      } else {
+        for (ContextInfo info in innermostContainingInfo.children) {
+          if (analysisRoot.isOrContains(info.folder.path)) {
+            addContextAndDescendants(info);
+          }
+        }
+      }
+    }
+    return drivers;
+  }
+
+  @override
   bool isIgnored(String path) {
     ContextInfo info = rootInfo;
     do {
@@ -635,37 +661,25 @@
       return;
     }
 
-    // In case options files are removed, revert to defaults.
+    AnalysisOptionsImpl analysisOptions;
     if (optionsRemoved) {
-      // Start with defaults.
-      info.context.analysisOptions = new AnalysisOptionsImpl();
-
+      // In case options files are removed, revert to defaults.
+      analysisOptions = new AnalysisOptionsImpl.from(defaultContextOptions);
       // Apply inherited options.
       options = _toStringMap(_getEmbeddedOptions(info));
-      if (options != null) {
-        configureContextOptions(info.context, options);
-      }
     } else {
+      analysisOptions =
+          new AnalysisOptionsImpl.from(info.context.analysisOptions);
       // Check for embedded options.
       Map embeddedOptions = _getEmbeddedOptions(info);
       if (embeddedOptions != null) {
         options = _toStringMap(new Merger().merge(embeddedOptions, options));
       }
     }
-
-    // Notify options processors.
-    AnalysisEngine.instance.optionsPlugin.optionsProcessors
-        .forEach((OptionsProcessor p) {
-      try {
-        p.optionsProcessed(info.context, options);
-      } catch (e, stacktrace) {
-        AnalysisEngine.instance.logger.logError(
-            'Error processing analysis options',
-            new CaughtException(e, stacktrace));
-      }
-    });
-
-    configureContextOptions(info.context, options);
+    if (options != null) {
+      applyToAnalysisOptions(analysisOptions, options);
+    }
+    info.context.analysisOptions = analysisOptions;
 
     // Nothing more to do.
     if (options == null) {
@@ -711,16 +725,6 @@
       }
     }
 
-    var lintOptions = options['linter'];
-    if (lintOptions != null) {
-      LintConfig config = new LintConfig.parseMap(lintOptions);
-      Iterable<LintRule> lintRules = ruleRegistry.enabled(config);
-      if (lintRules.isNotEmpty) {
-        analysisOptions.lint = true;
-        analysisOptions.lintRules = lintRules.toList();
-      }
-    }
-
     applyToAnalysisOptions(analysisOptions, options);
 
     // Nothing more to do.
@@ -983,15 +987,27 @@
   void _checkForAnalysisOptionsUpdate(
       String path, ContextInfo info, ChangeType changeType) {
     if (AnalysisEngine.isAnalysisOptionsFileName(path, pathContext)) {
-      var analysisContext = info.context;
-      if (analysisContext is context.AnalysisContextImpl) {
-        Map<String, Object> options =
-            readOptions(info.folder, info.disposition.packages);
-        processOptionsForContext(info, options,
-            optionsRemoved: changeType == ChangeType.REMOVE);
-        analysisContext.sourceFactory = _createSourceFactory(
-            analysisContext, analysisContext.analysisOptions, info.folder);
-        callbacks.applyChangesToContext(info.folder, new ChangeSet());
+      if (enableNewAnalysisDriver) {
+        // TODO(brianwilkerson) Implement this.
+//        AnalysisDriver driver = info.analysisDriver;
+//        String contextRoot = info.folder.path;
+//        ContextBuilder builder =
+//        callbacks.createContextBuilder(info.folder, defaultContextOptions);
+//        AnalysisOptions options = builder.getAnalysisOptions(contextRoot);
+//        driver.analysisOptions = options;
+//        driver.sourceFactory = builder.createSourceFactory(contextRoot, options);
+        // TODO(brianwilkerson) Set exclusion patterns.
+      } else {
+        var analysisContext = info.context;
+        if (analysisContext is context.AnalysisContextImpl) {
+          Map<String, Object> options =
+              readOptions(info.folder, info.disposition.packages);
+          processOptionsForContext(info, options,
+              optionsRemoved: changeType == ChangeType.REMOVE);
+          analysisContext.sourceFactory = _createSourceFactory(
+              analysisContext, analysisContext.analysisOptions, info.folder);
+          callbacks.applyChangesToContext(info.folder, new ChangeSet());
+        }
       }
     }
   }
@@ -1004,8 +1020,7 @@
       String contextRoot = info.folder.path;
       ContextBuilder builder =
           callbacks.createContextBuilder(info.folder, defaultContextOptions);
-      AnalysisOptions options =
-          builder.getAnalysisOptions(info.context, contextRoot);
+      AnalysisOptions options = builder.getAnalysisOptions(contextRoot);
       SourceFactory factory = builder.createSourceFactory(contextRoot, options);
       info.context.analysisOptions = options;
       info.context.sourceFactory = factory;
@@ -1020,11 +1035,11 @@
    */
   List<String> _computeFlushedFiles(ContextInfo info) {
     if (enableNewAnalysisDriver) {
-      Set<String> flushedFiles = info.analysisDriver.knownFiles.toSet();
+      Set<String> flushedFiles = info.analysisDriver.addedFiles.toSet();
       for (ContextInfo contextInfo in rootInfo.descendants) {
         AnalysisDriver other = contextInfo.analysisDriver;
         if (other != info.analysisDriver) {
-          flushedFiles.removeAll(other.knownFiles);
+          flushedFiles.removeAll(other.addedFiles);
         }
       }
       return flushedFiles.toList(growable: false);
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 499fd99..5066533 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -21,6 +21,7 @@
 import 'package:analysis_server/src/services/dependencies/reachable_source_collector.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/error/error.dart' as engine;
 import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
@@ -48,39 +49,49 @@
   /**
    * Implement the `analysis.getErrors` request.
    */
-  Response getErrors(Request request) {
+  Future<Null> getErrors(Request request) async {
     String file = new AnalysisGetErrorsParams.fromRequest(request).file;
+
+    void send(engine.AnalysisOptions analysisOptions, LineInfo lineInfo,
+        List<engine.AnalysisError> errors) {
+      if (lineInfo == null) {
+        server.sendResponse(new Response.getErrorsInvalidFile(request));
+      } else {
+        List<AnalysisError> protocolErrors =
+            doAnalysisError_listFromEngine(analysisOptions, lineInfo, errors);
+        server.sendResponse(
+            new AnalysisGetErrorsResult(protocolErrors).toResponse(request.id));
+      }
+    }
+
+    if (server.options.enableNewAnalysisDriver) {
+      var result = await server.getAnalysisResult(file);
+      send(result?.driver?.analysisOptions, result?.lineInfo, result?.errors);
+      return;
+    }
+
     Future<AnalysisDoneReason> completionFuture =
         server.onFileAnalysisComplete(file);
     if (completionFuture == null) {
-      return new Response.getErrorsInvalidFile(request);
+      server.sendResponse(new Response.getErrorsInvalidFile(request));
     }
-    completionFuture.then((AnalysisDoneReason reason) {
+    completionFuture.then((AnalysisDoneReason reason) async {
       switch (reason) {
         case AnalysisDoneReason.COMPLETE:
           engine.AnalysisErrorInfo errorInfo = server.getErrors(file);
-          List<AnalysisError> errors;
           if (errorInfo == null) {
             server.sendResponse(new Response.getErrorsInvalidFile(request));
           } else {
             engine.AnalysisContext context = server.getAnalysisContext(file);
-            errors = doAnalysisError_listFromEngine(
-                context, errorInfo.lineInfo, errorInfo.errors);
-            server.sendResponse(
-                new AnalysisGetErrorsResult(errors).toResponse(request.id));
+            send(context.analysisOptions, errorInfo.lineInfo, errorInfo.errors);
           }
           break;
         case AnalysisDoneReason.CONTEXT_REMOVED:
           // The active contexts have changed, so try again.
-          Response response = getErrors(request);
-          if (response != Response.DELAYED_RESPONSE) {
-            server.sendResponse(response);
-          }
+          await getErrors(request);
           break;
       }
     });
-    // delay response
-    return Response.DELAYED_RESPONSE;
   }
 
   /**
@@ -132,48 +143,50 @@
   /**
    * Implement the `analysis.getNavigation` request.
    */
-  Response getNavigation(Request request) {
-    if (server.options.enableNewAnalysisDriver) {
-      // TODO(scheglov) implement for the new analysis driver
-      return new Response.getNavigationInvalidFile(request);
-    }
+  Future<Null> getNavigation(Request request) async {
     var params = new AnalysisGetNavigationParams.fromRequest(request);
     String file = params.file;
+
+    void send(CompilationUnit unit) {
+      if (unit == null) {
+        server.sendResponse(new Response.getNavigationInvalidFile(request));
+      } else {
+        CompilationUnitElement unitElement = unit.element;
+        NavigationCollectorImpl collector = computeNavigation(
+            server,
+            unitElement.context,
+            unitElement.source,
+            params.offset,
+            params.length);
+        server.sendResponse(new AnalysisGetNavigationResult(
+                collector.files, collector.targets, collector.regions)
+            .toResponse(request.id));
+      }
+    }
+
+    if (server.options.enableNewAnalysisDriver) {
+      AnalysisResult result = await server.getAnalysisResult(file);
+      send(result?.unit);
+      return;
+    }
+
     Future<AnalysisDoneReason> analysisFuture =
         server.onFileAnalysisComplete(file);
     if (analysisFuture == null) {
-      return new Response.getNavigationInvalidFile(request);
+      server.sendResponse(new Response.getNavigationInvalidFile(request));
     }
     analysisFuture.then((AnalysisDoneReason reason) async {
       switch (reason) {
         case AnalysisDoneReason.COMPLETE:
           CompilationUnit unit = await server.getResolvedCompilationUnit(file);
-          if (unit == null) {
-            server.sendResponse(new Response.getNavigationInvalidFile(request));
-          } else {
-            CompilationUnitElement unitElement = unit.element;
-            NavigationCollectorImpl collector = computeNavigation(
-                server,
-                unitElement.context,
-                unitElement.source,
-                params.offset,
-                params.length);
-            server.sendResponse(new AnalysisGetNavigationResult(
-                    collector.files, collector.targets, collector.regions)
-                .toResponse(request.id));
-          }
+          send(unit);
           break;
         case AnalysisDoneReason.CONTEXT_REMOVED:
           // The active contexts have changed, so try again.
-          Response response = getNavigation(request);
-          if (response != Response.DELAYED_RESPONSE) {
-            server.sendResponse(response);
-          }
+          await getNavigation(request);
           break;
       }
     });
-    // delay response
-    return Response.DELAYED_RESPONSE;
   }
 
   /**
@@ -198,14 +211,16 @@
     try {
       String requestName = request.method;
       if (requestName == ANALYSIS_GET_ERRORS) {
-        return getErrors(request);
+        getErrors(request);
+        return Response.DELAYED_RESPONSE;
       } else if (requestName == ANALYSIS_GET_HOVER) {
         getHover(request);
         return Response.DELAYED_RESPONSE;
       } else if (requestName == ANALYSIS_GET_LIBRARY_DEPENDENCIES) {
         return getLibraryDependencies(request);
       } else if (requestName == ANALYSIS_GET_NAVIGATION) {
-        return getNavigation(request);
+        getNavigation(request);
+        return Response.DELAYED_RESPONSE;
       } else if (requestName == ANALYSIS_GET_REACHABLE_SOURCES) {
         return getReachableSources(request);
       } else if (requestName == ANALYSIS_REANALYZE) {
diff --git a/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart b/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
index 42e7213..c284ee8 100644
--- a/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
+++ b/pkg/analysis_server/lib/src/domains/analysis/implemented_dart.dart
@@ -5,7 +5,6 @@
 library domains.analysis.implemented_dart;
 
 import 'package:analysis_server/src/protocol_server.dart' as protocol;
-import 'package:analysis_server/src/services/search/hierarchy.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/element/element.dart';
 
@@ -31,7 +30,7 @@
         continue;
       }
       // analyze ancestors
-      subtypes = await getSubClasses(searchEngine, type);
+      subtypes = await searchEngine.searchAllSubtypes(type);
       if (subtypes.isNotEmpty) {
         _addImplementedClass(type);
       }
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index d7714fe..608d9fe0 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -24,6 +24,7 @@
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart' as engine;
 import 'package:analyzer/file_system/file_system.dart';
@@ -143,11 +144,13 @@
       AnalysisResult result = await server.getAnalysisResult(params.file);
       if (result != null) {
         CompilationUnit unit = result.unit;
+        CompilationUnitElement compilationUnitElement =
+            resolutionMap.elementDeclaredByCompilationUnit(unit);
         DartAssistContext dartAssistContext = new _DartAssistContextForValues(
-            unit.element.source,
+            compilationUnitElement.source,
             params.offset,
             params.length,
-            unit.element.context,
+            compilationUnitElement.context,
             unit);
         try {
           AssistProcessor processor = new AssistProcessor(dartAssistContext);
@@ -191,7 +194,7 @@
             var context = new _DartFixContextImpl(
                 server.resourceProvider,
                 result.driver.getTopLevelNameDeclarations,
-                unit.element.context,
+                resolutionMap.elementDeclaredByCompilationUnit(unit).context,
                 unit,
                 error);
             List<Fix> fixes =
@@ -218,8 +221,11 @@
         for (engine.AnalysisError error in errorInfo.errors) {
           int errorLine = lineInfo.getLocation(error.offset).lineNumber;
           if (errorLine == requestLine) {
-            List<Fix> fixes = await computeFixes(server.serverPlugin,
-                server.resourceProvider, unit.element.context, error);
+            List<Fix> fixes = await computeFixes(
+                server.serverPlugin,
+                server.resourceProvider,
+                resolutionMap.elementDeclaredByCompilationUnit(unit).context,
+                error);
             if (fixes.isNotEmpty) {
               AnalysisError serverError =
                   newAnalysisError_fromEngine(lineInfo, error);
@@ -300,8 +306,10 @@
         return;
       }
       // prepare context
-      engine.AnalysisContext context = unit.element.context;
-      Source source = unit.element.source;
+      CompilationUnitElement compilationUnitElement =
+          resolutionMap.elementDeclaredByCompilationUnit(unit);
+      engine.AnalysisContext context = compilationUnitElement.context;
+      Source source = compilationUnitElement.source;
       errors = context.computeErrors(source);
       // prepare code
       fileStamp = context.getModificationStamp(source);
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index 0c4c85f..c95f09a 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -17,6 +17,7 @@
 import 'package:analysis_server/src/services/dependencies/library_dependencies.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/src/generated/engine.dart';
@@ -71,7 +72,8 @@
 void scheduleIndexOperation(
     AnalysisServer server, String file, CompilationUnit dartUnit) {
   if (server.index != null) {
-    AnalysisContext context = dartUnit.element.context;
+    AnalysisContext context =
+        resolutionMap.elementDeclaredByCompilationUnit(dartUnit).context;
     server.addOperation(new _DartIndexOperation(context, file, dartUnit));
   }
 }
@@ -165,8 +167,9 @@
     if (errors == null) {
       errors = <AnalysisError>[];
     }
-    var serverErrors =
-        protocol.doAnalysisError_listFromEngine(context, lineInfo, errors);
+    AnalysisOptions analysisOptions = context.analysisOptions;
+    var serverErrors = protocol.doAnalysisError_listFromEngine(
+        analysisOptions, lineInfo, errors);
     var params = new protocol.AnalysisErrorsParams(file, serverErrors);
     server.sendNotification(params.toNotification());
   });
diff --git a/pkg/analysis_server/lib/src/plugin/linter_plugin.dart b/pkg/analysis_server/lib/src/plugin/linter_plugin.dart
deleted file mode 100644
index 07fb54e..0000000
--- a/pkg/analysis_server/lib/src/plugin/linter_plugin.dart
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analysis_server.src.plugin.linter_plugin;
-
-import 'package:analysis_server/src/services/linter/linter.dart';
-import 'package:analyzer/plugin/options.dart';
-import 'package:plugin/plugin.dart';
-
-/// The shared linter server plugin instance.
-final LinterServerPlugin linterServerPlugin = new LinterServerPlugin();
-
-/// A plugin that defines the extension points and extensions that enhance
-/// linting in the server.
-class LinterServerPlugin implements Plugin {
-  /// The unique identifier of this plugin.
-  static const String UNIQUE_IDENTIFIER = 'linter.server';
-
-  @override
-  String get uniqueIdentifier => UNIQUE_IDENTIFIER;
-
-  @override
-  void registerExtensionPoints(RegisterExtensionPoint registerExtensionPoint) {
-    // None.
-  }
-
-  @override
-  void registerExtensions(RegisterExtension registerExtension) {
-    //
-    // Register options validators.
-    //
-    registerExtension(
-        OPTIONS_VALIDATOR_EXTENSION_POINT_ID, new LinterRuleOptionsValidator());
-  }
-}
diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart
index 3b61ade..596b873 100644
--- a/pkg/analysis_server/lib/src/protocol_server.dart
+++ b/pkg/analysis_server/lib/src/protocol_server.dart
@@ -30,12 +30,13 @@
  * errors.
  */
 List<AnalysisError> doAnalysisError_listFromEngine(
-    engine.AnalysisContext context,
+    engine.AnalysisOptions analysisOptions,
     engine.LineInfo lineInfo,
     List<engine.AnalysisError> errors) {
   List<AnalysisError> serverErrors = <AnalysisError>[];
   for (engine.AnalysisError error in errors) {
-    ErrorProcessor processor = ErrorProcessor.getProcessor(context, error);
+    ErrorProcessor processor =
+        ErrorProcessor.getProcessor(analysisOptions, error);
     if (processor != null) {
       engine.ErrorSeverity severity = processor.severity;
       // Errors with null severity are filtered out.
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index 2f180ee..072fa75 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -9,7 +9,6 @@
 import 'dart:math';
 
 import 'package:analysis_server/src/analysis_server.dart';
-import 'package:analysis_server/src/plugin/linter_plugin.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/provisional/completion/dart/completion_plugin.dart';
 import 'package:analysis_server/src/server/http_server.dart';
@@ -25,7 +24,7 @@
 import 'package:analyzer/src/generated/incremental_logger.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:args/args.dart';
-import 'package:linter/src/plugin/linter_plugin.dart';
+import 'package:linter/src/rules.dart' as linter;
 import 'package:plugin/manager.dart';
 import 'package:plugin/plugin.dart';
 
@@ -415,15 +414,12 @@
     ServerPlugin serverPlugin = new ServerPlugin();
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
-    plugins.add(linterPlugin);
-    plugins.add(linterServerPlugin);
     plugins.add(dartCompletionPlugin);
     plugins.addAll(_userDefinedPlugins);
     ExtensionManager manager = new ExtensionManager();
     manager.processPlugins(plugins);
+    linter.registerLintRules();
 
     String defaultSdkPath;
     if (results[SDK_OPTION] != null) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
index 26a9af5..1290f70 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
@@ -20,6 +20,7 @@
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -179,7 +180,8 @@
   @override
   LibraryElement get coreLib {
     if (result != null) {
-      AnalysisContext context = result.unit.element.context;
+      AnalysisContext context =
+          resolutionMap.elementDeclaredByCompilationUnit(result.unit).context;
       _coreLib = context.typeProvider.objectType.element.library;
     } else {
       Source coreUri = sourceFactory.forUri('dart:core');
@@ -306,14 +308,18 @@
     if (libElem == null) {
       return null;
     }
-    _resolvedImports = <ImportElement>[];
-    for (ImportElement importElem in libElem.imports) {
-      if (importElem.importedLibrary?.exportNamespace == null) {
-        await _computeAsync(this, importElem.importedLibrary.source,
-            LIBRARY_ELEMENT4, performance, 'resolve imported library');
-        checkAborted();
+    if (result != null) {
+      _resolvedImports = libElem.imports;
+    } else {
+      _resolvedImports = <ImportElement>[];
+      for (ImportElement importElem in libElem.imports) {
+        if (importElem.importedLibrary?.exportNamespace == null) {
+          await _computeAsync(this, importElem.importedLibrary.source,
+              LIBRARY_ELEMENT4, performance, 'resolve imported library');
+          checkAborted();
+        }
+        _resolvedImports.add(importElem);
       }
-      _resolvedImports.add(importElem);
     }
     return _resolvedImports;
   }
@@ -325,7 +331,10 @@
       return _resolvedUnits;
     }
     if (result != null) {
-      _resolvedUnits = result.unit.element.library.units;
+      _resolvedUnits = resolutionMap
+          .elementDeclaredByCompilationUnit(result.unit)
+          .library
+          .units;
       return _resolvedUnits;
     }
     LibraryElement libElem = libraryElement;
@@ -396,7 +405,7 @@
     if (request.context == null) {
       unit = request.result.unit;
       // TODO(scheglov) support for parts
-      libSource = unit.element.source;
+      libSource = resolutionMap.elementDeclaredByCompilationUnit(unit).source;
     } else {
       Source source = request.source;
       AnalysisContext context = request.context;
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/inherited_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/inherited_reference_contributor.dart
index fed6a7b..9553dba 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/inherited_reference_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/inherited_reference_contributor.dart
@@ -12,6 +12,7 @@
 import 'package:analysis_server/src/services/completion/dart/optype.dart';
 import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 
@@ -72,7 +73,9 @@
         ? CompletionSuggestionKind.IDENTIFIER
         : CompletionSuggestionKind.INVOCATION;
     OpType optype = (request as DartCompletionRequestImpl).opType;
-    for (InterfaceType type in classDecl.element.allSupertypes) {
+    for (InterfaceType type in resolutionMap
+        .elementDeclaredByClassDeclaration(classDecl)
+        .allSupertypes) {
       if (!isFunctionalArgument) {
         for (PropertyAccessorElement elem in type.accessors) {
           if (elem.isGetter) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_constructor_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_constructor_contributor.dart
index cef91de..ad8e2b4 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_constructor_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_constructor_contributor.dart
@@ -16,6 +16,7 @@
 import 'package:analysis_server/src/services/completion/dart/optype.dart';
 import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -248,8 +249,10 @@
     String completion = classDecl.name.name;
     SimpleIdentifier elemId;
 
+    ClassElement classElement =
+        resolutionMap.elementDeclaredByClassDeclaration(classDecl);
     int relevance = optype.constructorSuggestionsFilter(
-        classDecl.element?.type, DART_RELEVANCE_DEFAULT);
+        classElement?.type, DART_RELEVANCE_DEFAULT);
     if (relevance == null) {
       return;
     }
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
index 01298f8..2d3bdd1 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
@@ -17,6 +17,7 @@
 import 'package:analysis_server/src/services/correction/strings.dart';
 import 'package:analysis_server/src/utilities/documentation.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -520,8 +521,10 @@
       {bool isAbstract: false,
       bool isDeprecated: false,
       int relevance: DART_RELEVANCE_DEFAULT}) {
-    relevance = optype.returnValueSuggestionsFilter(
-        enumDeclaration.element?.type, relevance);
+    ClassElement classElement =
+        resolutionMap.elementDeclaredByEnumDeclaration(enumDeclaration);
+    relevance =
+        optype.returnValueSuggestionsFilter(classElement?.type, relevance);
     if (relevance != null) {
       _addLocalSuggestion_enumConstant(constantDeclaration, enumDeclaration,
           isAbstract: isAbstract,
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/optype.dart b/pkg/analysis_server/lib/src/services/completion/dart/optype.dart
index 132c823..0591ae2 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/optype.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/optype.dart
@@ -8,6 +8,7 @@
 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
 import 'package:analysis_server/src/provisional/completion/dart/completion_target.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -567,7 +568,9 @@
         if (node.parent is VariableDeclaration) {
           VariableDeclaration varDeclaration =
               node.parent as VariableDeclaration;
-          localTypeAssertion = varDeclaration.element?.type;
+          localTypeAssertion = resolutionMap
+              .elementDeclaredByVariableDeclaration(varDeclaration)
+              ?.type;
         } else if (node.parent is AssignmentExpression) {
           AssignmentExpression assignmentExpression =
               node.parent as AssignmentExpression;
@@ -653,7 +656,7 @@
     if (identical(entity, node.expression)) {
       optype.includeReturnValueSuggestions = true;
       optype.returnValueSuggestionsFilter = (DartType dartType, int relevance) {
-        DartType type = node.element?.type;
+        DartType type = resolutionMap.elementForNamedExpression(node)?.type;
         bool isEnum = type != null &&
             type.element is ClassElement &&
             (type.element as ClassElement).isEnum;
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index 73a4bee..ebd7ca3 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -18,6 +18,7 @@
 import 'package:analysis_server/src/services/correction/util.dart';
 import 'package:analysis_server/src/services/search/hierarchy.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -72,7 +73,9 @@
     unit = dartContext.unit;
     unitElement = dartContext.unit.element;
     // library
-    unitLibraryElement = dartContext.unit.element.library;
+    unitLibraryElement = resolutionMap
+        .elementDeclaredByCompilationUnit(dartContext.unit)
+        .library;
     unitLibraryFile = unitLibraryElement.source.fullName;
     unitLibraryFolder = dirname(unitLibraryFile);
     // selection
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index 0b1c40e..16ac99c 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -25,6 +25,7 @@
 import 'package:analysis_server/src/services/correction/util.dart';
 import 'package:analysis_server/src/services/search/hierarchy.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -605,7 +606,7 @@
                 utils.getTypeSource(newType, librariesToImport);
             _addReplaceEdit(rf.rangeNode(typeNode), newTypeSource);
             _addFix(DartFixKind.CHANGE_TYPE_ANNOTATION,
-                [typeNode.type.displayName, newTypeSource]);
+                [resolutionMap.typeForTypeName(typeNode), newTypeSource]);
           }
         }
       }
@@ -2071,7 +2072,9 @@
         targetClassNode = targetTypeNode;
         // maybe static
         if (target is Identifier) {
-          staticModifier = target.bestElement.kind == ElementKind.CLASS;
+          staticModifier =
+              resolutionMap.bestElementForIdentifier(target).kind ==
+                  ElementKind.CLASS;
         }
         // use different utils
         CompilationUnitElement targetUnitElement =
diff --git a/pkg/analysis_server/lib/src/services/correction/namespace.dart b/pkg/analysis_server/lib/src/services/correction/namespace.dart
index 87c38dd..7519679 100644
--- a/pkg/analysis_server/lib/src/services/correction/namespace.dart
+++ b/pkg/analysis_server/lib/src/services/correction/namespace.dart
@@ -5,6 +5,7 @@
 library services.src.correction.namespace;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/resolver/scope.dart';
 
@@ -141,7 +142,8 @@
   AstNode parent = prefixNode.parent;
   CompilationUnit unit =
       prefixNode.getAncestor((node) => node is CompilationUnit);
-  LibraryElement libraryElement = unit.element.library;
+  LibraryElement libraryElement =
+      resolutionMap.elementDeclaredByCompilationUnit(unit).library;
   // prepare used element
   Element usedElement = null;
   if (parent is PrefixedIdentifier) {
diff --git a/pkg/analysis_server/lib/src/services/index/index.dart b/pkg/analysis_server/lib/src/services/index/index.dart
index dcf8ea3..e45be24 100644
--- a/pkg/analysis_server/lib/src/services/index/index.dart
+++ b/pkg/analysis_server/lib/src/services/index/index.dart
@@ -6,6 +6,7 @@
 
 import 'package:analysis_server/src/services/index/index_unit.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
 import 'package:analyzer/src/generated/source.dart';
@@ -80,10 +81,15 @@
    * Index declarations in the given partially resolved [unit].
    */
   void indexDeclarations(CompilationUnit unit) {
-    if (unit?.element?.library == null) {
+    if (unit == null) {
       return;
     }
-    AnalysisContext context = unit.element.context;
+    CompilationUnitElement compilationUnitElement =
+        resolutionMap.elementDeclaredByCompilationUnit(unit);
+    if (compilationUnitElement?.library == null) {
+      return;
+    }
+    AnalysisContext context = compilationUnitElement.context;
     _getContextIndex(context).indexDeclarations(unit);
   }
 
@@ -91,10 +97,15 @@
    * Index the given fully resolved [unit].
    */
   void indexUnit(CompilationUnit unit) {
-    if (unit?.element?.library == null) {
+    if (unit == null) {
       return;
     }
-    AnalysisContext context = unit.element.context;
+    CompilationUnitElement compilationUnitElement =
+        resolutionMap.elementDeclaredByCompilationUnit(unit);
+    if (compilationUnitElement?.library == null) {
+      return;
+    }
+    AnalysisContext context = compilationUnitElement.context;
     _getContextIndex(context).indexUnit(unit);
   }
 
diff --git a/pkg/analysis_server/lib/src/services/index/index_unit.dart b/pkg/analysis_server/lib/src/services/index/index_unit.dart
index 5a9cb47..8f1ce08 100644
--- a/pkg/analysis_server/lib/src/services/index/index_unit.dart
+++ b/pkg/analysis_server/lib/src/services/index/index_unit.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -489,7 +490,10 @@
   @override
   visitClassDeclaration(ClassDeclaration node) {
     if (node.extendsClause == null) {
-      ClassElement objectElement = node.element.supertype?.element;
+      ClassElement objectElement = resolutionMap
+          .elementDeclaredByClassDeclaration(node)
+          .supertype
+          ?.element;
       recordRelationOffset(objectElement, IndexRelationKind.IS_EXTENDED_BY,
           node.name.offset, 0, true);
     }
diff --git a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
index 107abf3..119b89e 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/extract_method.dart
@@ -21,6 +21,7 @@
 import 'package:analysis_server/src/services/search/element_visitors.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -411,7 +412,8 @@
     AstNode parent = _parentMember.parent;
     // top-level function
     if (parent is CompilationUnit) {
-      LibraryElement libraryElement = parent.element.library;
+      LibraryElement libraryElement =
+          resolutionMap.elementDeclaredByCompilationUnit(parent).library;
       return validateCreateFunction(searchEngine, libraryElement, name);
     }
     // method of class
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
index 5c9e12f..0e802d6 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart
@@ -164,7 +164,7 @@
     Set<ClassElement> superClasses = getSuperClasses(elementClass);
     await _prepareReferences();
     Set<ClassElement> subClasses =
-        await getSubClasses(searchEngine, elementClass);
+        await searchEngine.searchAllSubtypes(elementClass);
     // check shadowing of class names
     if (element != null) {
       for (Element element in elements) {
diff --git a/pkg/analysis_server/lib/src/services/search/hierarchy.dart b/pkg/analysis_server/lib/src/services/search/hierarchy.dart
index 1822f1b..92aca41 100644
--- a/pkg/analysis_server/lib/src/services/search/hierarchy.dart
+++ b/pkg/analysis_server/lib/src/services/search/hierarchy.dart
@@ -87,7 +87,7 @@
     }
     // check all sub- classes
     Set<ClassElement> subClasses =
-        await getSubClasses(searchEngine, superClass);
+        await searchEngine.searchAllSubtypes(superClass);
     subClasses.add(superClass);
     for (ClassElement subClass in subClasses) {
       List<Element> subClassMembers = getChildren(subClass, name);
@@ -119,15 +119,6 @@
 }
 
 /**
- * Returns a [Set] with all direct and indirect subclasses of [seed].
- */
-Future<Set<ClassElement>> getSubClasses(
-    SearchEngine searchEngine, ClassElement seed) async {
-  List<SearchMatch> matches = await searchEngine.searchAllSubtypes(seed);
-  return matches.map((match) => match.element).toSet();
-}
-
-/**
  * Returns a [Set] with all direct and indirect superclasses of [seed].
  */
 Set<ClassElement> getSuperClasses(ClassElement seed) {
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine.dart b/pkg/analysis_server/lib/src/services/search/search_engine.dart
index 6ea3395..b739b95 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine.dart
@@ -62,7 +62,7 @@
    *
    * [type] - the [ClassElement] being subtyped by the found matches.
    */
-  Future<List<SearchMatch>> searchAllSubtypes(ClassElement type);
+  Future<Set<ClassElement>> searchAllSubtypes(ClassElement type);
 
   /**
    * Returns declarations of class members with the given name.
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart b/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
index cdd6a91..63a6996 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine_internal.dart
@@ -30,11 +30,11 @@
   SearchEngineImpl(this._index);
 
   @override
-  Future<List<SearchMatch>> searchAllSubtypes(ClassElement type) async {
+  Future<Set<ClassElement>> searchAllSubtypes(ClassElement type) async {
     List<SearchMatch> matches = <SearchMatch>[];
     await _addMatches(
         matches, type, IndexRelationKind.IS_ANCESTOR_OF, MatchKind.DECLARATION);
-    return matches;
+    return matches.map((match) => match.element as ClassElement).toSet();
   }
 
   @override
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
index 04dd6c5..71b1f297 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
@@ -19,9 +19,21 @@
   SearchEngineImpl2(this._drivers);
 
   @override
-  Future<List<SearchMatch>> searchAllSubtypes(ClassElement type) async {
-    // TODO(scheglov) implement
-    return [];
+  Future<Set<ClassElement>> searchAllSubtypes(ClassElement type) async {
+    Set<ClassElement> allSubtypes = new Set<ClassElement>();
+
+    Future<Null> addSubtypes(ClassElement type) async {
+      List<SearchResult> directResults = await _searchDirectSubtypes(type);
+      for (SearchResult directResult in directResults) {
+        var directSubtype = directResult.enclosingElement as ClassElement;
+        if (allSubtypes.add(directSubtype)) {
+          await addSubtypes(directSubtype);
+        }
+      }
+    }
+
+    await addSubtypes(type);
+    return allSubtypes;
   }
 
   @override
@@ -48,12 +60,8 @@
 
   @override
   Future<List<SearchMatch>> searchSubtypes(ClassElement type) async {
-    List<SearchResult> allResults = [];
-    for (AnalysisDriver driver in _drivers) {
-      List<SearchResult> results = await driver.search.subTypes(type);
-      allResults.addAll(results);
-    }
-    return allResults.map(_SearchMatch.forSearchResult).toList();
+    List<SearchResult> results = await _searchDirectSubtypes(type);
+    return results.map(_SearchMatch.forSearchResult).toList();
   }
 
   @override
@@ -61,6 +69,15 @@
     // TODO(scheglov) implement
     return [];
   }
+
+  Future<List<SearchResult>> _searchDirectSubtypes(ClassElement type) async {
+    List<SearchResult> allResults = [];
+    for (AnalysisDriver driver in _drivers) {
+      List<SearchResult> results = await driver.search.subTypes(type);
+      allResults.addAll(results);
+    }
+    return allResults;
+  }
 }
 
 class _SearchMatch implements SearchMatch {
diff --git a/pkg/analysis_server/lib/src/single_context_manager.dart b/pkg/analysis_server/lib/src/single_context_manager.dart
index fa99c96..5c28cae 100644
--- a/pkg/analysis_server/lib/src/single_context_manager.dart
+++ b/pkg/analysis_server/lib/src/single_context_manager.dart
@@ -147,6 +147,12 @@
   }
 
   @override
+  List<AnalysisDriver> getDriversInAnalysisRoot(Folder analysisRoot) {
+    throw new UnimplementedError(
+        'Unexpected invocation of getDriversInAnalysisRoot in SingleContextManager');
+  }
+
+  @override
   bool isIgnored(String path) {
     return !_isContainedIn(includedPaths, path) || _isExcludedPath(path);
   }
diff --git a/pkg/analysis_server/lib/src/utilities/null_string_sink.dart b/pkg/analysis_server/lib/src/utilities/null_string_sink.dart
new file mode 100644
index 0000000..27fef3a
--- /dev/null
+++ b/pkg/analysis_server/lib/src/utilities/null_string_sink.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/**
+ * A string sink that ignores everything written to it.
+ */
+class NullStringSink implements StringSink {
+  void write(Object obj) {}
+  void writeAll(Iterable objects, [String separator = ""]) {}
+  void writeCharCode(int charCode) {}
+  void writeln([Object obj = ""]) {}
+}
diff --git a/pkg/analysis_server/test/analysis/notification_analysis_options_test.dart b/pkg/analysis_server/test/analysis/notification_analysis_options_test.dart
index 7d08f0f..7384a54 100644
--- a/pkg/analysis_server/test/analysis/notification_analysis_options_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_analysis_options_test.dart
@@ -4,11 +4,12 @@
 
 library test.analysis.notification_analysis_options_test;
 
-import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:analysis_server/plugin/protocol/protocol.dart'
+    hide AnalysisOptions;
 import 'package:analysis_server/src/constants.dart';
 import 'package:analysis_server/src/domain_analysis.dart';
 import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/services/lint.dart';
+import 'package:linter/src/rules.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -19,6 +20,11 @@
   defineReflectiveSuite(() {
     defineReflectiveTests(NewAnalysisOptionsFileNotificationTest);
     defineReflectiveTests(OldAnalysisOptionsFileNotificationTest);
+    // These tests all fail, presumably because we are not updating the analysis
+    // options when the file changes and because we are not analyzing the
+    // analysis options file.
+//    defineReflectiveTests(NewAnalysisOptionsFileNotificationTest_Driver);
+//    defineReflectiveTests(OldAnalysisOptionsFileNotificationTest_Driver);
   });
 }
 
@@ -39,8 +45,6 @@
 
   String get optionsFilePath;
 
-  AnalysisContext get testContext => server.getContainingContext(testFile);
-
   List<AnalysisError> get testFileErrors => filesErrors[testFile];
 
   void addOptionsFile(String contents) {
@@ -74,6 +78,7 @@
 
   @override
   void setUp() {
+    registerLintRules();
     super.setUp();
     server.handlers = [new AnalysisDomainHandler(server)];
   }
@@ -103,9 +108,11 @@
     await waitForTasksFinished();
 
     // Verify options file.
+    expect(optionsFileErrors, isNotNull);
     expect(optionsFileErrors, isEmpty);
 
     // Verify test file.
+    expect(testFileErrors, isNotNull);
     expect(testFileErrors, isEmpty);
   }
 
@@ -127,9 +134,11 @@
     await waitForTasksFinished();
 
     // Verify options file.
+    expect(optionsFileErrors, isNotNull);
     expect(optionsFileErrors, isEmpty);
 
     // Verify test file.
+    expect(testFileErrors, isNotNull);
     expect(testFileErrors, isEmpty);
 
     addOptionsFile('''
@@ -287,14 +296,15 @@
   }
 
   void verifyLintsEnabled(List<String> lints) {
-    expect(testContext.analysisOptions.lint, true);
-    var rules = getLints(testContext).map((rule) => rule.name);
+    AnalysisOptions options = analysisOptions;
+    expect(options.lint, true);
+    var rules = options.lintRules.map((rule) => rule.name);
     expect(rules, unorderedEquals(lints));
   }
 
   verifyStrongMode({bool enabled}) {
     // Verify strong-mode enabled.
-    expect(testContext.analysisOptions.strongMode, enabled);
+    expect(analysisOptions.strongMode, enabled);
 
     if (enabled) {
       // Should produce a type warning.
@@ -311,11 +321,35 @@
 @reflectiveTest
 class NewAnalysisOptionsFileNotificationTest
     extends AnalysisOptionsFileNotificationTest {
+  @override
   String get optionsFilePath => '$projectPath/analysis_options.yaml';
 }
 
 @reflectiveTest
+class NewAnalysisOptionsFileNotificationTest_Driver
+    extends NewAnalysisOptionsFileNotificationTest {
+  @override
+  void setUp() {
+    enableNewAnalysisDriver = true;
+    generateSummaryFiles = true;
+    super.setUp();
+  }
+}
+
+@reflectiveTest
 class OldAnalysisOptionsFileNotificationTest
     extends AnalysisOptionsFileNotificationTest {
+  @override
   String get optionsFilePath => '$projectPath/.analysis_options';
 }
+
+@reflectiveTest
+class OldAnalysisOptionsFileNotificationTest_Driver
+    extends OldAnalysisOptionsFileNotificationTest {
+  @override
+  void setUp() {
+    enableNewAnalysisDriver = true;
+    generateSummaryFiles = true;
+    super.setUp();
+  }
+}
diff --git a/pkg/analysis_server/test/analysis/notification_errors_test.dart b/pkg/analysis_server/test/analysis/notification_errors_test.dart
index 6dfc501..9baa09f 100644
--- a/pkg/analysis_server/test/analysis/notification_errors_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_errors_test.dart
@@ -10,8 +10,9 @@
 import 'package:analysis_server/src/domain_analysis.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/lint/linter.dart';
 import 'package:analyzer/src/services/lint.dart';
-import 'package:linter/src/linter.dart';
+import 'package:linter/src/rules.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -38,6 +39,7 @@
 
   @override
   void setUp() {
+    registerLintRules();
     super.setUp();
     server.handlers = [
       new AnalysisDomainHandler(server),
diff --git a/pkg/analysis_server/test/analysis/update_content_test.dart b/pkg/analysis_server/test/analysis/update_content_test.dart
index 788088f..005528e 100644
--- a/pkg/analysis_server/test/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/analysis/update_content_test.dart
@@ -9,6 +9,7 @@
 import 'package:analysis_server/src/constants.dart';
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/source.dart';
@@ -293,7 +294,9 @@
 
   @override
   bool matches(arg) {
-    return arg is CompilationUnit && arg.element.source.fullName == file;
+    return arg is CompilationUnit &&
+        resolutionMap.elementDeclaredByCompilationUnit(arg).source.fullName ==
+            file;
   }
 }
 
diff --git a/pkg/analysis_server/test/analysis_abstract.dart b/pkg/analysis_server/test/analysis_abstract.dart
index 43afb7b..ac463bb 100644
--- a/pkg/analysis_server/test/analysis_abstract.dart
+++ b/pkg/analysis_server/test/analysis_abstract.dart
@@ -6,20 +6,20 @@
 
 import 'dart:async';
 
-import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:analysis_server/plugin/protocol/protocol.dart'
+    hide AnalysisOptions;
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/constants.dart';
 import 'package:analysis_server/src/domain_analysis.dart';
-import 'package:analysis_server/src/plugin/linter_plugin.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/provisional/completion/dart/completion_plugin.dart';
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
+import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
-import 'package:linter/src/plugin/linter_plugin.dart';
 import 'package:plugin/manager.dart';
 import 'package:plugin/plugin.dart';
 import 'package:test/test.dart';
@@ -69,8 +69,14 @@
   AnalysisDomainHandler get analysisHandler => server.handlers
       .singleWhere((handler) => handler is AnalysisDomainHandler);
 
+  AnalysisOptions get analysisOptions => enableNewAnalysisDriver
+      ? testDiver.analysisOptions
+      : testContext.analysisOptions;
+
   AnalysisContext get testContext => server.getAnalysisContext(testFile);
 
+  AnalysisDriver get testDiver => server.getAnalysisDriver(testFile);
+
   void addAnalysisSubscription(AnalysisService service, String file) {
     // add file to subscription
     var files = analysisSubscriptions[service];
@@ -113,12 +119,8 @@
     ServerPlugin serverPlugin = new ServerPlugin();
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
     plugins.add(dartCompletionPlugin);
-    plugins.add(linterPlugin);
-    plugins.add(linterServerPlugin);
     addServerPlugins(plugins);
     //
     // Process plugins
diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
index b6a9475..d4df528 100644
--- a/pkg/analysis_server/test/analysis_server_test.dart
+++ b/pkg/analysis_server/test/analysis_server_test.dart
@@ -124,7 +124,6 @@
   void processRequiredPlugins(ServerPlugin serverPlugin) {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
 
     ExtensionManager manager = new ExtensionManager();
diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart
index c95252b..094da54 100644
--- a/pkg/analysis_server/test/context_manager_test.dart
+++ b/pkg/analysis_server/test/context_manager_test.dart
@@ -7,21 +7,25 @@
 import 'dart:collection';
 
 import 'package:analysis_server/src/context_manager.dart';
+import 'package:analysis_server/src/utilities/null_string_sink.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
 import 'package:analyzer/source/error_processor.dart';
 import 'package:analyzer/src/context/builder.dart';
+import 'package:analyzer/src/dart/analysis/byte_store.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/dart/analysis/file_state.dart';
 import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/engine.dart' hide AnalysisResult;
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/source_io.dart';
 import 'package:analyzer/src/services/lint.dart';
+import 'package:analyzer/src/summary/summary_file_builder.dart';
 import 'package:analyzer/src/util/glob.dart';
-import 'package:linter/src/plugin/linter_plugin.dart';
+import 'package:linter/src/rules.dart';
 import 'package:linter/src/rules/avoid_as.dart';
 import 'package:path/path.dart' as path;
 import 'package:plugin/manager.dart';
@@ -36,7 +40,9 @@
   defineReflectiveSuite(() {
     defineReflectiveTests(AbstractContextManagerTest);
     defineReflectiveTests(ContextManagerWithNewOptionsTest);
+    defineReflectiveTests(ContextManagerWithNewOptionsTest_Driver);
     defineReflectiveTests(ContextManagerWithOldOptionsTest);
+    defineReflectiveTests(ContextManagerWithOldOptionsTest_Driver);
   });
 }
 
@@ -151,16 +157,15 @@
         manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
     expect(contexts, isNotNull);
     expect(contexts.length, equals(1));
-    var context = contexts[0];
-    var source = context.sourceFactory.forUri('dart:foobar');
+    var source = sourceFactory.forUri('dart:foobar');
     expect(source, isNotNull);
     expect(source.fullName, '/my/proj/sdk_ext/entry.dart');
     // We can't find dart:core because we didn't list it in our
     // embedded_libs map.
-    expect(context.sourceFactory.forUri('dart:core'), isNull);
+    expect(sourceFactory.forUri('dart:core'), isNull);
     // We can find dart:typed_data because we listed it in our
     // embedded_libs map.
-    expect(context.sourceFactory.forUri('dart:typed_data'), isNotNull);
+    expect(sourceFactory.forUri('dart:typed_data'), isNotNull);
   }
 
   test_ignoreFilesInPackagesFolder() {
@@ -388,8 +393,7 @@
         manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
     expect(contexts, isNotNull);
     expect(contexts.length, equals(1));
-    var context = contexts[0];
-    var source = context.sourceFactory.forUri('dart:foobar');
+    var source = sourceFactory.forUri('dart:foobar');
     expect(source.fullName, equals('/my/proj/sdk_ext/entry.dart'));
   }
 
@@ -406,7 +410,7 @@
     expect(contextsInAnalysisRoot, hasLength(1));
     AnalysisContext context = contextsInAnalysisRoot[0];
     expect(context, isNotNull);
-    Source result = context.sourceFactory.forUri('package:foo/foo.dart');
+    Source result = sourceFactory.forUri('package:foo/foo.dart');
     expect(result, isNotNull);
     expect(result.exists(), isFalse);
   }
@@ -959,7 +963,7 @@
     expect(contextsInAnalysisRoot, hasLength(1));
     AnalysisContext context = contextsInAnalysisRoot[0];
     expect(context, isNotNull);
-    Source result = context.sourceFactory.forUri('package:foo/foo.dart');
+    Source result = sourceFactory.forUri('package:foo/foo.dart');
     expect(result.fullName, filePath);
   }
 
@@ -1745,12 +1749,15 @@
         .toList();
   }
 
-  List<ErrorProcessor> get errorProcessors =>
-      callbacks.currentContext.analysisOptions.errorProcessors;
+  AnalysisOptions get analysisOptions => callbacks.analysisOptions;
 
-  List<Linter> get lints => getLints(callbacks.currentContext);
+  bool get enableAnalysisDriver => false;
 
-  AnalysisOptions get options => callbacks.currentContext.analysisOptions;
+  List<ErrorProcessor> get errorProcessors => analysisOptions.errorProcessors;
+
+  List<Linter> get lints => analysisOptions.lintRules;
+
+  SourceFactory get sourceFactory => callbacks.sourceFactory;
 
   Map<String, List<Folder>> get _currentPackageMap => _packageMap(projPath);
 
@@ -1759,8 +1766,16 @@
     resourceProvider.deleteFile(filePath);
   }
 
+  /**
+   * TODO(brianwilkerson) This doesn't add the strong mode processor when using
+   * the new analysis driver.
+   */
   ErrorProcessor getProcessor(AnalysisError error) =>
-      ErrorProcessor.getProcessor(callbacks.currentContext, error);
+      callbacks.currentDriver == null
+          ? ErrorProcessor.getProcessor(
+              callbacks.currentContext.analysisOptions, error)
+          : errorProcessors.firstWhere((ErrorProcessor p) => p.appliesTo(error),
+              orElse: () => null);
 
   String newFile(List<String> pathComponents, [String content = '']) {
     String filePath = path.posix.joinAll(pathComponents);
@@ -1768,6 +1783,12 @@
     return filePath;
   }
 
+  String newFileFromBytes(List<String> pathComponents, List<int> bytes) {
+    String filePath = path.posix.joinAll(pathComponents);
+    resourceProvider.newFileWithBytes(filePath, bytes);
+    return filePath;
+  }
+
   String newFolder(List<String> pathComponents) {
     String folderPath = path.posix.joinAll(pathComponents);
     resourceProvider.newFolder(folderPath);
@@ -1777,11 +1798,10 @@
   void processRequiredPlugins() {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
-    plugins.add(linterPlugin);
     ExtensionManager manager = new ExtensionManager();
     manager.processPlugins(plugins);
+
+    registerLintRules();
   }
 
   UriResolver providePackageResolver(Folder folder) => packageResolver;
@@ -1789,9 +1809,10 @@
   void setUp() {
     processRequiredPlugins();
     resourceProvider = new MemoryResourceProvider();
+    resourceProvider.newFolder(projPath);
     packageMapProvider = new MockPackageMapProvider();
     // Create an SDK in the mock file system.
-    new MockSdk(resourceProvider: resourceProvider);
+    new MockSdk(generateSummaryFiles: true, resourceProvider: resourceProvider);
     DartSdkManager sdkManager = new DartSdkManager('/', false);
     manager = new ContextManagerImpl(
         resourceProvider,
@@ -1801,10 +1822,12 @@
         analysisFilesGlobs,
         InstrumentationService.NULL_SERVICE,
         new AnalysisOptionsImpl(),
-        false);
-    callbacks = new TestContextManagerCallbacks(resourceProvider);
+        enableAnalysisDriver);
+    PerformanceLog logger = new PerformanceLog(new NullStringSink());
+    AnalysisDriverScheduler scheduler = new AnalysisDriverScheduler(logger);
+    callbacks =
+        new TestContextManagerCallbacks(resourceProvider, logger, scheduler);
     manager.callbacks = callbacks;
-    resourceProvider.newFolder(projPath);
   }
 
   /**
@@ -1833,10 +1856,96 @@
 }
 
 @reflectiveTest
+class ContextManagerWithNewOptionsTest_Driver
+    extends ContextManagerWithNewOptionsTest {
+  bool get enableAnalysisDriver => true;
+
+  @failingTest
+  test_analysis_options_file_delete() async {
+    // It appears that this fails because we are not correctly updating the
+    // analysis options in the driver when the file is removed.
+    return super.test_analysis_options_file_delete();
+  }
+
+  @failingTest
+  test_analysis_options_file_delete_with_embedder() async {
+    // This fails because the ContextBuilder doesn't pick up the strongMode
+    // flag from the embedder.yaml file.
+    return super.test_analysis_options_file_delete_with_embedder();
+  }
+
+  @failingTest
+  test_embedder_options() async {
+    // This fails because the ContextBuilder doesn't pick up the strongMode
+    // flag from the embedder.yaml file.
+    return super.test_embedder_options();
+  }
+
+  @failingTest
+  test_optionsFile_update_strongMode() async {
+    // It appears that this fails because we are not correctly updating the
+    // analysis options in the driver when the file is modified.
+    //return super.test_optionsFile_update_strongMode();
+    // After a few other changes, the test now times out on my machine, so I'm
+    // disabling it in order to prevent it from being flaky.
+    fail('Test times out');
+  }
+
+  @failingTest
+  test_path_filter_analysis_option() async {
+    // This fails because we're not analyzing the analyis options file.
+    return super.test_path_filter_analysis_option();
+  }
+}
+
+@reflectiveTest
 class ContextManagerWithOldOptionsTest extends ContextManagerWithOptionsTest {
   String get optionsFileName => AnalysisEngine.ANALYSIS_OPTIONS_FILE;
 }
 
+@reflectiveTest
+class ContextManagerWithOldOptionsTest_Driver
+    extends ContextManagerWithOldOptionsTest {
+  bool get enableAnalysisDriver => true;
+
+  @failingTest
+  test_analysis_options_file_delete() async {
+    // It appears that this fails because we are not correctly updating the
+    // analysis options in the driver when the file is removed.
+    return super.test_analysis_options_file_delete();
+  }
+
+  @failingTest
+  test_analysis_options_file_delete_with_embedder() async {
+    // This fails because the ContextBuilder doesn't pick up the strongMode
+    // flag from the embedder.yaml file.
+    return super.test_analysis_options_file_delete_with_embedder();
+  }
+
+  @failingTest
+  test_embedder_options() async {
+    // This fails because the ContextBuilder doesn't pick up the strongMode
+    // flag from the embedder.yaml file.
+    return super.test_embedder_options();
+  }
+
+  @failingTest
+  test_optionsFile_update_strongMode() async {
+    // It appears that this fails because we are not correctly updating the
+    // analysis options in the driver when the file is modified.
+    //return super.test_optionsFile_update_strongMode();
+    // After a few other changes, the test now times out on my machine, so I'm
+    // disabling it in order to prevent it from being flaky.
+    fail('Test times out');
+  }
+
+  @failingTest
+  test_path_filter_analysis_option() async {
+    // This fails because we're not analyzing the analyis options file.
+    return super.test_path_filter_analysis_option();
+  }
+}
+
 abstract class ContextManagerWithOptionsTest extends ContextManagerTest {
   String get optionsFileName;
 
@@ -1864,7 +1973,7 @@
     // Verify options were set.
     expect(errorProcessors, hasLength(1));
     expect(lints, hasLength(1));
-    expect(options.enableStrictCallChecks, isTrue);
+    expect(analysisOptions.enableStrictCallChecks, isTrue);
 
     // Remove options.
     deleteFile([projPath, optionsFileName]);
@@ -1873,7 +1982,7 @@
     // Verify defaults restored.
     expect(errorProcessors, isEmpty);
     expect(lints, isEmpty);
-    expect(options.enableStrictCallChecks, isFalse);
+    expect(analysisOptions.enableStrictCallChecks, isFalse);
   }
 
   test_analysis_options_file_delete_with_embedder() async {
@@ -1916,8 +2025,8 @@
     await pumpEventQueue();
 
     // Verify options were set.
-    expect(options.enableStrictCallChecks, isTrue);
-    expect(options.strongMode, isTrue);
+    expect(analysisOptions.enableStrictCallChecks, isTrue);
+    expect(analysisOptions.strongMode, isTrue);
     expect(errorProcessors, hasLength(2));
     expect(lints, hasLength(2));
 
@@ -1926,7 +2035,7 @@
     await pumpEventQueue();
 
     // Verify defaults restored.
-    expect(options.enableStrictCallChecks, isFalse);
+    expect(analysisOptions.enableStrictCallChecks, isFalse);
     expect(lints, hasLength(1));
     expect(lints.first, new isInstanceOf<AvoidAs>());
     expect(errorProcessors, hasLength(1));
@@ -1963,7 +2072,7 @@
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
     await pumpEventQueue();
     // Verify options were set.
-    expect(options.enableStrictCallChecks, isTrue);
+    expect(analysisOptions.enableStrictCallChecks, isTrue);
     expect(errorProcessors, hasLength(1));
     expect(lints, hasLength(1));
     expect(lints[0].name, 'camel_case_types');
@@ -1995,6 +2104,8 @@
     String sdkExtPath = newFolder([projPath, 'sdk_ext']);
     newFile([projPath, 'test', 'test.dart']);
     newFile([sdkExtPath, 'entry.dart']);
+    List<int> bytes = new SummaryBuilder([], null, true).build();
+    newFileFromBytes([projPath, 'sdk.ds'], bytes);
     // Setup _embedder.yaml.
     newFile(
         [libPath, '_embedder.yaml'],
@@ -2042,14 +2153,13 @@
         manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
     expect(contexts, isNotNull);
     expect(contexts, hasLength(1));
-    var context = contexts[0];
 
     // Verify options.
     // * from `_embedder.yaml`:
-    expect(context.analysisOptions.strongMode, isTrue);
-    expect(context.analysisOptions.enableSuperMixins, isTrue);
+    expect(analysisOptions.strongMode, isTrue);
+    expect(analysisOptions.enableSuperMixins, isTrue);
     // * from analysis options:
-    expect(context.analysisOptions.enableStrictCallChecks, isTrue);
+    expect(analysisOptions.enableStrictCallChecks, isTrue);
 
     // * verify tests are excluded
     expect(
@@ -2075,7 +2185,7 @@
             ['avoid_as' /* embedder */, 'camel_case_types' /* options */]));
 
     // Sanity check embedder libs.
-    var source = context.sourceFactory.forUri('dart:foobar');
+    var source = sourceFactory.forUri('dart:foobar');
     expect(source, isNotNull);
     expect(source.fullName, '/my/proj/sdk_ext/entry.dart');
   }
@@ -2171,13 +2281,22 @@
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
     await pumpEventQueue();
 
-    AnalysisContext context = manager.getContextFor(projPath);
-    Source testSource = context.getSourcesWithFullName(file.path).single;
+    if (enableAnalysisDriver) {
+      AnalysisResult result =
+          await callbacks.currentDriver.getResult(file.path);
 
-    // Not strong mode - both in the context and the SDK context.
-    {
-      AnalysisContext sdkContext = context.sourceFactory.dartSdk.context;
-      expect(context.analysisOptions.strongMode, isFalse);
+      // Not strong mode - both in the context and the SDK context.
+      AnalysisContext sdkContext = sourceFactory.dartSdk.context;
+      expect(analysisOptions.strongMode, isFalse);
+      expect(sdkContext.analysisOptions.strongMode, isFalse);
+      expect(result.errors, isEmpty);
+    } else {
+      AnalysisContext context = manager.getContextFor(projPath);
+      Source testSource = context.getSourcesWithFullName(file.path).single;
+
+      // Not strong mode - both in the context and the SDK context.
+      AnalysisContext sdkContext = sourceFactory.dartSdk.context;
+      expect(analysisOptions.strongMode, isFalse);
       expect(sdkContext.analysisOptions.strongMode, isFalse);
       expect(context.computeErrors(testSource), isEmpty);
     }
@@ -2192,10 +2311,22 @@
     await pumpEventQueue();
 
     // Strong mode - both in the context and the SDK context.
-    {
+    if (enableAnalysisDriver) {
+      AnalysisResult result =
+          await callbacks.currentDriver.getResult(file.path);
+
+      // Not strong mode - both in the context and the SDK context.
+      AnalysisContext sdkContext = sourceFactory.dartSdk.context;
+      expect(analysisOptions.strongMode, isTrue);
+      expect(sdkContext.analysisOptions.strongMode, isTrue);
+      // The code is strong-mode clean.
+      // Verify that TypeSystem was reset.
+      expect(result.errors, isEmpty);
+    } else {
       AnalysisContext context = manager.getContextFor(projPath);
-      AnalysisContext sdkContext = context.sourceFactory.dartSdk.context;
-      expect(context.analysisOptions.strongMode, isTrue);
+      Source testSource = context.getSourcesWithFullName(file.path).single;
+      AnalysisContext sdkContext = sourceFactory.dartSdk.context;
+      expect(analysisOptions.strongMode, isTrue);
       expect(sdkContext.analysisOptions.strongMode, isTrue);
       // The code is strong-mode clean.
       // Verify that TypeSystem was reset.
@@ -2223,15 +2354,27 @@
 ''');
     // Setup context.
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
+
     // Verify that analysis options was parsed and the ignore patterns applied.
-    Map<String, int> fileTimestamps =
-        callbacks.currentContextFilePaths[projPath];
-    expect(fileTimestamps, isNotEmpty);
-    List<String> files = fileTimestamps.keys.toList();
-    expect(
-        files,
-        unorderedEquals(
-            ['/my/proj/lib/main.dart', '/my/proj/$optionsFileName']));
+    Folder projectFolder = resourceProvider.newFolder(projPath);
+    if (enableAnalysisDriver) {
+      var drivers = manager.getDriversInAnalysisRoot(projectFolder);
+      expect(drivers, hasLength(1));
+      AnalysisDriver driver = drivers[0];
+      expect(
+          driver.addedFiles,
+          unorderedEquals(
+              ['/my/proj/lib/main.dart', '/my/proj/$optionsFileName']));
+    } else {
+      Map<String, int> fileTimestamps =
+          callbacks.currentContextFilePaths[projPath];
+      expect(fileTimestamps, isNotEmpty);
+      List<String> files = fileTimestamps.keys.toList();
+      expect(
+          files,
+          unorderedEquals(
+              ['/my/proj/lib/main.dart', '/my/proj/$optionsFileName']));
+    }
   }
 
   test_path_filter_child_contexts_option() async {
@@ -2263,11 +2406,19 @@
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
     // Verify that the context in other_lib wasn't created and that the
     // context in lib was created.
-    var contexts =
-        manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
-    expect(contexts.length, 2);
-    expect(contexts[0].name, equals('/my/proj'));
-    expect(contexts[1].name, equals('/my/proj/lib'));
+    Folder projectFolder = resourceProvider.newFolder(projPath);
+    if (enableAnalysisDriver) {
+      var drivers = manager.getDriversInAnalysisRoot(projectFolder);
+      expect(drivers, hasLength(2));
+      expect(drivers[0].name, equals('proj'));
+      expect(drivers[1].name, equals('lib'));
+    } else {
+      var contexts =
+          manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
+      expect(contexts.length, 2);
+      expect(contexts[0].name, equals('/my/proj'));
+      expect(contexts[1].name, equals('/my/proj/lib'));
+    }
   }
 
   test_path_filter_recursive_wildcard_child_contexts_option() async {
@@ -2297,13 +2448,21 @@
   ''');
     // Setup context.
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
+
     // Verify that the context in other_lib wasn't created and that the
     // context in lib was created.
-    var contexts =
-        manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
-    expect(contexts.length, 2);
-    expect(contexts[0].name, equals('/my/proj'));
-    expect(contexts[1].name, equals('/my/proj/lib'));
+    Folder projectFolder = resourceProvider.newFolder(projPath);
+    if (enableAnalysisDriver) {
+      var drivers = manager.getDriversInAnalysisRoot(projectFolder);
+      expect(drivers, hasLength(2));
+      expect(drivers[0].name, equals('proj'));
+      expect(drivers[1].name, equals('lib'));
+    } else {
+      var contexts = manager.contextsInAnalysisRoot(projectFolder);
+      expect(contexts.length, 2);
+      expect(contexts[0].name, equals('/my/proj'));
+      expect(contexts[1].name, equals('/my/proj/lib'));
+    }
   }
 
   test_path_filter_wildcard_child_contexts_option() async {
@@ -2331,15 +2490,23 @@
   exclude:
     - 'other_lib/*'
 ''');
-    // Setup context.
+    // Setup context / driver.
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
-    // Verify that the context in other_lib wasn't created and that the
-    // context in lib was created.
-    var contexts =
-        manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
-    expect(contexts.length, 2);
-    expect(contexts[0].name, equals('/my/proj'));
-    expect(contexts[1].name, equals('/my/proj/lib'));
+
+    Folder projectFolder = resourceProvider.newFolder(projPath);
+    if (enableAnalysisDriver) {
+      var drivers = manager.getDriversInAnalysisRoot(projectFolder);
+      expect(drivers, hasLength(2));
+      expect(drivers[0].name, equals('proj'));
+      expect(drivers[1].name, equals('lib'));
+    } else {
+      // Verify that the context in other_lib wasn't created and that the
+      // context in lib was created.
+      var contexts = manager.contextsInAnalysisRoot(projectFolder);
+      expect(contexts, hasLength(2));
+      expect(contexts[0].name, equals('/my/proj'));
+      expect(contexts[1].name, equals('/my/proj/lib'));
+    }
   }
 
   void test_setRoots_nested_excludedByOuter() {
@@ -2426,10 +2593,7 @@
     // Setup context.
     manager.setRoots(<String>[projPath], <String>[], <String, String>{});
     // Verify that analysis options was parsed and strong-mode set.
-    Map<String, int> fileTimestamps =
-        callbacks.currentContextFilePaths[projPath];
-    expect(fileTimestamps, isNotEmpty);
-    expect(callbacks.currentContext.analysisOptions.strongMode, true);
+    expect(analysisOptions.strongMode, true);
   }
 }
 
@@ -2445,6 +2609,11 @@
   AnalysisContext currentContext;
 
   /**
+   * The analysis driver that was created.
+   */
+  AnalysisDriver currentDriver;
+
+  /**
    * Map from context to the timestamp when the context was created.
    */
   Map<String, int> currentContextTimestamps = <String, int>{};
@@ -2468,21 +2637,69 @@
   final ResourceProvider resourceProvider;
 
   /**
+   * The logger used by the scheduler and the driver.
+   */
+  final PerformanceLog logger;
+
+  /**
+   * The scheduler used by the driver.
+   */
+  final AnalysisDriverScheduler scheduler;
+
+  /**
    * The list of `flushedFiles` in the last [removeContext] invocation.
    */
   List<String> lastFlushedFiles;
 
-  TestContextManagerCallbacks(this.resourceProvider);
+  TestContextManagerCallbacks(
+      this.resourceProvider, this.logger, this.scheduler);
+
+  /**
+   * Return the current set of analysis options.
+   */
+  AnalysisOptions get analysisOptions => currentDriver == null
+      ? currentContext.analysisOptions
+      : currentDriver.analysisOptions;
 
   /**
    * Iterable of the paths to contexts that currently exist.
    */
   Iterable<String> get currentContextPaths => currentContextTimestamps.keys;
 
+  /**
+   * Return the current source factory.
+   */
+  SourceFactory get sourceFactory => currentDriver == null
+      ? currentContext.sourceFactory
+      : currentDriver.sourceFactory;
+
   @override
   AnalysisDriver addAnalysisDriver(Folder folder, AnalysisOptions options) {
-    // TODO: implement addAnalysisDriver
-    throw new UnimplementedError();
+    String path = folder.path;
+    expect(currentContextPaths, isNot(contains(path)));
+    currentContextTimestamps[path] = now;
+
+    ContextBuilder builder =
+        createContextBuilder(folder, options, useSummaries: true);
+    AnalysisContext context = builder.buildContext(folder.path);
+    SourceFactory sourceFactory = context.sourceFactory;
+    AnalysisOptions analysisOptions = context.analysisOptions;
+    context.dispose();
+
+    currentDriver = new AnalysisDriver(
+        scheduler,
+        logger,
+        resourceProvider,
+        new MemoryByteStore(),
+        new FileContentOverlay(),
+        sourceFactory,
+        analysisOptions);
+    currentDriver.name = folder.shortName;
+    currentDriver.exceptions.listen((ExceptionResult result) {
+      AnalysisEngine.instance.logger
+          .logError('Analysis failed: ${result.path}', result.exception);
+    });
+    return currentDriver;
   }
 
   @override
@@ -2500,30 +2717,42 @@
 
   @override
   void applyChangesToContext(Folder contextFolder, ChangeSet changeSet) {
-    Map<String, int> filePaths = currentContextFilePaths[contextFolder.path];
-    Set<Source> sources = currentContextSources[contextFolder.path];
+    if (currentDriver != null) {
+      changeSet.addedSources.forEach((source) {
+        currentDriver.addFile(source.fullName);
+      });
+      changeSet.changedSources.forEach((source) {
+        currentDriver.changeFile(source.fullName);
+      });
+      changeSet.removedSources.forEach((source) {
+        currentDriver.removeFile(source.fullName);
+      });
+    } else {
+      Map<String, int> filePaths = currentContextFilePaths[contextFolder.path];
+      Set<Source> sources = currentContextSources[contextFolder.path];
 
-    for (Source source in changeSet.addedSources) {
-      expect(filePaths, isNot(contains(source.fullName)));
-      filePaths[source.fullName] = now;
-      sources.add(source);
-    }
-    for (Source source in changeSet.removedSources) {
-      expect(filePaths, contains(source.fullName));
-      filePaths.remove(source.fullName);
-      sources.remove(source);
-    }
-    for (Source source in changeSet.changedSources) {
-      expect(filePaths, contains(source.fullName));
-      filePaths[source.fullName] = now;
-    }
+      for (Source source in changeSet.addedSources) {
+        expect(filePaths, isNot(contains(source.fullName)));
+        filePaths[source.fullName] = now;
+        sources.add(source);
+      }
+      for (Source source in changeSet.removedSources) {
+        expect(filePaths, contains(source.fullName));
+        filePaths.remove(source.fullName);
+        sources.remove(source);
+      }
+      for (Source source in changeSet.changedSources) {
+        expect(filePaths, contains(source.fullName));
+        filePaths[source.fullName] = now;
+      }
 
-    currentContext.applyChanges(changeSet);
+      currentContext.applyChanges(changeSet);
+    }
   }
 
   @override
   void applyFileRemoved(AnalysisDriver driver, String file) {
-    throw new StateError('Unexpected invocation of applyFileRemoved');
+    driver.removeFile(file);
   }
 
   void assertContextFiles(String contextPath, List<String> expectedFiles) {
@@ -2541,8 +2770,9 @@
   }
 
   @override
-  ContextBuilder createContextBuilder(Folder folder, AnalysisOptions options) {
-    DartSdkManager sdkManager = new DartSdkManager('/', false);
+  ContextBuilder createContextBuilder(Folder folder, AnalysisOptions options,
+      {bool useSummaries = false}) {
+    DartSdkManager sdkManager = new DartSdkManager('/', useSummaries);
     ContextBuilderOptions builderOptions = new ContextBuilderOptions();
     builderOptions.defaultOptions = options;
     ContextBuilder builder = new ContextBuilder(
diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart
index 0a8fd1c..24c5788 100644
--- a/pkg/analysis_server/test/domain_analysis_test.dart
+++ b/pkg/analysis_server/test/domain_analysis_test.dart
@@ -38,7 +38,6 @@
   void processRequiredPlugins(ServerPlugin serverPlugin) {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
 
     ExtensionManager manager = new ExtensionManager();
@@ -610,7 +609,6 @@
   void processRequiredPlugins(ServerPlugin serverPlugin) {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
 
     ExtensionManager manager = new ExtensionManager();
diff --git a/pkg/analysis_server/test/domain_diagnostic_test.dart b/pkg/analysis_server/test/domain_diagnostic_test.dart
index d24dea7..1842045 100644
--- a/pkg/analysis_server/test/domain_diagnostic_test.dart
+++ b/pkg/analysis_server/test/domain_diagnostic_test.dart
@@ -27,8 +27,6 @@
   void processRequiredPlugins(ServerPlugin serverPlugin) {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     plugins.add(serverPlugin);
 
     ExtensionManager manager = new ExtensionManager();
diff --git a/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart b/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
index a2ea8e7..3216977 100644
--- a/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/analysis_options_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.analysis_options_test;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:test/test.dart';
@@ -14,11 +12,12 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(OptionsIntegrationTest);
+    defineReflectiveTests(OptionsIntegrationTest_Driver);
   });
 }
 
-@reflectiveTest
-class OptionsIntegrationTest extends AbstractAnalysisServerIntegrationTest {
+class AbstractOptionsIntegrationTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_option_warning_newOptionFile() async {
     String options = sourcePath(AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
     writeFile(
@@ -73,3 +72,26 @@
     expect(error.location.startColumn, 7);
   }
 }
+
+@reflectiveTest
+class OptionsIntegrationTest extends AbstractOptionsIntegrationTest {}
+
+@reflectiveTest
+class OptionsIntegrationTest_Driver extends AbstractOptionsIntegrationTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_option_warning_newOptionFile() async {
+    //   TimeoutException after 0:00:30.000000: Test timed out after 30 seconds.
+    //return super.test_option_warning_newOptionFile();
+    fail('Test timed out');
+  }
+
+  @failingTest
+  test_option_warning_oldOptionFile() async {
+    //   TimeoutException after 0:00:30.000000: Test timed out after 30 seconds.
+    //return super.test_option_warning_oldOptionFile();
+    fail('Test timed out');
+  }
+}
diff --git a/pkg/analysis_server/test/integration/analysis/error_test.dart b/pkg/analysis_server/test/integration/analysis/error_test.dart
index f2abb51..2a86499 100644
--- a/pkg/analysis_server/test/integration/analysis/error_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/error_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.error;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -13,11 +11,11 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisErrorIntegrationTest);
+    defineReflectiveTests(AnalysisErrorIntegrationTest_Driver);
   });
 }
 
-@reflectiveTest
-class AnalysisErrorIntegrationTest
+class AbstractAnalysisErrorIntegrationTest
     extends AbstractAnalysisServerIntegrationTest {
   test_detect_simple_error() {
     String pathname = sourcePath('test.dart');
@@ -96,3 +94,24 @@
     expect(errors, isEmpty);
   }
 }
+
+@reflectiveTest
+class AnalysisErrorIntegrationTest
+    extends AbstractAnalysisErrorIntegrationTest {}
+
+@reflectiveTest
+class AnalysisErrorIntegrationTest_Driver
+    extends AbstractAnalysisErrorIntegrationTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_super_mixins_enabled() async {
+    //  Expected: empty
+    //    Actual: [
+    //    AnalysisError:{"severity":"ERROR","type":"COMPILE_TIME_ERROR","location":{"file":"/var/folders/00/0w95r000h01000cxqpysvccm003j4q/T/analysisServerfbuOQb/test.dart","offset":31,"length":1,"startLine":1,"startColumn":32},"message":"The class 'C' can't be used as a mixin because it extends a class other than Object.","correction":"","code":"mixin_inherits_from_not_object","hasFix":false},
+    //    AnalysisError:{"severity":"ERROR","type":"COMPILE_TIME_ERROR","location":{"file":"/var/folders/00/0w95r000h01000cxqpysvccm003j4q/T/analysisServerfbuOQb/test.dart","offset":31,"length":1,"startLine":1,"startColumn":32},"message":"The class 'C' can't be used as a mixin because it references 'super'.","correction":"","code":"mixin_references_super","hasFix":false}
+    //  ]
+    return super.test_super_mixins_enabled();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/analysis/get_errors_after_analysis_test.dart b/pkg/analysis_server/test/integration/analysis/get_errors_after_analysis_test.dart
index 37caf81..81ab905 100644
--- a/pkg/analysis_server/test/integration/analysis/get_errors_after_analysis_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_errors_after_analysis_test.dart
@@ -2,19 +2,26 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.get.errors.after.analysis;
-
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import 'get_errors.dart';
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(GetErrorsAfterTest);
+    defineReflectiveTests(GetErrorsAfterTest_Driver);
   });
 }
 
+class AbstractGetErrorsAfterTest extends AnalysisDomainGetErrorsTest {
+  AbstractGetErrorsAfterTest() : super(true);
+}
+
 @reflectiveTest
-class Test extends AnalysisDomainGetErrorsTest {
-  Test() : super(true);
+class GetErrorsAfterTest extends AbstractGetErrorsAfterTest {}
+
+@reflectiveTest
+class GetErrorsAfterTest_Driver extends AbstractGetErrorsAfterTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
 }
diff --git a/pkg/analysis_server/test/integration/analysis/get_errors_before_analysis_test.dart b/pkg/analysis_server/test/integration/analysis/get_errors_before_analysis_test.dart
index 4863a8d..c2b6c20 100644
--- a/pkg/analysis_server/test/integration/analysis/get_errors_before_analysis_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_errors_before_analysis_test.dart
@@ -2,19 +2,49 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.get.errors.before.analysis;
-
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import 'get_errors.dart';
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(GetErrorsBeforeTest);
+    defineReflectiveTests(GetErrorsBeforeTest_Driver);
   });
 }
 
+class AbstractGetErrorsBeforeTest extends AnalysisDomainGetErrorsTest {
+  AbstractGetErrorsBeforeTest() : super(false);
+}
+
 @reflectiveTest
-class Test extends AnalysisDomainGetErrorsTest {
-  Test() : super(false);
+class GetErrorsBeforeTest extends AbstractGetErrorsBeforeTest {}
+
+@reflectiveTest
+class GetErrorsBeforeTest_Driver extends AbstractGetErrorsBeforeTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_getErrors() {
+    //   UnimplementedError: Server responded with an error:
+    // {"error":{"code":"SERVER_ERROR","message":"Bad state: Should not be used with the new analysis driver","stackTrace":"
+    // #0      ContextManagerImpl.folderMap (package:analysis_server/src/context_manager.dart:550:7)
+    // #1      ContextManagerImpl.analysisContexts (package:analysis_server/src/context_manager.dart:546:53)
+    // #2      AnalysisServer.analysisContexts (package:analysis_server/src/analysis_server.dart:453:22)
+    // #3      AnalysisServer.getContextSourcePair (package:analysis_server/src/analysis_server.dart:722:37)
+    // #4      AnalysisServer.getAnalysisContext (package:analysis_server/src/analysis_server.dart:590:12)
+    // #5      AnalysisServer.onFileAnalysisComplete (package:analysis_server/src/analysis_server.dart:948:31)
+    // #6      AnalysisDomainHandler.getErrors (package:analysis_server/src/domain_analysis.dart:54:16)
+    // #7      AnalysisDomainHandler.handleRequest (package:analysis_server/src/domain_analysis.dart:201:16)
+    // #8      AnalysisServer.handleRequest.<anonymous closure>.<anonymous closure> (package:analysis_server/src/analysis_server.dart:873:45)
+    // #9      _PerformanceTagImpl.makeCurrentWhile (package:analyzer/src/generated/utilities_general.dart:189:15)
+    // #10     AnalysisServer.handleRequest.<anonymous closure> (package:analysis_server/src/analysis_server.dart:869:50)
+    // #11     _rootRun (dart:async/zone.dart:1150)
+    // #12     _CustomZone.run (dart:async/zone.dart:1026)
+    // #13     _CustomZone.runGuarded (dart:async/zone.dart:924)
+    // #14     runZoned (dart:async/zone.dart:1501)
+    // #15     AnalysisServer.handleRequest (package:analysis_server/src/analysis_server.dart:868:5)
+    return super.test_getErrors();
+  }
 }
diff --git a/pkg/analysis_server/test/integration/analysis/get_errors_nonStandard_sdk.dart b/pkg/analysis_server/test/integration/analysis/get_errors_nonStandard_sdk.dart
index 9d34855..6c91c80 100644
--- a/pkg/analysis_server/test/integration/analysis/get_errors_nonStandard_sdk.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_errors_nonStandard_sdk.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.get.errors;
-
 import 'dart:async';
 import 'dart:io';
 
@@ -19,6 +17,7 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisDomainGetErrorsTest);
+    defineReflectiveTests(AnalysisDomainGetErrorsTest_Driver);
   });
 }
 
@@ -26,11 +25,8 @@
  * Tests that when an SDK path is specified on the command-line (via the `--sdk`
  * argument) that the specified SDK is used.
  */
-@reflectiveTest
-class AnalysisDomainGetErrorsTest
+class AbstractAnalysisDomainGetErrorsTest
     extends AbstractAnalysisServerIntegrationTest {
-  AnalysisDomainGetErrorsTest();
-
   String createNonStandardSdk() {
     MockSdkLibrary fakeLibrary =
         new MockSdkLibrary('dart:fake', '/lib/fake/fake.dart', '');
@@ -97,3 +93,13 @@
     expect(errors[0].code, 'unused_import');
   }
 }
+
+@reflectiveTest
+class AnalysisDomainGetErrorsTest extends AbstractAnalysisDomainGetErrorsTest {}
+
+@reflectiveTest
+class AnalysisDomainGetErrorsTest_Driver
+    extends AbstractAnalysisDomainGetErrorsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
index 7c6a742..cf293bf 100644
--- a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.get.hover;
-
 import 'dart:async';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
@@ -16,11 +14,11 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisGetHoverIntegrationTest);
+    defineReflectiveTests(AnalysisGetHoverIntegrationTest_Driver);
   });
 }
 
-@reflectiveTest
-class AnalysisGetHoverIntegrationTest
+class AbstractAnalysisGetHoverIntegrationTest
     extends AbstractAnalysisServerIntegrationTest {
   /**
    * Pathname of the file containing Dart code.
@@ -189,3 +187,14 @@
     });
   }
 }
+
+@reflectiveTest
+class AnalysisGetHoverIntegrationTest
+    extends AbstractAnalysisGetHoverIntegrationTest {}
+
+@reflectiveTest
+class AnalysisGetHoverIntegrationTest_Driver
+    extends AbstractAnalysisGetHoverIntegrationTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test.dart b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
index bc20497..ca6e425 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.highlights;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -13,11 +11,12 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisHighlightsTest);
+    defineReflectiveTests(AnalysisHighlightsTest_Driver);
   });
 }
 
-@reflectiveTest
-class AnalysisHighlightsTest extends AbstractAnalysisServerIntegrationTest {
+class AbstractAnalysisHighlightsTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_highlights() {
     String pathname = sourcePath('test.dart');
     String text = r'''
@@ -145,3 +144,12 @@
     });
   }
 }
+
+@reflectiveTest
+class AnalysisHighlightsTest extends AbstractAnalysisHighlightsTest {}
+
+@reflectiveTest
+class AnalysisHighlightsTest_Driver extends AbstractAnalysisHighlightsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test2.dart b/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
index b1a70c5..b05aa1f 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.highlights2;
-
 import 'dart:async';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
@@ -15,11 +13,12 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisHighlightsTest);
+    defineReflectiveTests(AnalysisHighlightsTest_Driver);
   });
 }
 
-@reflectiveTest
-class AnalysisHighlightsTest extends AbstractAnalysisServerIntegrationTest {
+class AbstractAnalysisHighlightsTest
+    extends AbstractAnalysisServerIntegrationTest {
   Future startServer(
       {bool checked: true, int diagnosticPort, int servicesPort}) {
     return server.start(
@@ -160,3 +159,12 @@
     });
   }
 }
+
+@reflectiveTest
+class AnalysisHighlightsTest extends AbstractAnalysisHighlightsTest {}
+
+@reflectiveTest
+class AnalysisHighlightsTest_Driver extends AbstractAnalysisHighlightsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/lint_test.dart b/pkg/analysis_server/test/integration/analysis/lint_test.dart
index b8d212e..0a41fbf 100644
--- a/pkg/analysis_server/test/integration/analysis/lint_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/lint_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.lint;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:test/test.dart';
@@ -14,11 +12,12 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(LintIntegrationTest);
+    defineReflectiveTests(LintIntegrationTest_Driver);
   });
 }
 
-@reflectiveTest
-class LintIntegrationTest extends AbstractAnalysisServerIntegrationTest {
+class AbstractLintIntegrationTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_no_lints_when_not_specified() async {
     String source = sourcePath('test.dart');
     writeFile(
@@ -93,3 +92,12 @@
     expect(error.type, AnalysisErrorType.LINT);
   }
 }
+
+@reflectiveTest
+class LintIntegrationTest extends AbstractLintIntegrationTest {}
+
+@reflectiveTest
+class LintIntegrationTest_Driver extends AbstractLintIntegrationTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/navigation_test.dart b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
index d6ea41c..2dcb074 100644
--- a/pkg/analysis_server/test/integration/analysis/navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.navigation;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -13,11 +11,12 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(AnalysisNavigationTest);
+    defineReflectiveTests(AnalysisNavigationTest_Driver);
   });
 }
 
-@reflectiveTest
-class AnalysisNavigationTest extends AbstractAnalysisServerIntegrationTest {
+class AbstractAnalysisNavigationTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_navigation() {
     String pathname1 = sourcePath('test1.dart');
     String text1 = r'''
@@ -135,3 +134,12 @@
     });
   }
 }
+
+@reflectiveTest
+class AnalysisNavigationTest extends AbstractAnalysisNavigationTest {}
+
+@reflectiveTest
+class AnalysisNavigationTest_Driver extends AbstractAnalysisNavigationTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
index 2234205..69bd7e6 100644
--- a/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/occurrences_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.occurrences;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(OccurrencesTest);
+    defineReflectiveTests(OccurrencesTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractOccurrencesTest extends AbstractAnalysisServerIntegrationTest {
   test_occurrences() {
     String pathname = sourcePath('test.dart');
     String text = r'''
@@ -67,3 +65,18 @@
     });
   }
 }
+
+@reflectiveTest
+class OccurrencesTest extends AbstractOccurrencesTest {}
+
+@reflectiveTest
+class OccurrencesTest_Driver extends AbstractOccurrencesTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_occurrences() {
+    //  NoSuchMethodError: The getter 'iterator' was called on null.
+    return super.test_occurrences();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/analysis/outline_test.dart b/pkg/analysis_server/test/integration/analysis/outline_test.dart
index 23f2cbd..3e2e5a4 100644
--- a/pkg/analysis_server/test/integration/analysis/outline_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/outline_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.outline;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(OutlineTest);
+    defineReflectiveTests(OutlineTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractOutlineTest extends AbstractAnalysisServerIntegrationTest {
   /**
    * Verify that the range of source text covered by the given outline objects
    * is connected (the end of each object in the list corresponds to the start
@@ -83,3 +81,18 @@
     });
   }
 }
+
+@reflectiveTest
+class OutlineTest extends AbstractOutlineTest {}
+
+@reflectiveTest
+class OutlineTest_Driver extends AbstractOutlineTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_outline() {
+    //  NoSuchMethodError: The getter 'element' was called on null.
+    return super.test_outline();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/analysis/overrides_test.dart b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
index 74c179f..595d24d 100644
--- a/pkg/analysis_server/test/integration/analysis/overrides_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/overrides_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.overrides;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(OverridesTest);
+    defineReflectiveTests(OverridesTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractOverridesTest extends AbstractAnalysisServerIntegrationTest {
   test_overrides() {
     String pathname = sourcePath('test.dart');
     String text = r'''
@@ -122,3 +120,12 @@
     });
   }
 }
+
+@reflectiveTest
+class OverridesTest extends AbstractOverridesTest {}
+
+@reflectiveTest
+class OverridesTest_Driver extends AbstractOverridesTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/package_root_test.dart b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
index 5ad9c38..142d50b 100644
--- a/pkg/analysis_server/test/integration/analysis/package_root_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/package_root_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.packageRoot;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
@@ -13,12 +11,13 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(SetAnalysisRootsTest);
+    defineReflectiveTests(SetAnalysisRootsTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractSetAnalysisRootsTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_package_root() {
     String projPath = sourcePath('project');
     String mainPath = path.join(projPath, 'main.dart');
@@ -77,3 +76,18 @@
     });
   }
 }
+
+@reflectiveTest
+class SetAnalysisRootsTest extends AbstractSetAnalysisRootsTest {}
+
+@reflectiveTest
+class SetAnalysisRootsTest_Driver extends AbstractSetAnalysisRootsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_package_root() {
+    //  NoSuchMethodError: The getter 'iterator' was called on null.
+    return super.test_package_root();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart b/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
index abf05cf..adc6984 100644
--- a/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/reanalyze_concurrent_test.dart
@@ -8,8 +8,6 @@
  *
  * See dartbug.com/21448.
  */
-library test.integration.analysis.reanalyze_concurrent;
-
 import 'dart:async';
 
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -18,12 +16,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(ReanalyzeTest);
+    defineReflectiveTests(ReanalyzeTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractReanalyzeTest extends AbstractAnalysisServerIntegrationTest {
   test_reanalyze_concurrent() {
     String pathname = sourcePath('test.dart');
     String text = '''
@@ -49,3 +47,12 @@
     });
   }
 }
+
+@reflectiveTest
+class ReanalyzeTest extends AbstractReanalyzeTest {}
+
+@reflectiveTest
+class ReanalyzeTest_Driver extends AbstractReanalyzeTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart b/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
index ac5b889..fbd17ab 100644
--- a/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/reanalyze_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.reanalyze;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(ReanalyzeTest);
+    defineReflectiveTests(ReanalyzeTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractReanalyzeTest extends AbstractAnalysisServerIntegrationTest {
   test_reanalyze() {
     String pathname = sourcePath('test.dart');
     String text = 'main() {}';
@@ -40,3 +38,12 @@
     });
   }
 }
+
+@reflectiveTest
+class ReanalyzeTest extends AbstractReanalyzeTest {}
+
+@reflectiveTest
+class ReanalyzeTest_Driver extends AbstractReanalyzeTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
index b235a39..5ca5c08 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_list_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.update.content.list;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(UpdateContentTest);
+    defineReflectiveTests(UpdateContentTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractUpdateContentTest extends AbstractAnalysisServerIntegrationTest {
   test_updateContent_list() {
     String pathname = sourcePath('test.dart');
     String goodText = r'''
@@ -52,3 +50,12 @@
     });
   }
 }
+
+@reflectiveTest
+class UpdateContentTest extends AbstractUpdateContentTest {}
+
+@reflectiveTest
+class UpdateContentTest_Driver extends AbstractUpdateContentTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
index 1d275ce2..77338ef 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.analysis.update.content;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(UpdateContentTest);
+    defineReflectiveTests(UpdateContentTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractUpdateContentTest extends AbstractAnalysisServerIntegrationTest {
   test_updateContent() {
     String pathname = sourcePath('test.dart');
     String goodText = r'''
@@ -68,3 +66,19 @@
         });
   }
 }
+
+@reflectiveTest
+class UpdateContentTest extends AbstractUpdateContentTest {}
+
+@reflectiveTest
+class UpdateContentTest_Driver extends AbstractUpdateContentTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_updateContent() {
+    //  Expected: non-empty
+    //    Actual: []
+    return super.test_updateContent();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
index 653711f..34b455b 100644
--- a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
+++ b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.completion.get.suggestions;
-
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -12,12 +10,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(GetSuggestionsTest);
+    defineReflectiveTests(GetSuggestionsTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractGetSuggestionsTest extends AbstractAnalysisServerIntegrationTest {
   String path;
   String content;
   int completionOffset;
@@ -123,3 +121,26 @@
     });
   }
 }
+
+@reflectiveTest
+class GetSuggestionsTest extends AbstractGetSuggestionsTest {}
+
+@reflectiveTest
+class GetSuggestionsTest_Driver extends AbstractGetSuggestionsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+
+  @failingTest
+  test_getSuggestions_onlyOverlay() async {
+    // TimeoutException after 0:00:30.000000: Test timed out after 30 seconds.
+    //return super.test_getSuggestions_onlyOverlay();
+    fail('Test timed out');
+  }
+
+  @failingTest
+  test_getSuggestions_sourceMissing_noWait() {
+    //  Expected: same instance as 'exception from server'
+    //    Actual: CompletionGetSuggestionsResult:<{"id":"0"}>
+    return super.test_getSuggestions_sourceMissing_noWait();
+  }
+}
diff --git a/pkg/analysis_server/test/integration/integration_tests.dart b/pkg/analysis_server/test/integration/integration_tests.dart
index 71b5378..b278c96 100644
--- a/pkg/analysis_server/test/integration/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/integration_tests.dart
@@ -154,6 +154,11 @@
   }
 
   /**
+   * Return `true` if the new analysis driver should be used by these tests.
+   */
+  bool get enableNewAnalysisDriver => false;
+
+  /**
    * Print out any messages exchanged with the server.  If some messages have
    * already been exchanged with the server, they are printed out immediately.
    */
@@ -242,6 +247,7 @@
       server.start(
           checked: checked,
           diagnosticPort: diagnosticPort,
+          enableNewAnalysisDriver: enableNewAnalysisDriver,
           servicesPort: servicesPort);
 
   /**
@@ -636,6 +642,7 @@
       {bool checked: true,
       bool debugServer: false,
       int diagnosticPort,
+      bool enableNewAnalysisDriver: false,
       bool profileServer: false,
       String sdkPath,
       int servicesPort,
@@ -691,6 +698,9 @@
     if (useAnalysisHighlight2) {
       arguments.add('--useAnalysisHighlight2');
     }
+    if (enableNewAnalysisDriver) {
+      arguments.add('--enable-new-analysis-driver');
+    }
 //    print('Launching $serverPath');
 //    print('$dartBinary ${arguments.join(' ')}');
     return Process.start(dartBinary, arguments).then((Process process) {
diff --git a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
index bcfa73e..2e1e778 100644
--- a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.search.domain;
-
 import 'dart:async';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
@@ -14,57 +12,13 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(GetTypeHierarchyTest);
+    defineReflectiveTests(GetTypeHierarchyTest_Driver);
   });
 }
 
-/**
- * Results of a getTypeHierarchy request, processed for easier testing.
- */
-class HierarchyResults {
-  /**
-   * The list of hierarchy items from the result.
-   */
-  List<TypeHierarchyItem> items;
-
-  /**
-   * The first hierarchy item from the result, which represents the pivot
-   * class.
-   */
-  TypeHierarchyItem pivot;
-
-  /**
-   * A map from element name to item index.
-   */
-  Map<String, int> nameToIndex;
-
-  /**
-   * Create a [HierarchyResults] object based on the result from a
-   * getTypeHierarchy request.
-   */
-  HierarchyResults(this.items) {
-    pivot = items[0];
-    nameToIndex = <String, int>{};
-    for (int i = 0; i < items.length; i++) {
-      nameToIndex[items[i].classElement.name] = i;
-    }
-  }
-
-  /**
-   * Get an item by class name.
-   */
-  TypeHierarchyItem getItem(String name) {
-    if (nameToIndex.containsKey(name)) {
-      return items[nameToIndex[name]];
-    } else {
-      fail('Class $name not found in hierarchy results');
-      return null;
-    }
-  }
-}
-
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractGetTypeHierarchyTest
+    extends AbstractAnalysisServerIntegrationTest {
   /**
    * Pathname of the main file to run tests in.
    */
@@ -274,3 +228,57 @@
     }
   }
 }
+
+@reflectiveTest
+class GetTypeHierarchyTest extends AbstractGetTypeHierarchyTest {}
+
+@reflectiveTest
+class GetTypeHierarchyTest_Driver extends AbstractGetTypeHierarchyTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
+
+/**
+ * Results of a getTypeHierarchy request, processed for easier testing.
+ */
+class HierarchyResults {
+  /**
+   * The list of hierarchy items from the result.
+   */
+  List<TypeHierarchyItem> items;
+
+  /**
+   * The first hierarchy item from the result, which represents the pivot
+   * class.
+   */
+  TypeHierarchyItem pivot;
+
+  /**
+   * A map from element name to item index.
+   */
+  Map<String, int> nameToIndex;
+
+  /**
+   * Create a [HierarchyResults] object based on the result from a
+   * getTypeHierarchy request.
+   */
+  HierarchyResults(this.items) {
+    pivot = items[0];
+    nameToIndex = <String, int>{};
+    for (int i = 0; i < items.length; i++) {
+      nameToIndex[items[i].classElement.name] = i;
+    }
+  }
+
+  /**
+   * Get an item by class name.
+   */
+  TypeHierarchyItem getItem(String name) {
+    if (nameToIndex.containsKey(name)) {
+      return items[nameToIndex[name]];
+    } else {
+      fail('Class $name not found in hierarchy results');
+      return null;
+    }
+  }
+}
diff --git a/pkg/analysis_server/test/integration/server/get_version_test.dart b/pkg/analysis_server/test/integration/server/get_version_test.dart
index 223957b..4da351c 100644
--- a/pkg/analysis_server/test/integration/server/get_version_test.dart
+++ b/pkg/analysis_server/test/integration/server/get_version_test.dart
@@ -2,21 +2,28 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.server.get.version;
-
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import '../integration_tests.dart';
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(GetVersionTest);
+    defineReflectiveTests(GetVersionTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractGetVersionTest extends AbstractAnalysisServerIntegrationTest {
   test_getVersion() {
     return sendServerGetVersion();
   }
 }
+
+@reflectiveTest
+class GetVersionTest extends AbstractGetVersionTest {}
+
+@reflectiveTest
+class GetVersionTest_Driver extends AbstractGetVersionTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
index 2460ad9..d2a996d 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.server.set.subscriptions.invalid.service;
-
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -11,12 +9,13 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(SetSubscriptionsTest);
+    defineReflectiveTests(SetSubscriptionsTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractSetSubscriptionsTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_setSubscriptions_invalidService() {
     // TODO(paulberry): verify that if an invalid service is specified, the
     // current subscriptions are unchanged.
@@ -29,3 +28,12 @@
     });
   }
 }
+
+@reflectiveTest
+class SetSubscriptionsTest extends AbstractSetSubscriptionsTest {}
+
+@reflectiveTest
+class SetSubscriptionsTest_Driver extends AbstractSetSubscriptionsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
index b88618c..3316ddf 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.server.set.subscriptions;
-
 import 'dart:async';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
@@ -14,12 +12,13 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(SetSubscriptionsTest);
+    defineReflectiveTests(SetSubscriptionsTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractSetSubscriptionsTest
+    extends AbstractAnalysisServerIntegrationTest {
   test_setSubscriptions() {
     bool statusReceived = false;
     Completer analysisBegun = new Completer();
@@ -60,3 +59,12 @@
     });
   }
 }
+
+@reflectiveTest
+class SetSubscriptionsTest extends AbstractSetSubscriptionsTest {}
+
+@reflectiveTest
+class SetSubscriptionsTest_Driver extends AbstractSetSubscriptionsTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/shutdown_test.dart b/pkg/analysis_server/test/integration/server/shutdown_test.dart
index c919d4e..53a01a9 100644
--- a/pkg/analysis_server/test/integration/server/shutdown_test.dart
+++ b/pkg/analysis_server/test/integration/server/shutdown_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.server.shutdown;
-
 import 'dart:async';
 
 import 'package:test/test.dart';
@@ -13,12 +11,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(ShutdownTest);
+    defineReflectiveTests(ShutdownTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractShutdownTest extends AbstractAnalysisServerIntegrationTest {
   test_shutdown() {
     return sendServerShutdown().then((_) {
       return new Future.delayed(new Duration(seconds: 1)).then((_) {
@@ -31,3 +29,12 @@
     });
   }
 }
+
+@reflectiveTest
+class ShutdownTest extends AbstractShutdownTest {}
+
+@reflectiveTest
+class ShutdownTest_Driver extends AbstractShutdownTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/status_test.dart b/pkg/analysis_server/test/integration/server/status_test.dart
index 9222934..6f33a10 100644
--- a/pkg/analysis_server/test/integration/server/status_test.dart
+++ b/pkg/analysis_server/test/integration/server/status_test.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library test.integration.server.status;
-
 import 'dart:async';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
@@ -14,12 +12,12 @@
 
 main() {
   defineReflectiveSuite(() {
-    defineReflectiveTests(Test);
+    defineReflectiveTests(StatusTest);
+    defineReflectiveTests(StatusTest_Driver);
   });
 }
 
-@reflectiveTest
-class Test extends AbstractAnalysisServerIntegrationTest {
+class AbstractStatusTest extends AbstractAnalysisServerIntegrationTest {
   test_status() {
     // After we kick off analysis, we should get one server.status message with
     // analyzing=true, and another server.status message after that with
@@ -52,3 +50,12 @@
     });
   }
 }
+
+@reflectiveTest
+class StatusTest extends AbstractStatusTest {}
+
+@reflectiveTest
+class StatusTest_Driver extends AbstractStatusTest {
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
index 67e691a..d212a5f 100644
--- a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
@@ -11,6 +11,7 @@
 import 'package:analysis_server/src/services/completion/completion_performance.dart';
 import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
 import 'package:analysis_server/src/services/completion/dart/imported_reference_contributor.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/task/dart.dart';
 import 'package:test/test.dart';
@@ -76,7 +77,8 @@
     var directives = request.target.unit.directives;
 
     // Assert that the import does not have an export namespace
-    expect(directives[0].element?.library?.exportNamespace, isNull);
+    Element element = resolutionMap.elementDeclaredByDirective(directives[0]);
+    expect(element?.library?.exportNamespace, isNull);
 
     // Resolve directives
     var importCompleter = new Completer<List<ImportElement>>();
diff --git a/pkg/analysis_server/test/services/correction/assist_test.dart b/pkg/analysis_server/test/services/correction/assist_test.dart
index a2abeee..13d40c2 100644
--- a/pkg/analysis_server/test/services/correction/assist_test.dart
+++ b/pkg/analysis_server/test/services/correction/assist_test.dart
@@ -10,6 +10,7 @@
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/services/correction/assist.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:plugin/manager.dart';
@@ -65,7 +66,11 @@
    */
   assertNoAssist(AssistKind kind) async {
     List<Assist> assists = await computeAssists(
-        plugin, context, testUnit.element.source, offset, length);
+        plugin,
+        context,
+        resolutionMap.elementDeclaredByCompilationUnit(testUnit).source,
+        offset,
+        length);
     for (Assist assist in assists) {
       if (assist.kind == kind) {
         throw fail('Unexpected assist $kind in\n${assists.join('\n')}');
@@ -2683,8 +2688,8 @@
 
   test_invalidSelection() async {
     resolveTestUnit('');
-    List<Assist> assists =
-        await computeAssists(plugin, context, testUnit.element.source, -1, 0);
+    List<Assist> assists = await computeAssists(plugin, context,
+        resolutionMap.elementDeclaredByCompilationUnit(testUnit).source, -1, 0);
     expect(assists, isEmpty);
   }
 
@@ -4158,7 +4163,11 @@
    */
   Future<Assist> _assertHasAssist(AssistKind kind) async {
     List<Assist> assists = await computeAssists(
-        plugin, context, testUnit.element.source, offset, length);
+        plugin,
+        context,
+        resolutionMap.elementDeclaredByCompilationUnit(testUnit).source,
+        offset,
+        length);
     for (Assist assist in assists) {
       if (assist.kind == kind) {
         return assist;
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index 1aa9b1c..26f4178 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -11,6 +11,7 @@
     hide AnalysisError;
 import 'package:analysis_server/src/services/correction/fix.dart';
 import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/source/package_map_resolver.dart';
@@ -5301,7 +5302,10 @@
   void findLint(String src, String lintCode, {int length: 1}) {
     int errorOffset = src.indexOf('/*LINT*/');
     resolveTestUnit(src.replaceAll('/*LINT*/', ''));
-    error = new AnalysisError(testUnit.element.source, errorOffset, length,
+    error = new AnalysisError(
+        resolutionMap.elementDeclaredByCompilationUnit(testUnit).source,
+        errorOffset,
+        length,
         new LintCode(lintCode, '<ignored>'));
   }
 
diff --git a/pkg/analysis_server/test/services/linter/linter_test.dart b/pkg/analysis_server/test/services/linter/linter_test.dart
index 5ac13392..f0dd92d 100644
--- a/pkg/analysis_server/test/services/linter/linter_test.dart
+++ b/pkg/analysis_server/test/services/linter/linter_test.dart
@@ -4,11 +4,12 @@
 
 library test.services.linter;
 
-import 'package:analysis_server/src/services/linter/linter.dart';
 import 'package:analyzer/analyzer.dart';
 import 'package:analyzer/source/analysis_options_provider.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/lint/options_rule_validator.dart';
+import 'package:linter/src/rules.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -29,6 +30,7 @@
   List<AnalysisError> get errors => recorder.errors;
 
   setUp() {
+    registerLintRules();
     recorder = new RecordingErrorListener();
     reporter = new ErrorReporter(recorder, new _TestSource());
   }
diff --git a/pkg/analysis_server/test/services/search/hierarchy_test.dart b/pkg/analysis_server/test/services/search/hierarchy_test.dart
index 618b868..136d12e 100644
--- a/pkg/analysis_server/test/services/search/hierarchy_test.dart
+++ b/pkg/analysis_server/test/services/search/hierarchy_test.dart
@@ -289,36 +289,6 @@
     }
   }
 
-  Future test_getSubClasses() {
-    _indexTestUnit('''
-class A {}
-class B extends A {}
-class C extends B {}
-class D extends B implements A {}
-class M {}
-class E extends A with M {}
-''');
-    ClassElement classA = findElement("A");
-    ClassElement classB = findElement("B");
-    ClassElement classC = findElement("C");
-    ClassElement classD = findElement("D");
-    ClassElement classM = findElement("M");
-    ClassElement classE = findElement("E");
-    var futureA = getSubClasses(searchEngine, classA).then((subs) {
-      expect(subs, unorderedEquals([classB, classC, classD, classE]));
-    });
-    var futureB = getSubClasses(searchEngine, classB).then((subs) {
-      expect(subs, unorderedEquals([classC, classD]));
-    });
-    var futureC = getSubClasses(searchEngine, classC).then((subs) {
-      expect(subs, isEmpty);
-    });
-    var futureM = getSubClasses(searchEngine, classM).then((subs) {
-      expect(subs, unorderedEquals([classE]));
-    });
-    return Future.wait([futureA, futureB, futureC, futureM]);
-  }
-
   void test_getSuperClasses() {
     _indexTestUnit('''
 class A {}
diff --git a/pkg/analysis_server/test/services/search/search_engine2_test.dart b/pkg/analysis_server/test/services/search/search_engine2_test.dart
new file mode 100644
index 0000000..13a3c2e
--- /dev/null
+++ b/pkg/analysis_server/test/services/search/search_engine2_test.dart
@@ -0,0 +1,154 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/src/services/search/search_engine.dart';
+import 'package:analysis_server/src/services/search/search_engine_internal2.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/file_system/memory_file_system.dart';
+import 'package:analyzer/src/dart/analysis/byte_store.dart';
+import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/dart/analysis/file_state.dart';
+import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../../mock_sdk.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(SearchEngineImpl2Test);
+  });
+}
+
+@reflectiveTest
+class SearchEngineImpl2Test {
+  static final MockSdk sdk = new MockSdk();
+
+  final MemoryResourceProvider provider = new MemoryResourceProvider();
+  final ByteStore byteStore = new MemoryByteStore();
+  final FileContentOverlay contentOverlay = new FileContentOverlay();
+
+  final StringBuffer logBuffer = new StringBuffer();
+  PerformanceLog logger;
+
+  AnalysisDriverScheduler scheduler;
+
+  void setUp() {
+    logger = new PerformanceLog(logBuffer);
+    scheduler = new AnalysisDriverScheduler(logger);
+    scheduler.start();
+  }
+
+  test_searchAllSubtypes() async {
+    var p = _p('/test.dart');
+
+    provider.newFile(
+        p,
+        '''
+class T {}
+class A extends T {}
+class B extends A {}
+class C implements B {}
+''');
+
+    var driver = _newDriver();
+    driver.addFile(p);
+
+    var resultA = await driver.getResult(p);
+    ClassElement element = resultA.unit.element.types[0];
+
+    var searchEngine = new SearchEngineImpl2([driver]);
+    Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
+    expect(subtypes, hasLength(3));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
+  }
+
+  test_searchAllSubtypes_acrossDrivers() async {
+    var a = _p('/test/a.dart');
+    var b = _p('/test/b.dart');
+
+    provider.newFile(
+        a,
+        '''
+class T {}
+class A extends T {}
+''');
+    provider.newFile(
+        b,
+        '''
+import 'a.dart';
+class B extends A {}
+class C extends B {}
+''');
+
+    var driver1 = _newDriver();
+    var driver2 = _newDriver();
+
+    driver1.addFile(a);
+    driver2.addFile(b);
+
+    var resultA = await driver1.getResult(a);
+    ClassElement element = resultA.unit.element.types[0];
+
+    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
+    Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
+    expect(subtypes, hasLength(3));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
+  }
+
+  test_searchReferences() async {
+    var a = _p('/test/a.dart');
+    var b = _p('/test/b.dart');
+
+    provider.newFile(
+        a,
+        '''
+class T {}
+T a;
+''');
+    provider.newFile(
+        b,
+        '''
+import 'a.dart';
+T b;
+''');
+
+    var driver1 = _newDriver();
+    var driver2 = _newDriver();
+
+    driver1.addFile(a);
+    driver2.addFile(b);
+
+    var resultA = await driver1.getResult(a);
+    ClassElement element = resultA.unit.element.types[0];
+
+    var searchEngine = new SearchEngineImpl2([driver1, driver2]);
+    List<SearchMatch> matches = await searchEngine.searchReferences(element);
+    expect(matches, hasLength(2));
+    expect(
+        matches, contains(predicate((SearchMatch m) => m.element.name == 'a')));
+    expect(
+        matches, contains(predicate((SearchMatch m) => m.element.name == 'b')));
+  }
+
+  AnalysisDriver _newDriver() => new AnalysisDriver(
+      scheduler,
+      logger,
+      provider,
+      byteStore,
+      contentOverlay,
+      new SourceFactory(
+          [new DartUriResolver(sdk), new ResourceUriResolver(provider)],
+          null,
+          provider),
+      new AnalysisOptionsImpl()..strongMode = true);
+
+  String _p(String path) => provider.convertPath(path);
+}
diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
index 8072301..24c0a9f 100644
--- a/pkg/analysis_server/test/services/search/search_engine_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
@@ -82,16 +82,11 @@
 class C implements B {}
 ''');
     ClassElement element = findElement('T');
-    ClassElement elementA = findElement('A');
-    ClassElement elementB = findElement('B');
-    ClassElement elementC = findElement('C');
-    var expected = [
-      _expectId(elementA, MatchKind.DECLARATION, 'A extends T'),
-      _expectId(elementB, MatchKind.DECLARATION, 'B extends A'),
-      _expectId(elementC, MatchKind.DECLARATION, 'C implements B')
-    ];
-    List<SearchMatch> matches = await searchEngine.searchAllSubtypes(element);
-    _assertMatches(matches, expected);
+    Set<ClassElement> subtypes = await searchEngine.searchAllSubtypes(element);
+    expect(subtypes, hasLength(3));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'A')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'B')));
+    expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
   }
 
   test_searchMemberDeclarations() async {
diff --git a/pkg/analysis_server/test/services/search/test_all.dart b/pkg/analysis_server/test/services/search/test_all.dart
index 39251a5..c12c736 100644
--- a/pkg/analysis_server/test/services/search/test_all.dart
+++ b/pkg/analysis_server/test/services/search/test_all.dart
@@ -7,6 +7,7 @@
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import 'hierarchy_test.dart' as hierarchy_test;
+import 'search_engine2_test.dart' as search_engine2_test;
 import 'search_engine_test.dart' as search_engine_test;
 
 /**
@@ -15,6 +16,7 @@
 main() {
   defineReflectiveSuite(() {
     hierarchy_test.main();
+    search_engine2_test.main();
     search_engine_test.main();
   }, name: 'search');
 }
diff --git a/pkg/analysis_server/test/single_context_manager_test.dart b/pkg/analysis_server/test/single_context_manager_test.dart
index eafa488..3e5bdb2 100644
--- a/pkg/analysis_server/test/single_context_manager_test.dart
+++ b/pkg/analysis_server/test/single_context_manager_test.dart
@@ -7,13 +7,14 @@
 import 'dart:core';
 
 import 'package:analysis_server/src/single_context_manager.dart';
+import 'package:analysis_server/src/utilities/null_string_sink.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
+import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/source_io.dart';
 import 'package:analyzer/src/util/glob.dart';
-import 'package:linter/src/plugin/linter_plugin.dart';
 import 'package:path/path.dart' as path;
 import 'package:plugin/manager.dart';
 import 'package:plugin/plugin.dart';
@@ -66,7 +67,10 @@
     DartSdkManager sdkManager = new DartSdkManager('', false);
     manager = new SingleContextManager(resourceProvider, sdkManager,
         (_) => packageResolver, analysisFilesGlobs, new AnalysisOptionsImpl());
-    callbacks = new TestContextManagerCallbacks(resourceProvider);
+    PerformanceLog logger = new PerformanceLog(new NullStringSink());
+    AnalysisDriverScheduler scheduler = new AnalysisDriverScheduler(logger);
+    callbacks =
+        new TestContextManagerCallbacks(resourceProvider, logger, scheduler);
     manager.callbacks = callbacks;
   }
 
@@ -532,9 +536,6 @@
   void _processRequiredPlugins() {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
-    plugins.add(linterPlugin);
     ExtensionManager manager = new ExtensionManager();
     manager.processPlugins(plugins);
   }
diff --git a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
index a221d9b..2849493 100644
--- a/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
+++ b/pkg/analysis_server/test/src/utilities/change_builder_dart_test.dart
@@ -9,6 +9,7 @@
 import 'package:analysis_server/src/provisional/edit/utilities/change_builder_dart.dart';
 import 'package:analysis_server/src/utilities/change_builder_dart.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:test/test.dart';
@@ -62,8 +63,9 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(0, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeClassDeclaration('C', interfaces: [declaration.element.type]);
+        (builder as DartEditBuilder).writeClassDeclaration('C', interfaces: [
+          resolutionMap.elementDeclaredByClassDeclaration(declaration).type
+        ]);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -111,8 +113,9 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(0, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeClassDeclaration('C', mixins: [classA.element.type]);
+        (builder as DartEditBuilder).writeClassDeclaration('C', mixins: [
+          resolutionMap.elementDeclaredByClassDeclaration(classA).type
+        ]);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -130,7 +133,11 @@
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(0, (EditBuilder builder) {
         (builder as DartEditBuilder).writeClassDeclaration('C',
-            mixins: [classB.element.type], superclass: classA.element.type);
+            mixins: [
+              resolutionMap.elementDeclaredByClassDeclaration(classB).type
+            ],
+            superclass:
+                resolutionMap.elementDeclaredByClassDeclaration(classA).type);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -168,8 +175,10 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(0, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeClassDeclaration('C', superclass: declaration.element.type);
+        (builder as DartEditBuilder).writeClassDeclaration('C',
+            superclass: resolutionMap
+                .elementDeclaredByClassDeclaration(declaration)
+                .type);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -290,7 +299,10 @@
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
         (builder as DartEditBuilder).writeFieldDeclaration('f',
-            type: declaration.element.type, typeGroupName: 'type');
+            type: resolutionMap
+                .elementDeclaredByClassDeclaration(declaration)
+                .type,
+            typeGroupName: 'type');
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -375,7 +387,9 @@
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
         (builder as DartEditBuilder).writeGetterDeclaration('g',
-            returnType: classA.element.type, returnTypeGroupName: 'returnType');
+            returnType:
+                resolutionMap.elementDeclaredByClassDeclaration(classA).type,
+            returnTypeGroupName: 'returnType');
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -405,8 +419,10 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeOverrideOfInheritedMember(declaration.element.methods[0]);
+        (builder as DartEditBuilder).writeOverrideOfInheritedMember(
+            resolutionMap
+                .elementDeclaredByClassDeclaration(declaration)
+                .methods[0]);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -425,7 +441,7 @@
     FunctionDeclaration f = unit.declarations[0];
     FormalParameterList parameters = f.functionExpression.parameters;
     Iterable<ParameterElement> elements = parameters.parameters
-        .map((FormalParameter parameter) => parameter.element);
+        .map(resolutionMap.elementDeclaredByFormalParameter);
 
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
@@ -444,7 +460,7 @@
     FunctionDeclaration f = unit.declarations[0];
     FormalParameterList parameters = f.functionExpression.parameters;
     Iterable<ParameterElement> elements = parameters.parameters
-        .map((FormalParameter parameter) => parameter.element);
+        .map(resolutionMap.elementDeclaredByFormalParameter);
 
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
@@ -463,7 +479,7 @@
     FunctionDeclaration f = unit.declarations[0];
     FormalParameterList parameters = f.functionExpression.parameters;
     Iterable<ParameterElement> elements = parameters.parameters
-        .map((FormalParameter parameter) => parameter.element);
+        .map(resolutionMap.elementDeclaredByFormalParameter);
 
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
@@ -531,8 +547,8 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeParameterSource(classA.element.type, 'a');
+        (builder as DartEditBuilder).writeParameterSource(
+            resolutionMap.elementDeclaredByClassDeclaration(classA).type, 'a');
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -547,8 +563,11 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeType(unit.element.context.typeProvider.dynamicType);
+        (builder as DartEditBuilder).writeType(resolutionMap
+            .elementDeclaredByCompilationUnit(unit)
+            .context
+            .typeProvider
+            .dynamicType);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -565,8 +584,12 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeType(classB.element.type.instantiate([classA.element.type]));
+        (builder as DartEditBuilder).writeType(resolutionMap
+            .elementDeclaredByClassDeclaration(classB)
+            .type
+            .instantiate([
+          resolutionMap.elementDeclaredByClassDeclaration(classA).type
+        ]));
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -582,8 +605,9 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeType(classC.element.type, groupName: 'type');
+        (builder as DartEditBuilder).writeType(
+            resolutionMap.elementDeclaredByClassDeclaration(classC).type,
+            groupName: 'type');
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -605,8 +629,10 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder).writeType(classC.element.type,
-            addSupertypeProposals: true, groupName: 'type');
+        (builder as DartEditBuilder).writeType(
+            resolutionMap.elementDeclaredByClassDeclaration(classC).type,
+            addSupertypeProposals: true,
+            groupName: 'type');
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -653,7 +679,11 @@
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
         (builder as DartEditBuilder).writeType(
-            unit.element.context.typeProvider.dynamicType,
+            resolutionMap
+                .elementDeclaredByCompilationUnit(unit)
+                .context
+                .typeProvider
+                .dynamicType,
             required: true);
       });
     });
@@ -670,8 +700,9 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder)
-            .writeType(classA.element.type, required: true);
+        (builder as DartEditBuilder).writeType(
+            resolutionMap.elementDeclaredByClassDeclaration(classA).type,
+            required: true);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -702,7 +733,8 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilder).writeType(classA.element.type);
+        (builder as DartEditBuilder).writeType(
+            resolutionMap.elementDeclaredByClassDeclaration(classA).type);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -734,8 +766,10 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilderImpl)
-            .writeTypes([classA.element.type, classB.element.type]);
+        (builder as DartEditBuilderImpl).writeTypes([
+          resolutionMap.elementDeclaredByClassDeclaration(classA).type,
+          resolutionMap.elementDeclaredByClassDeclaration(classB).type
+        ]);
       });
     });
     SourceEdit edit = getEdit(builder);
@@ -767,9 +801,10 @@
     DartChangeBuilderImpl builder = new DartChangeBuilderImpl(context);
     builder.addFileEdit(source, 1, (FileEditBuilder builder) {
       builder.addInsertion(content.length - 1, (EditBuilder builder) {
-        (builder as DartEditBuilderImpl).writeTypes(
-            [classA.element.type, classB.element.type],
-            prefix: 'implements ');
+        (builder as DartEditBuilderImpl).writeTypes([
+          resolutionMap.elementDeclaredByClassDeclaration(classA).type,
+          resolutionMap.elementDeclaredByClassDeclaration(classB).type
+        ], prefix: 'implements ');
       });
     });
     SourceEdit edit = getEdit(builder);
diff --git a/pkg/analyzer/benchmark/errors_in_all_libraries.dart b/pkg/analyzer/benchmark/errors_in_all_libraries.dart
index ad004bf..d46edba 100644
--- a/pkg/analyzer/benchmark/errors_in_all_libraries.dart
+++ b/pkg/analyzer/benchmark/errors_in_all_libraries.dart
@@ -9,6 +9,7 @@
 /// it easier to connect to this with observatory.
 import 'dart:io';
 
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
@@ -61,7 +62,8 @@
 
     // Walk all of the transitively referenced libraries and compute errors.
     var errorCount = 0;
-    var allLibraries = _reachableLibraries(initialLibrary.element.library);
+    var allLibraries = _reachableLibraries(
+        resolutionMap.elementDeclaredByCompilationUnit(initialLibrary).library);
     for (var lib in allLibraries) {
       for (var unit in lib.units) {
         var source = unit.source;
diff --git a/pkg/analyzer/lib/dart/ast/resolution_base_classes.dart b/pkg/analyzer/lib/dart/ast/resolution_base_classes.dart
new file mode 100644
index 0000000..54ca0d8
--- /dev/null
+++ b/pkg/analyzer/lib/dart/ast/resolution_base_classes.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/**
+ * Abstract base class for a resolved element maintained in an AST data
+ * structure.
+ *
+ * This abstract type decouples the AST representation from depending on the
+ * element model.
+ */
+abstract class ResolutionTarget {}
+
+/**
+ * Abstract base class for a resolved type maintained in AST data structure.
+ *
+ * This abstract type decouples the AST representation from depending on the
+ * type model.
+ */
+abstract class ResolutionType {}
diff --git a/pkg/analyzer/lib/dart/ast/resolution_map.dart b/pkg/analyzer/lib/dart/ast/resolution_map.dart
new file mode 100644
index 0000000..37ee054
--- /dev/null
+++ b/pkg/analyzer/lib/dart/ast/resolution_map.dart
@@ -0,0 +1,291 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/type.dart';
+
+/**
+ * A collection of methods which may be used to map from nodes in a resolved AST
+ * to elements and types in the element model.
+ *
+ * Clients should not extend, implement or mix-in this class.
+ */
+abstract class ResolutionMap {
+  /**
+   * Return the best element available for the function being invoked at [node].
+   * If resolution was able to find a better element based on type propagation,
+   * that element will be returned. Otherwise, the element found using the
+   * result of static analysis will be returned. If resolution has not been
+   * performed, then `null` will be returned.
+   */
+  ExecutableElement bestElementForFunctionExpressionInvocation(
+      FunctionExpressionInvocation node);
+
+  /**
+   * Return the best element available for the identifier [node]. If resolution
+   * was able to find a better element based on type propagation, that element
+   * will be returned. Otherwise, the element found using the result of static
+   * analysis will be returned. If resolution has not been performed, then
+   * `null` will be returned.
+   */
+  Element bestElementForIdentifier(Identifier node);
+
+  /**
+   * Return the best element available for the expression [node]. If resolution
+   * was able to find a better element based on type propagation, that element
+   * will be returned. Otherwise, the element found using the result of static
+   * analysis will be returned. If resolution has not been performed, then
+   * `null` will be returned.
+   */
+  MethodElement bestElementForMethodReference(MethodReferenceExpression node);
+
+  /**
+   * Return the best parameter element information available for the expression
+   * [node]. If type propagation was able to find a better parameter element
+   * than static analysis, that type will be returned. Otherwise, the result of
+   * static analysis will be returned.
+   */
+  ParameterElement bestParameterElementForExpression(Expression node);
+
+  /**
+   * Return the best type information available for the expression [node]. If
+   * type propagation was able to find a better type than static analysis, that
+   * type will be returned. Otherwise, the result of static analysis will be
+   * returned. If no type analysis has been performed, then the type 'dynamic'
+   * will be returned.
+   */
+  DartType bestTypeForExpression(Expression node);
+
+  /**
+   * Return the element annotation representing the annotation [node] in the
+   * element model.
+   */
+  ElementAnnotation elementAnnotationForAnnotation(Annotation node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  ClassElement elementDeclaredByClassDeclaration(ClassDeclaration node);
+
+  /**
+   * Return the element associated with the compilation unit [node], or `null`
+   * if the AST structure has not been resolved.
+   */
+  CompilationUnitElement elementDeclaredByCompilationUnit(CompilationUnit node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  ConstructorElement elementDeclaredByConstructorDeclaration(
+      ConstructorDeclaration node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  Element elementDeclaredByDeclaration(Declaration node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  LocalVariableElement elementDeclaredByDeclaredIdentifier(
+      DeclaredIdentifier node);
+
+  /**
+   * Return the element associated with the directive [node], or `null` if the
+   * AST structure has not been resolved or if this directive could not be
+   * resolved.
+   */
+  Element elementDeclaredByDirective(Directive node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  ClassElement elementDeclaredByEnumDeclaration(EnumDeclaration node);
+
+  /**
+   * Return the element representing the parameter [node], or `null` if this
+   * parameter has not been resolved.
+   */
+  ParameterElement elementDeclaredByFormalParameter(FormalParameter node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  ExecutableElement elementDeclaredByFunctionDeclaration(
+      FunctionDeclaration node);
+
+  /**
+   * Return the element associated with the function expression [node], or
+   * `null` if the AST structure has not been resolved.
+   */
+  ExecutableElement elementDeclaredByFunctionExpression(
+      FunctionExpression node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  ExecutableElement elementDeclaredByMethodDeclaration(MethodDeclaration node);
+
+  /**
+   * Return the element associated with the declaration [node], or `null` if
+   * either this node corresponds to a list of declarations or if the AST
+   * structure has not been resolved.
+   */
+  VariableElement elementDeclaredByVariableDeclaration(
+      VariableDeclaration node);
+
+  /**
+   * Return the element associated with the annotation [node], or `null` if the
+   * AST structure has not been resolved or if this annotation could not be
+   * resolved.
+   */
+  Element elementForAnnotation(Annotation node);
+
+  /**
+   * Return the element representing the parameter being named by the
+   * expression [node], or `null` if the AST structure has not been resolved or
+   * if there is no parameter with the same name as this expression.
+   */
+  ParameterElement elementForNamedExpression(NamedExpression node);
+
+  /**
+   * Return a list containing the elements representing the parameters in the
+   * list [node]. The list will contain `null`s if the parameters in this list
+   * have not been resolved.
+   */
+  List<ParameterElement> parameterElementsForFormalParameterList(
+      FormalParameterList node);
+
+  /**
+   * Return the element associated with the function being invoked at [node]
+   * based on propagated type information, or `null` if the AST structure has
+   * not been resolved or the function could not be resolved.
+   */
+  ExecutableElement propagatedElementForFunctionExpressionInvocation(
+      FunctionExpressionInvocation node);
+
+  /**
+   * Return the element associated with the identifier [node] based on
+   * propagated type information, or `null` if the AST structure has not been
+   * resolved or if this identifier could not be resolved. One example of the
+   * latter case is an identifier that is not defined within the scope in which
+   * it appears.
+   */
+  Element propagatedElementForIdentifier(Identifier node);
+
+  /**
+   * Return the element associated with the expression [node] based on
+   * propagated types, or `null` if the AST structure has not been resolved, or
+   * there is no meaningful propagated element to return (e.g. because this is a
+   * non-compound assignment expression, or because the method referred to could
+   * not be resolved).
+   */
+  MethodElement propagatedElementForMethodReference(
+      MethodReferenceExpression node);
+
+  /**
+   * If the expression [node] is an argument to an invocation, and the AST
+   * structure has been resolved, and the function being invoked is known based
+   * on propagated type information, and [node] corresponds to one of the
+   * parameters of the function being invoked, then return the parameter element
+   * representing the parameter to which the value of [node] will be
+   * bound. Otherwise, return `null`.
+   */
+  ParameterElement propagatedParameterElementForExpression(Expression node);
+
+  /**
+   * Return the propagated type of the expression [node], or `null` if type
+   * propagation has not been performed on the AST structure.
+   */
+  DartType propagatedTypeForExpression(Expression node);
+
+  /**
+   * Return the element associated with the constructor referenced by [node]
+   * based on static type information, or `null` if the AST structure has not
+   * been resolved or if the constructor could not be resolved.
+   */
+  ConstructorElement staticElementForConstructorReference(
+      ConstructorReferenceNode node);
+
+  /**
+   * Return the element associated with the function being invoked at [node]
+   * based on static type information, or `null` if the AST structure has not
+   * been resolved or the function could not be resolved.
+   */
+  ExecutableElement staticElementForFunctionExpressionInvocation(
+      FunctionExpressionInvocation node);
+
+  /**
+   * Return the element associated with the identifier [node] based on static
+   * type information, or `null` if the AST structure has not been resolved or
+   * if this identifier could not be resolved. One example of the latter case is
+   * an identifier that is not defined within the scope in which it appears
+   */
+  Element staticElementForIdentifier(Identifier node);
+
+  /**
+   * Return the element associated with the expression [node] based on the
+   * static types, or `null` if the AST structure has not been resolved, or
+   * there is no meaningful static element to return (e.g. because this is a
+   * non-compound assignment expression, or because the method referred to could
+   * not be resolved).
+   */
+  MethodElement staticElementForMethodReference(MethodReferenceExpression node);
+
+  /**
+   * Return the function type of the invocation [node] based on the static type
+   * information, or `null` if the AST structure has not been resolved, or if
+   * the invoke could not be resolved.
+   *
+   * This will usually be a [FunctionType], but it can also be an
+   * [InterfaceType] with a `call` method, `dynamic`, `Function`, or a `@proxy`
+   * interface type that implements `Function`.
+   */
+  DartType staticInvokeTypeForInvocationExpression(InvocationExpression node);
+
+  /**
+   * If the expression [node] is an argument to an invocation, and the AST
+   * structure has been resolved, and the function being invoked is known based
+   * on static type information, and [node] corresponds to one of the parameters
+   * of the function being invoked, then return the parameter element
+   * representing the parameter to which the value of [node] will be
+   * bound. Otherwise, return `null`.
+   */
+  ParameterElement staticParameterElementForExpression(Expression node);
+
+  /**
+   * Return the static type of the expression [node], or `null` if the AST
+   * structure has not been resolved.
+   */
+  DartType staticTypeForExpression(Expression node);
+
+  /**
+   * Return the type being named by [node], or `null` if the AST structure has
+   * not been resolved.
+   */
+  DartType typeForTypeName(TypeName node);
+
+  /**
+   * Return the element associated with the uri of the directive [node], or
+   * `null` if the AST structure has not been resolved or if the URI could not
+   * be resolved. Examples of the latter case include a directive that contains
+   * an invalid URL or a URL that does not exist.
+   */
+  Element uriElementForDirective(UriBasedDirective node);
+}
diff --git a/pkg/analyzer/lib/dart/ast/standard_resolution_map.dart b/pkg/analyzer/lib/dart/ast/standard_resolution_map.dart
new file mode 100644
index 0000000..c778063
--- /dev/null
+++ b/pkg/analyzer/lib/dart/ast/standard_resolution_map.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/dart/ast/resolution_map.dart';
+import 'package:analyzer/src/dart/ast/resolution_map.dart';
+
+/**
+ * Gets an instance of [ResolutionMap] based on the standard AST implementation.
+ */
+final ResolutionMap resolutionMap = new ResolutionMapImpl();
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index a31f506..c235ea3 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -37,6 +37,7 @@
 library analyzer.dart.element.element;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/resolution_base_classes.dart';
 import 'package:analyzer/dart/constant/value.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
@@ -563,7 +564,7 @@
  *
  * Clients may not extend, implement or mix-in this class.
  */
-abstract class Element implements AnalysisTarget {
+abstract class Element implements AnalysisTarget, ResolutionTarget {
   /**
    * A comparator that can be used to sort elements by their name offset.
    * Elements with a smaller offset will be sorted to be before elements with a
@@ -787,7 +788,8 @@
  *
  * Clients may not extend, implement or mix-in this class.
  */
-abstract class ElementAnnotation implements ConstantEvaluationTarget {
+abstract class ElementAnnotation
+    implements ConstantEvaluationTarget, ResolutionTarget {
   /**
    * An empty list of annotations.
    */
diff --git a/pkg/analyzer/lib/dart/element/type.dart b/pkg/analyzer/lib/dart/element/type.dart
index b6923a0..2ff00f0 100644
--- a/pkg/analyzer/lib/dart/element/type.dart
+++ b/pkg/analyzer/lib/dart/element/type.dart
@@ -22,6 +22,7 @@
  */
 library analyzer.dart.element.type;
 
+import 'package:analyzer/dart/ast/resolution_base_classes.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/type.dart' show InterfaceTypeImpl;
 import 'package:analyzer/src/generated/type_system.dart' show TypeSystem;
@@ -31,7 +32,7 @@
  *
  * Clients may not extend, implement or mix-in this class.
  */
-abstract class DartType {
+abstract class DartType implements ResolutionType {
   /**
    * An empty list of types.
    */
@@ -698,9 +699,6 @@
    */
   static const List<TypeParameterType> EMPTY_LIST = const <TypeParameterType>[];
 
-  @override
-  TypeParameterElement get element;
-
   /**
    * Return the type representing the bound associated with this parameter,
    * or `dynamic` if there was no explicit bound.
@@ -715,4 +713,7 @@
    * Always consult the bound if that could be relevant.
    */
   ElementLocation get definition;
+
+  @override
+  TypeParameterElement get element;
 }
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 31fa75b..07ebae2 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -112,7 +112,6 @@
   CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS,
   CompileTimeErrorCode.EXTENDS_ENUM,
   CompileTimeErrorCode.EXTENDS_NON_CLASS,
-  CompileTimeErrorCode.EXTRA_ARGUMENT_TO_ASSERT,
   CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS,
   CompileTimeErrorCode.FIELD_INITIALIZED_BY_MULTIPLE_INITIALIZERS,
   CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER,
diff --git a/pkg/analyzer/lib/plugin/command_line.dart b/pkg/analyzer/lib/plugin/command_line.dart
deleted file mode 100644
index 7a6fbd8..0000000
--- a/pkg/analyzer/lib/plugin/command_line.dart
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * Support for client code that extends command-line tools that use the analysis
- * engine by adding new command-line arguments.
- */
-library analyzer.plugin.command_line;
-
-import 'package:analyzer/src/plugin/command_line_plugin.dart';
-import 'package:args/args.dart';
-import 'package:plugin/plugin.dart';
-
-/**
- * The identifier of the extension point that allows plugins to add new flags
- * and options to the command-line parser before the parser is used to parse
- * the command-line. The object used as an extension must be an
- * [ArgParserContributor].
- */
-final String PARSER_CONTRIBUTOR_EXTENSION_POINT_ID = Plugin.join(
-    CommandLinePlugin.UNIQUE_IDENTIFIER,
-    CommandLinePlugin.PARSER_CONTRIBUTOR_EXTENSION_POINT);
-
-/**
- * The identifier of the extension point that allows plugins to access the
- * result of parsing the command-line. The object used as an extension must be
- * an [ArgResultsProcessor].
- */
-final String RESULT_PROCESSOR_EXTENSION_POINT_ID = Plugin.join(
-    CommandLinePlugin.UNIQUE_IDENTIFIER,
-    CommandLinePlugin.RESULT_PROCESSOR_EXTENSION_POINT);
-
-/**
- * A function that will contribute flags and options to the command-line parser.
- */
-typedef void ArgParserContributor(ArgParser parser);
-
-/**
- * A function that will process the results of parsing the command-line.
- */
-typedef void ArgResultsProcessor(ArgResults results);
diff --git a/pkg/analyzer/lib/plugin/options.dart b/pkg/analyzer/lib/plugin/options.dart
index 632c4d9..f884df5 100644
--- a/pkg/analyzer/lib/plugin/options.dart
+++ b/pkg/analyzer/lib/plugin/options.dart
@@ -7,28 +7,9 @@
 library analyzer.plugin.options;
 
 import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/plugin/options_plugin.dart';
-import 'package:plugin/plugin.dart';
 import 'package:yaml/yaml.dart';
 
-/// The identifier of the extension point that allows plugins to access
-/// options defined in the analysis options file. The object used as an
-/// extension must be an [OptionsProcessor].
-final String OPTIONS_PROCESSOR_EXTENSION_POINT_ID = Plugin.join(
-    OptionsPlugin.UNIQUE_IDENTIFIER,
-    OptionsPlugin.OPTIONS_PROCESSOR_EXTENSION_POINT);
-
-/// The identifier of the extension point that allows plugins to validate
-/// options defined in the analysis options file. The object used as an
-/// extension must be an [OptionsValidator].
-final String OPTIONS_VALIDATOR_EXTENSION_POINT_ID = Plugin.join(
-    OptionsPlugin.UNIQUE_IDENTIFIER,
-    OptionsPlugin.OPTIONS_VALIDATOR_EXTENSION_POINT);
-
-/// Processes options defined in the analysis options file.
-///
-/// Clients may implement this class when implementing plugins.
+/// Validates options as defined in an analysis options file.
 ///
 /// The options file format is intentionally very open-ended, giving clients
 /// utmost flexibility in defining their own options.  The only hardfast
@@ -55,29 +36,9 @@
 ///
 ///     bool useMultiPackage =
 ///         options['compiler']['resolver']['useMultiPackage'];
-abstract class OptionsProcessor {
-  /// Called when an error occurs in processing options.
-  void onError(Exception exception);
-
-  /// Called when an options file is processed.
-  ///
-  /// The options file is processed on analyzer initialization and
-  /// subsequently when the file is changed on disk.  In the event of a
-  /// change notification, note that the notification simply indicates
-  /// a change on disk. Content in specific option scopes may or may not
-  /// be different. It is up to the implementer to check whether specific
-  /// options have changed and to handle those changes appropriately. In
-  /// addition to the [options] map, the associated analysis [context] is
-  /// provided as well to allow for context-specific configuration.
-  void optionsProcessed(AnalysisContext context, Map<String, Object> options);
-}
-
-/// Validates options as defined in an analysis options file.
 ///
 /// Clients may implement this class when implementing plugins.
 ///
-/// See [OptionsProcessor] for a description of the options file format.
-///
 abstract class OptionsValidator {
   /// Validate [options], reporting any errors to the given [reporter].
   void validate(ErrorReporter reporter, Map<String, YamlNode> options);
diff --git a/pkg/analyzer/lib/plugin/task.dart b/pkg/analyzer/lib/plugin/task.dart
index 2a242de..a9059af 100644
--- a/pkg/analyzer/lib/plugin/task.dart
+++ b/pkg/analyzer/lib/plugin/task.dart
@@ -41,20 +41,6 @@
 
 /**
  * The identifier of the extension point that allows plugins to register new
- * analysis tasks with the analysis engine. The object used as an extension must
- * be a [TaskDescriptor].
- *
- * Contributed tasks should never extract information from Dart elements or AST
- * (e.g. offsets) of a source and put it into results for targets in other
- * sources. Dart elements and ASTs are updated during incremental resolution,
- * and invalidation of results is intentionally limited by the source bounds
- * for performance reasons.
- */
-final String TASK_EXTENSION_POINT_ID = Plugin.join(
-    EnginePlugin.UNIQUE_IDENTIFIER, EnginePlugin.TASK_EXTENSION_POINT);
-
-/**
- * The identifier of the extension point that allows plugins to register new
  * work managers with the analysis engine. The object used as an extension must
  * be a [WorkManagerFactory].
  */
diff --git a/pkg/analyzer/lib/source/error_processor.dart b/pkg/analyzer/lib/source/error_processor.dart
index 9b09559..3404edc 100644
--- a/pkg/analyzer/lib/source/error_processor.dart
+++ b/pkg/analyzer/lib/source/error_processor.dart
@@ -87,19 +87,19 @@
   /// Check if this processor applies to the given [error].
   bool appliesTo(AnalysisError error) => code == error.errorCode.name;
 
-  /// Return an error processor associated with this [context] for the given
-  /// [error], or `null` if none is found.
+  /// Return an error processor associated in the [analysisOptions] for the
+  /// given [error], or `null` if none is found.
   static ErrorProcessor getProcessor(
-      AnalysisContext context, AnalysisError error) {
-    if (context == null) {
+      AnalysisOptions analysisOptions, AnalysisError error) {
+    if (analysisOptions == null) {
       return null;
     }
 
     // Let the user configure how specific errors are processed.
-    List<ErrorProcessor> processors = context.analysisOptions.errorProcessors;
+    List<ErrorProcessor> processors = analysisOptions.errorProcessors;
 
     // Give strong mode a chance to upgrade it.
-    if (context.analysisOptions.strongMode) {
+    if (analysisOptions.strongMode) {
       processors = processors.toList();
       processors.add(_StrongModeTypeErrorProcessor.instance);
     }
diff --git a/pkg/analyzer/lib/src/context/builder.dart b/pkg/analyzer/lib/src/context/builder.dart
index 5037995..95b9465 100644
--- a/pkg/analyzer/lib/src/context/builder.dart
+++ b/pkg/analyzer/lib/src/context/builder.dart
@@ -9,7 +9,6 @@
 
 import 'package:analyzer/context/declared_variables.dart';
 import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/plugin/options.dart';
 import 'package:analyzer/plugin/resolver_provider.dart';
 import 'package:analyzer/source/analysis_options_provider.dart';
 import 'package:analyzer/source/package_map_resolver.dart';
@@ -102,7 +101,7 @@
   AnalysisContext buildContext(String path) {
     InternalAnalysisContext context =
         AnalysisEngine.instance.createAnalysisContext();
-    AnalysisOptions options = getAnalysisOptions(context, path);
+    AnalysisOptions options = getAnalysisOptions(path);
     context.contentCache = contentCache;
     context.sourceFactory = createSourceFactory(path, options);
     context.analysisOptions = options;
@@ -325,15 +324,13 @@
   }
 
   /**
-   * Return the analysis options that should be used when the given [context] is
-   * used to analyze code in the directory with the given [path].
+   * Return the analysis options that should be used to analyze code in the
+   * directory with the given [path].
    */
-  AnalysisOptions getAnalysisOptions(AnalysisContext context, String path) {
+  AnalysisOptions getAnalysisOptions(String path) {
     AnalysisOptionsImpl options = createDefaultOptions();
     File optionsFile = getOptionsFile(path);
     if (optionsFile != null) {
-      List<OptionsProcessor> optionsProcessors =
-          AnalysisEngine.instance.optionsPlugin.optionsProcessors;
       // TODO(danrubel) restructure so that we don't recalculate the package map
       // more than once per path.
       Packages packages = createPackageMap(path);
@@ -348,11 +345,9 @@
         Map<String, YamlNode> optionMap =
             new AnalysisOptionsProvider(sourceFactory)
                 .getOptionsFromFile(optionsFile);
-        optionsProcessors.forEach(
-            (OptionsProcessor p) => p.optionsProcessed(context, optionMap));
         applyToAnalysisOptions(options, optionMap);
-      } on Exception catch (exception) {
-        optionsProcessors.forEach((OptionsProcessor p) => p.onError(exception));
+      } catch (_) {
+        // Ignore exceptions thrown while trying to load the options file.
       }
     }
     return options;
diff --git a/pkg/analyzer/lib/src/context/context.dart b/pkg/analyzer/lib/src/context/context.dart
index 30d48e2..132efd1 100644
--- a/pkg/analyzer/lib/src/context/context.dart
+++ b/pkg/analyzer/lib/src/context/context.dart
@@ -8,6 +8,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/exception/exception.dart';
@@ -239,6 +240,7 @@
    * Initialize a newly created analysis context.
    */
   AnalysisContextImpl() {
+    AnalysisEngine.instance.processRequiredPlugins();
     _privatePartition = new UniversalCachePartition(this);
     _cache = createCacheFromSourceFactory(null);
     _taskManager = AnalysisEngine.instance.taskManager;
@@ -282,7 +284,6 @@
         this._options.strongMode != options.strongMode ||
         this._options.enableAssertInitializer !=
             options.enableAssertInitializer ||
-        this._options.enableAssertMessage != options.enableAssertMessage ||
         this._options.enableLazyAssignmentOperators !=
             options.enableLazyAssignmentOperators ||
         ((options is AnalysisOptionsImpl)
@@ -307,7 +308,6 @@
     this._options.generateSdkErrors = options.generateSdkErrors;
     this._options.dart2jsHint = options.dart2jsHint;
     this._options.enableAssertInitializer = options.enableAssertInitializer;
-    this._options.enableAssertMessage = options.enableAssertMessage;
     this._options.enableStrictCallChecks = options.enableStrictCallChecks;
     this._options.enableLazyAssignmentOperators =
         options.enableLazyAssignmentOperators;
@@ -1944,9 +1944,12 @@
       }
       // if validation, remember the result, but throw it away
       if (analysisOptions.incrementalValidation) {
-        incrementalResolutionValidation_lastUnitSource = oldUnit.element.source;
+        CompilationUnitElement compilationUnitElement =
+            resolutionMap.elementDeclaredByCompilationUnit(oldUnit);
+        incrementalResolutionValidation_lastUnitSource =
+            compilationUnitElement.source;
         incrementalResolutionValidation_lastLibrarySource =
-            oldUnit.element.library.source;
+            compilationUnitElement.library.source;
         incrementalResolutionValidation_lastUnit = oldUnit;
         return false;
       }
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 4534661..06dc54f 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -132,14 +132,14 @@
 
   /**
    * The combined unlinked and linked package for the SDK, extracted from
-   * the given [_sourceFactory].
+   * the given [sourceFactory].
    */
   PackageBundle _sdkBundle;
 
   /**
-   * The set of explicitly analyzed files.
+   * The set of added files.
    */
-  final _explicitFiles = new LinkedHashSet<String>();
+  final _addedFiles = new LinkedHashSet<String>();
 
   /**
    * The set of priority files, that should be analyzed sooner.
@@ -166,7 +166,15 @@
    * The mapping from the files for which the index was requested using
    * [getIndex] to the [Completer]s to report the result.
    */
-  final _indexRequestedFiles = <String, List<Completer<IndexResult>>>{};
+  final _indexRequestedFiles =
+      <String, List<Completer<AnalysisDriverUnitIndex>>>{};
+
+  /**
+   * The mapping from the files for which the index was requested using
+   * [getIndex] to the [Completer]s to report the result.
+   */
+  final _unitElementRequestedFiles =
+      <String, List<Completer<CompilationUnitElement>>>{};
 
   /**
    * The set of files were reported as changed through [changeFile] and not
@@ -243,9 +251,9 @@
   }
 
   /**
-   * Return the set of files added to analysis using [addFile].
+   * Return the set of files explicitly added to analysis using [addFile].
    */
-  Set<String> get addedFiles => _explicitFiles;
+  Set<String> get addedFiles => _addedFiles;
 
   /**
    * Return the stream that produces [ExceptionResult]s.
@@ -258,7 +266,19 @@
   FileSystemState get fsState => _fsState;
 
   /**
-   * Return the set of files that are known, i.e. added or used implicitly.
+   * Return `true` if the driver has a file to analyze.
+   */
+  bool get hasFilesToAnalyze {
+    return _requestedFiles.isNotEmpty ||
+        _requestedParts.isNotEmpty ||
+        _filesToAnalyze.isNotEmpty ||
+        _partsToAnalyze.isNotEmpty;
+  }
+
+  /**
+   * Return the set of files that are known at this moment. This set does not
+   * always include all added files or all implicitly used file. If a file has
+   * not been processed yet, it might be missing.
    */
   Set<String> get knownFiles => _fsState.knownFilePaths;
 
@@ -330,6 +350,9 @@
     if (_indexRequestedFiles.isNotEmpty) {
       return AnalysisDriverPriority.interactive;
     }
+    if (_unitElementRequestedFiles.isNotEmpty) {
+      return AnalysisDriverPriority.interactive;
+    }
     if (_topLevelNameDeclarationsTasks.isNotEmpty) {
       return AnalysisDriverPriority.interactive;
     }
@@ -362,7 +385,8 @@
    */
   void addFile(String path) {
     if (AnalysisEngine.isDartFileName(path)) {
-      _explicitFiles.add(path);
+      _addedFiles.add(path);
+      _changedFiles.add(path);
       _filesToAnalyze.add(path);
     }
     _statusSupport.transitionToAnalyzing();
@@ -390,7 +414,7 @@
   void changeFile(String path) {
     if (AnalysisEngine.isDartFileName(path)) {
       _changedFiles.add(path);
-      if (_explicitFiles.contains(path)) {
+      if (_addedFiles.contains(path)) {
         _filesToAnalyze.add(path);
       }
     }
@@ -418,20 +442,20 @@
   }
 
   /**
-   * Return a [Future] that completes with the [IndexResult] for the file with
-   * the given [path].
+   * Return a [Future] that completes with the [AnalysisDriverUnitIndex] for
+   * the file with the given [path].
    */
-  Future<IndexResult> getIndex(String path) {
-    if (AnalysisEngine.isDartFileName(path)) {
-      var completer = new Completer<IndexResult>();
-      _indexRequestedFiles
-          .putIfAbsent(path, () => <Completer<IndexResult>>[])
-          .add(completer);
-      _statusSupport.transitionToAnalyzing();
-      _scheduler._notify(this);
-      return completer.future;
+  Future<AnalysisDriverUnitIndex> getIndex(String path) {
+    if (!AnalysisEngine.isDartFileName(path)) {
+      return new Future.value();
     }
-    return new Future.value();
+    var completer = new Completer<AnalysisDriverUnitIndex>();
+    _indexRequestedFiles
+        .putIfAbsent(path, () => <Completer<AnalysisDriverUnitIndex>>[])
+        .add(completer);
+    _statusSupport.transitionToAnalyzing();
+    _scheduler._notify(this);
+    return completer.future;
   }
 
   /**
@@ -476,6 +500,23 @@
   }
 
   /**
+   * Return a [Future] that completes with the [CompilationUnitElement] for the
+   * file with the given [path].
+   */
+  Future<CompilationUnitElement> getUnitElement(String path) {
+    if (!AnalysisEngine.isDartFileName(path)) {
+      return new Future.value();
+    }
+    var completer = new Completer<CompilationUnitElement>();
+    _unitElementRequestedFiles
+        .putIfAbsent(path, () => <Completer<CompilationUnitElement>>[])
+        .add(completer);
+    _statusSupport.transitionToAnalyzing();
+    _scheduler._notify(this);
+    return completer.future;
+  }
+
+  /**
    * Return a [Future] that completes with a [ParseResult] for the file
    * with the given [path].
    *
@@ -505,8 +546,12 @@
    * but does not guarantee this.
    */
   void removeFile(String path) {
-    _explicitFiles.remove(path);
+    _addedFiles.remove(path);
     _filesToAnalyze.remove(path);
+    _fsState.removeFile(path);
+    _filesToAnalyze.addAll(_addedFiles);
+    _statusSupport.transitionToAnalyzing();
+    _scheduler._notify(this);
   }
 
   /**
@@ -549,7 +594,7 @@
       String key = _getResolvedUnitKey(libraryFile, file);
       List<int> bytes = _byteStore.get(key);
       if (bytes != null) {
-        return _getAnalysisResultFromBytes(libraryFile, file, bytes);
+        return _getAnalysisResultFromBytes(file, bytes);
       }
     }
 
@@ -592,9 +637,9 @@
 
         // Return the result, full or partial.
         _logger.writeln('Computed new analysis result.');
-        return _getAnalysisResultFromBytes(libraryFile, file, bytes,
+        return _getAnalysisResultFromBytes(file, bytes,
             content: withUnit ? file.content : null,
-            withErrors: _explicitFiles.contains(path),
+            withErrors: _addedFiles.contains(path),
             resolvedUnit: withUnit ? resolvedUnit : null);
       } finally {
         analysisContext.dispose();
@@ -602,28 +647,28 @@
     });
   }
 
-  IndexResult _computeIndexResult(String path) {
+  AnalysisDriverUnitIndex _computeIndex(String path) {
     AnalysisResult analysisResult = _computeAnalysisResult(path,
         withUnit: false, asIsIfPartWithoutLibrary: true);
-    FileState libraryFile = analysisResult._libraryFile;
-    FileState file = analysisResult._file;
+    return analysisResult._index;
+  }
+
+  CompilationUnitElement _computeUnitElement(String path) {
+    FileState file = _fsState.getFileForPath(path);
+    FileState libraryFile = file.library ?? file;
 
     // Create the AnalysisContext to resynthesize elements in.
     _LibraryContext libraryContext = _createLibraryContext(libraryFile);
     AnalysisContext analysisContext = _createAnalysisContext(libraryContext);
 
     // Resynthesize the CompilationUnitElement in the context.
-    CompilationUnitElement unitElement;
     try {
-      unitElement = analysisContext.computeResult(
+      return analysisContext.computeResult(
           new LibrarySpecificUnit(libraryFile.source, file.source),
           COMPILATION_UNIT_ELEMENT);
     } finally {
       analysisContext.dispose();
     }
-
-    // Return as IndexResult.
-    return new IndexResult(unitElement, analysisResult._index);
   }
 
   AnalysisContext _createAnalysisContext(_LibraryContext libraryContext) {
@@ -735,26 +780,14 @@
    * Load the [AnalysisResult] for the given [file] from the [bytes]. Set
    * optional [content] and [resolvedUnit].
    */
-  AnalysisResult _getAnalysisResultFromBytes(
-      FileState libraryFile, FileState file, List<int> bytes,
+  AnalysisResult _getAnalysisResultFromBytes(FileState file, List<int> bytes,
       {String content, bool withErrors: true, CompilationUnit resolvedUnit}) {
     var unit = new AnalysisDriverResolvedUnit.fromBuffer(bytes);
     List<AnalysisError> errors = withErrors
         ? _getErrorsFromSerialized(file, unit.errors)
         : const <AnalysisError>[];
-    return new AnalysisResult(
-        libraryFile,
-        file,
-        this,
-        sourceFactory,
-        file.path,
-        file.uri,
-        content,
-        file.contentHash,
-        file.lineInfo,
-        resolvedUnit,
-        errors,
-        unit.index);
+    return new AnalysisResult(this, sourceFactory, file.path, file.uri, content,
+        file.contentHash, file.lineInfo, resolvedUnit, errors, unit.index);
   }
 
   /**
@@ -850,9 +883,19 @@
     // Process an index request.
     if (_indexRequestedFiles.isNotEmpty) {
       String path = _indexRequestedFiles.keys.first;
-      IndexResult result = _computeIndexResult(path);
+      AnalysisDriverUnitIndex index = _computeIndex(path);
       _indexRequestedFiles.remove(path).forEach((completer) {
-        completer.complete(result);
+        completer.complete(index);
+      });
+      return;
+    }
+
+    // Process a unit request.
+    if (_unitElementRequestedFiles.isNotEmpty) {
+      String path = _unitElementRequestedFiles.keys.first;
+      CompilationUnitElement unitElement = _computeUnitElement(path);
+      _unitElementRequestedFiles.remove(path).forEach((completer) {
+        completer.complete(unitElement);
       });
       return;
     }
@@ -972,7 +1015,7 @@
       if (anyApiChanged) {
         _logger.writeln('API signatures mismatch found for $path');
         // TODO(scheglov) schedule analysis of only affected files
-        _filesToAnalyze.addAll(_explicitFiles);
+        _filesToAnalyze.addAll(_addedFiles);
       }
       return files[0];
     });
@@ -1033,8 +1076,7 @@
   /**
    * Return `true` if we are currently analyzing code.
    */
-  bool get isAnalyzing =>
-      _statusSupport.currentStatus == AnalysisStatus.ANALYZING;
+  bool get isAnalyzing => _hasFilesToAnalyze;
 
   /**
    * Return the stream that produces [AnalysisStatus] events.
@@ -1042,6 +1084,18 @@
   Stream<AnalysisStatus> get status => _statusSupport.stream;
 
   /**
+   * Return `true` if there is a driver with a file to analyze.
+   */
+  bool get _hasFilesToAnalyze {
+    for (AnalysisDriver driver in _drivers) {
+      if (driver.hasFilesToAnalyze) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /**
    * Start the scheduler, so that any [AnalysisDriver] created before or
    * after will be asked to perform work.
    */
@@ -1058,7 +1112,6 @@
    */
   void _add(AnalysisDriver driver) {
     _drivers.add(driver);
-    _statusSupport.transitionToAnalyzing();
     _hasWork.notify();
   }
 
@@ -1067,7 +1120,6 @@
    * perform some work.
    */
   void _notify(AnalysisDriver driver) {
-    _statusSupport.transitionToAnalyzing();
     _hasWork.notify();
   }
 
@@ -1077,7 +1129,6 @@
    */
   void _remove(AnalysisDriver driver) {
     _drivers.remove(driver);
-    _statusSupport.transitionToAnalyzing();
     _hasWork.notify();
   }
 
@@ -1097,8 +1148,10 @@
 
       await _hasWork.signal;
 
-      if (analysisSection == null) {
-        analysisSection = _logger.enter('Analyzing');
+      // Transition to analyzing if there are files to analyze.
+      if (_hasFilesToAnalyze) {
+        _statusSupport.transitionToAnalyzing();
+        analysisSection ??= _logger.enter('Analyzing');
       }
 
       // Find the driver with the highest priority.
@@ -1112,11 +1165,15 @@
         }
       }
 
+      // Transition to idle if no files to analyze.
+      if (!_hasFilesToAnalyze) {
+        _statusSupport.transitionToIdle();
+        analysisSection?.exit();
+        analysisSection = null;
+      }
+
       // Continue to sleep if no work to do.
       if (bestPriority == AnalysisDriverPriority.nothing) {
-        analysisSection.exit();
-        analysisSection = null;
-        _statusSupport.transitionToIdle();
         continue;
       }
 
@@ -1152,9 +1209,6 @@
  * any previously returned result, even inside of the same library.
  */
 class AnalysisResult {
-  final FileState _libraryFile;
-  final FileState _file;
-
   /**
    * The [AnalysisDriver] that produced this result.
    */
@@ -1208,8 +1262,6 @@
   final AnalysisDriverUnitIndex _index;
 
   AnalysisResult(
-      this._libraryFile,
-      this._file,
       this.driver,
       this.sourceFactory,
       this.path,
@@ -1242,23 +1294,6 @@
 }
 
 /**
- * The result of indexing of a single file.
- */
-class IndexResult {
-  /**
-   * The element of the file.
-   */
-  final CompilationUnitElement unitElement;
-
-  /**
-   * The index of the file.
-   */
-  final AnalysisDriverUnitIndex index;
-
-  IndexResult(this.unitElement, this.index);
-}
-
-/**
  * The result of parsing of a single file.
  *
  * These results are self-consistent, i.e. [content], [contentHash], the
@@ -1385,6 +1420,8 @@
  * file.
  */
 class _FilesReferencingNameTask {
+  static const int _MS_WORK_INTERVAL = 5;
+
   final AnalysisDriver driver;
   final String name;
   final Completer<List<String>> completer = new Completer<List<String>>();
@@ -1396,30 +1433,38 @@
   _FilesReferencingNameTask(this.driver, this.name);
 
   /**
-   * Perform a single piece of work, and either complete the [completer] and
-   * return `true` to indicate that the task is done, return `false` to indicate
-   * that the task should continue to be run.
+   * Perform work for a fixed length of time, and complete the [completer] to
+   * either return `true` to indicate that the task is done, or return `false`
+   * to indicate that the task should continue to be run.
+   *
+   * Each invocation of an asynchronous method has overhead, which looks as
+   * `_SyncCompleter.complete` invocation, we see as much as 62% in some
+   * scenarios. Instead we use a fixed length of time, so we can spend less time
+   * overall and keep quick enough response time.
    */
   Future<bool> perform() async {
-    // Prepare files to check.
-    if (filesToCheck.isEmpty) {
-      Set<String> newFiles = driver.addedFiles.difference(checkedFiles);
-      filesToCheck.addAll(newFiles);
-    }
+    Stopwatch timer = new Stopwatch()..start();
+    while (timer.elapsedMilliseconds < _MS_WORK_INTERVAL) {
+      // Prepare files to check.
+      if (filesToCheck.isEmpty) {
+        Set<String> newFiles = driver.addedFiles.difference(checkedFiles);
+        filesToCheck.addAll(newFiles);
+      }
 
-    // If no more files to check, complete and done.
-    if (filesToCheck.isEmpty) {
-      completer.complete(referencingFiles);
-      return true;
-    }
+      // If no more files to check, complete and done.
+      if (filesToCheck.isEmpty) {
+        completer.complete(referencingFiles);
+        return true;
+      }
 
-    // Check the next file.
-    String path = filesToCheck.removeLast();
-    FileState file = driver._fsState.getFileForPath(path);
-    if (file.referencedNames.contains(name)) {
-      referencingFiles.add(path);
+      // Check the next file.
+      String path = filesToCheck.removeLast();
+      FileState file = driver._fsState.getFileForPath(path);
+      if (file.referencedNames.contains(name)) {
+        referencingFiles.add(path);
+      }
+      checkedFiles.add(path);
     }
-    checkedFiles.add(path);
 
     // We're not done yet.
     return false;
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index 7ab09c1..70ba1ee 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -548,6 +548,11 @@
   final Map<Uri, FileState> _uriToFile = {};
 
   /**
+   * All known file paths.
+   */
+  final Set<String> knownFilePaths = new Set<String>();
+
+  /**
    * Mapping from a path to the corresponding [FileState]s, canonical or not.
    */
   final Map<String, List<FileState>> _pathToFiles = {};
@@ -577,11 +582,6 @@
   }
 
   /**
-   * Return the set of known file paths.
-   */
-  Set<String> get knownFilePaths => _pathToFiles.keys.toSet();
-
-  /**
    * Return the known files.
    */
   Iterable<FileState> get knownFiles =>
@@ -614,7 +614,7 @@
       FileSource uriSource = new FileSource(resource, uri);
       file = new FileState._(this, path, uri, uriSource);
       _uriToFile[uri] = file;
-      _pathToFiles.putIfAbsent(path, () => <FileState>[]).add(file);
+      _addFileWithPath(path, file);
       _pathToCanonicalFile[path] = file;
       file.refresh();
     }
@@ -640,7 +640,7 @@
       FileSource source = new FileSource(resource, uri);
       file = new FileState._(this, path, uri, source);
       _uriToFile[uri] = file;
-      _pathToFiles.putIfAbsent(path, () => <FileState>[]).add(file);
+      _addFileWithPath(path, file);
       file.refresh();
     }
     return file;
@@ -660,6 +660,27 @@
       ..remove(canonicalFile)
       ..insert(0, canonicalFile);
   }
+
+  /**
+   * Remove the file with the given [path].
+   */
+  void removeFile(String path) {
+    _uriToFile.clear();
+    knownFilePaths.clear();
+    _pathToFiles.clear();
+    _pathToCanonicalFile.clear();
+    _partToLibraries.clear();
+  }
+
+  void _addFileWithPath(String path, FileState file) {
+    var files = _pathToFiles[path];
+    if (files == null) {
+      knownFilePaths.add(path);
+      files = <FileState>[];
+      _pathToFiles[path] = files;
+    }
+    files.add(file);
+  }
 }
 
 @visibleForTesting
diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart
index 8c8c132..04d3359 100644
--- a/pkg/analyzer/lib/src/dart/analysis/index.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/index.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -505,7 +506,10 @@
   @override
   visitClassDeclaration(ClassDeclaration node) {
     if (node.extendsClause == null) {
-      ClassElement objectElement = node.element.supertype?.element;
+      ClassElement objectElement = resolutionMap
+          .elementDeclaredByClassDeclaration(node)
+          .supertype
+          ?.element;
       recordRelationOffset(objectElement, IndexRelationKind.IS_EXTENDED_BY,
           node.name.offset, 0, true);
     }
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 907ad15..1c569ed 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -15,6 +15,7 @@
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/dart/resolver/scope.dart' show NamespaceBuilder;
+import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:analyzer/src/summary/idl.dart';
 import 'package:collection/collection.dart';
 
@@ -82,7 +83,7 @@
       return const <SearchResult>[];
     }
     List<SearchResult> results = <SearchResult>[];
-    await _addResults(results, type, {
+    await _addResults(results, type, const {
       IndexRelationKind.IS_EXTENDED_BY: SearchResultKind.REFERENCE,
       IndexRelationKind.IS_MIXED_IN_BY: SearchResultKind.REFERENCE,
       IndexRelationKind.IS_IMPLEMENTED_BY: SearchResultKind.REFERENCE
@@ -92,13 +93,6 @@
 
   Future<Null> _addResults(List<SearchResult> results, Element element,
       Map<IndexRelationKind, SearchResultKind> relationToResultKind) async {
-    String path = element.source.fullName;
-
-    // If the file with the element is not known, then the element is not used.
-    if (!_driver.knownFiles.contains(path)) {
-      return;
-    }
-
     // Prepare the element name.
     String name = element.displayName;
     if (element is ConstructorElement) {
@@ -107,6 +101,7 @@
 
     // Prepare the list of files that reference the element name.
     List<String> files = <String>[];
+    String path = element.source.fullName;
     if (name.startsWith('_')) {
       String libraryPath = element.library.source.fullName;
       if (_driver.addedFiles.contains(libraryPath)) {
@@ -139,13 +134,12 @@
       Element element,
       Map<IndexRelationKind, SearchResultKind> relationToResultKind,
       String file) async {
-    IndexResult result = await _driver.getIndex(file);
-    _IndexRequest request = new _IndexRequest(result.index);
+    AnalysisDriverUnitIndex index = await _driver.getIndex(file);
+    _IndexRequest request = new _IndexRequest(index);
     int elementId = request.findElementId(element);
     if (elementId != -1) {
-      CompilationUnitElement unitElement = result.unitElement;
-      List<SearchResult> fileResults =
-          request.getRelations(elementId, relationToResultKind, unitElement);
+      List<SearchResult> fileResults = await request.getRelations(
+          elementId, relationToResultKind, () => _driver.getUnitElement(file));
       results.addAll(fileResults);
     }
   }
@@ -153,7 +147,7 @@
   Future<List<SearchResult>> _searchReferences(Element element) async {
     List<SearchResult> results = <SearchResult>[];
     await _addResults(results, element,
-        {IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE});
+        const {IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE});
     return results;
   }
 
@@ -190,20 +184,20 @@
     PropertyAccessorElement getter = field.getter;
     PropertyAccessorElement setter = field.setter;
     if (!field.isSynthetic) {
-      await _addResults(results, field, {
+      await _addResults(results, field, const {
         IndexRelationKind.IS_WRITTEN_BY: SearchResultKind.WRITE,
         IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE
       });
     }
     if (getter != null) {
-      await _addResults(results, getter, {
+      await _addResults(results, getter, const {
         IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.READ,
         IndexRelationKind.IS_INVOKED_BY: SearchResultKind.INVOCATION
       });
     }
     if (setter != null) {
       await _addResults(results, setter,
-          {IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.WRITE});
+          const {IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.WRITE});
     }
     return results;
   }
@@ -213,7 +207,7 @@
       element = (element as Member).baseElement;
     }
     List<SearchResult> results = <SearchResult>[];
-    await _addResults(results, element, {
+    await _addResults(results, element, const {
       IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE,
       IndexRelationKind.IS_INVOKED_BY: SearchResultKind.INVOCATION
     });
@@ -223,7 +217,7 @@
   Future<List<SearchResult>> _searchReferences_Getter(
       PropertyAccessorElement getter) async {
     List<SearchResult> results = <SearchResult>[];
-    await _addResults(results, getter, {
+    await _addResults(results, getter, const {
       IndexRelationKind.IS_REFERENCED_BY: SearchResultKind.REFERENCE,
       IndexRelationKind.IS_INVOKED_BY: SearchResultKind.INVOCATION
     });
@@ -287,11 +281,13 @@
   Future<List<SearchResult>> _searchReferences_Parameter(
       ParameterElement parameter) async {
     List<SearchResult> results = <SearchResult>[];
-    results.addAll(await _searchReferences(parameter));
     results.addAll(await _searchReferences_Local(parameter, (AstNode node) {
       AstNode parent = node.parent;
       return parent is ClassDeclaration || parent is CompilationUnit;
     }));
+    if (parameter.parameterKind == ParameterKind.NAMED) {
+      results.addAll(await _searchReferences(parameter));
+    }
     return results;
   }
 
@@ -322,11 +318,6 @@
  */
 class SearchResult {
   /**
-   * The element that is used at this result.
-   */
-  final Element element;
-
-  /**
    * The deep most element that contains this result.
    */
   final Element enclosingElement;
@@ -356,8 +347,8 @@
    */
   final bool isQualified;
 
-  SearchResult._(this.element, this.enclosingElement, this.kind, this.offset,
-      this.length, this.isResolved, this.isQualified);
+  SearchResult._(this.enclosingElement, this.kind, this.offset, this.length,
+      this.isResolved, this.isQualified);
 
   @override
   String toString() {
@@ -461,8 +452,8 @@
   void _addResult(int offset, int length) {
     Element enclosingElement =
         _getEnclosingElement(enclosingUnitElement, offset);
-    results.add(new SearchResult._(importElement, enclosingElement,
-        SearchResultKind.REFERENCE, offset, length, true, false));
+    results.add(new SearchResult._(enclosingElement, SearchResultKind.REFERENCE,
+        offset, length, true, false));
   }
 
   void _addResultForPrefix(SimpleIdentifier prefixNode, AstNode nextNode) {
@@ -563,11 +554,15 @@
   /**
    * Return a list of results where an element with the given [elementId] has
    * a relation with the kind from [relationToResultKind].
+   *
+   * The function [getEnclosingUnitElement] is used to lazily compute the
+   * enclosing [CompilationUnitElement] if there is a relation of an
+   * interesting kind.
    */
-  List<SearchResult> getRelations(
+  Future<List<SearchResult>> getRelations(
       int elementId,
       Map<IndexRelationKind, SearchResultKind> relationToResultKind,
-      CompilationUnitElement enclosingUnitElement) {
+      Future<CompilationUnitElement> getEnclosingUnitElement()) async {
     // Find the first usage of the element.
     int i = _findFirstOccurrence(index.usedElements, elementId);
     if (i == -1) {
@@ -575,6 +570,7 @@
     }
     // Create locations for every usage of the element.
     List<SearchResult> results = <SearchResult>[];
+    CompilationUnitElement enclosingUnitElement = null;
     for (;
         i < index.usedElements.length && index.usedElements[i] == elementId;
         i++) {
@@ -582,10 +578,10 @@
       SearchResultKind resultKind = relationToResultKind[relationKind];
       if (resultKind != null) {
         int offset = index.usedElementOffsets[i];
+        enclosingUnitElement ??= await getEnclosingUnitElement();
         Element enclosingElement =
             _getEnclosingElement(enclosingUnitElement, offset);
         results.add(new SearchResult._(
-            null,
             enclosingElement,
             resultKind,
             offset,
@@ -703,7 +699,7 @@
     bool isQualified = node.parent is Label;
     Element enclosingElement =
         _getEnclosingElement(enclosingUnitElement, node.offset);
-    results.add(new SearchResult._(element, enclosingElement, kind, node.offset,
-        node.length, true, isQualified));
+    results.add(new SearchResult._(
+        enclosingElement, kind, node.offset, node.length, true, isQualified));
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/analysis/status.dart b/pkg/analyzer/lib/src/dart/analysis/status.dart
index 000c966..5431023 100644
--- a/pkg/analyzer/lib/src/dart/analysis/status.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/status.dart
@@ -24,6 +24,9 @@
    * Return `true` is the driver is idle.
    */
   bool get isIdle => !_analyzing;
+
+  @override
+  String toString() => _analyzing ? 'analyzing' : 'idle';
 }
 
 /**
diff --git a/pkg/analyzer/lib/src/dart/ast/resolution_map.dart b/pkg/analyzer/lib/src/dart/ast/resolution_map.dart
new file mode 100644
index 0000000..975f97d
--- /dev/null
+++ b/pkg/analyzer/lib/src/dart/ast/resolution_map.dart
@@ -0,0 +1,158 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/resolution_map.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/type.dart';
+
+/**
+ * Concrete implementation of [ResolutionMap] based on the standard AST
+ * implementation.
+ */
+class ResolutionMapImpl implements ResolutionMap {
+  @override
+  ExecutableElement bestElementForFunctionExpressionInvocation(
+          FunctionExpressionInvocation node) =>
+      node.bestElement;
+
+  @override
+  Element bestElementForIdentifier(Identifier node) => node.bestElement;
+
+  @override
+  MethodElement bestElementForMethodReference(MethodReferenceExpression node) =>
+      node.bestElement;
+
+  @override
+  ParameterElement bestParameterElementForExpression(Expression node) =>
+      node.bestParameterElement;
+
+  @override
+  DartType bestTypeForExpression(Expression node) => node.bestType;
+
+  @override
+  ElementAnnotation elementAnnotationForAnnotation(Annotation node) =>
+      node.elementAnnotation;
+
+  @override
+  ClassElement elementDeclaredByClassDeclaration(ClassDeclaration node) =>
+      node.element;
+
+  @override
+  CompilationUnitElement elementDeclaredByCompilationUnit(
+          CompilationUnit node) =>
+      node.element;
+
+  @override
+  ConstructorElement elementDeclaredByConstructorDeclaration(
+          ConstructorDeclaration node) =>
+      node.element;
+
+  @override
+  Element elementDeclaredByDeclaration(Declaration node) => node.element;
+
+  @override
+  LocalVariableElement elementDeclaredByDeclaredIdentifier(
+          DeclaredIdentifier node) =>
+      node.element;
+
+  @override
+  Element elementDeclaredByDirective(Directive node) => node.element;
+
+  @override
+  ClassElement elementDeclaredByEnumDeclaration(EnumDeclaration node) =>
+      node.element;
+
+  @override
+  ParameterElement elementDeclaredByFormalParameter(FormalParameter node) =>
+      node.element;
+
+  @override
+  ExecutableElement elementDeclaredByFunctionDeclaration(
+          FunctionDeclaration node) =>
+      node.element;
+
+  @override
+  ExecutableElement elementDeclaredByFunctionExpression(
+          FunctionExpression node) =>
+      node.element;
+
+  @override
+  ExecutableElement elementDeclaredByMethodDeclaration(
+          MethodDeclaration node) =>
+      node.element;
+
+  @override
+  VariableElement elementDeclaredByVariableDeclaration(
+          VariableDeclaration node) =>
+      node.element;
+
+  @override
+  Element elementForAnnotation(Annotation node) => node.element;
+
+  @override
+  ParameterElement elementForNamedExpression(NamedExpression node) =>
+      node.element;
+
+  @override
+  List<ParameterElement> parameterElementsForFormalParameterList(
+          FormalParameterList node) =>
+      node.parameterElements;
+
+  @override
+  ExecutableElement propagatedElementForFunctionExpressionInvocation(
+          FunctionExpressionInvocation node) =>
+      node.propagatedElement;
+
+  @override
+  Element propagatedElementForIdentifier(Identifier node) =>
+      node.propagatedElement;
+
+  @override
+  MethodElement propagatedElementForMethodReference(
+          MethodReferenceExpression node) =>
+      node.propagatedElement;
+
+  @override
+  ParameterElement propagatedParameterElementForExpression(Expression node) =>
+      node.propagatedParameterElement;
+
+  @override
+  DartType propagatedTypeForExpression(Expression node) => node.propagatedType;
+
+  @override
+  ConstructorElement staticElementForConstructorReference(
+          ConstructorReferenceNode node) =>
+      node.staticElement;
+
+  @override
+  ExecutableElement staticElementForFunctionExpressionInvocation(
+          FunctionExpressionInvocation node) =>
+      node.staticElement;
+
+  @override
+  Element staticElementForIdentifier(Identifier node) => node.staticElement;
+
+  @override
+  MethodElement staticElementForMethodReference(
+          MethodReferenceExpression node) =>
+      node.staticElement;
+
+  @override
+  DartType staticInvokeTypeForInvocationExpression(InvocationExpression node) =>
+      node.staticInvokeType;
+
+  @override
+  ParameterElement staticParameterElementForExpression(Expression node) =>
+      node.staticParameterElement;
+
+  @override
+  DartType staticTypeForExpression(Expression node) => node.staticType;
+
+  @override
+  DartType typeForTypeName(TypeName node) => node.type;
+
+  @override
+  Element uriElementForDirective(UriBasedDirective node) => node.uriElement;
+}
diff --git a/pkg/analyzer/lib/src/dart/constant/utilities.dart b/pkg/analyzer/lib/src/dart/constant/utilities.dart
index d9ef263..b097c0e 100644
--- a/pkg/analyzer/lib/src/dart/constant/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/constant/utilities.dart
@@ -7,6 +7,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -39,13 +40,6 @@
   ConstantAstCloner() : super(true);
 
   @override
-  ConstructorName visitConstructorName(ConstructorName node) {
-    ConstructorName name = super.visitConstructorName(node);
-    name.staticElement = node.staticElement;
-    return name;
-  }
-
-  @override
   Annotation visitAnnotation(Annotation node) {
     Annotation annotation = super.visitAnnotation(node);
     annotation.element = node.element;
@@ -53,6 +47,13 @@
   }
 
   @override
+  ConstructorName visitConstructorName(ConstructorName node) {
+    ConstructorName name = super.visitConstructorName(node);
+    name.staticElement = node.staticElement;
+    return name;
+  }
+
+  @override
   FunctionExpression visitFunctionExpression(FunctionExpression node) {
     FunctionExpression expression = super.visitFunctionExpression(node);
     expression.element = node.element;
@@ -191,7 +192,10 @@
   @override
   Object visitClassDeclaration(ClassDeclaration node) {
     bool prevTreatFinalInstanceVarAsConst = treatFinalInstanceVarAsConst;
-    if (node.element.constructors.any((ConstructorElement e) => e.isConst)) {
+    if (resolutionMap
+        .elementDeclaredByClassDeclaration(node)
+        .constructors
+        .any((ConstructorElement e) => e.isConst)) {
       // Instance vars marked "final" need to be included in the dependency
       // graph, since constant constructors implicitly use the values in their
       // initializers.
@@ -222,7 +226,8 @@
     super.visitDefaultFormalParameter(node);
     Expression defaultValue = node.defaultValue;
     if (defaultValue != null && node.element != null) {
-      constantsToCompute.add(node.element);
+      constantsToCompute
+          .add(resolutionMap.elementDeclaredByFormalParameter(node));
     }
     return null;
   }
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index cde2f0f..4bfc3e97 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -1213,7 +1213,10 @@
         if (e.kind == UnlinkedExecutableKind.getter) {
           fieldType = accessor.returnType;
         } else {
-          fieldType = accessor.parameters[0].type;
+          List<ParameterElement> parameters = accessor.parameters;
+          fieldType = parameters.isNotEmpty
+              ? parameters[0].type
+              : DynamicTypeImpl.instance;
         }
         // Create or update the implicit field.
         String fieldName = accessor.displayName;
diff --git a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
index 74d54d7..594ba19 100644
--- a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
+++ b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
@@ -446,7 +446,7 @@
 
   static const ParserErrorCode INVALID_SYNC = const ParserErrorCode(
       'INVALID_SYNC',
-      "The modifier 'sync' isn't allowed for an exrpression function body.",
+      "The modifier 'sync' isn't allowed for an expression function body.",
       "Try converting the body to a block.");
 
   static const ParserErrorCode INVALID_UNICODE_ESCAPE = const ParserErrorCode(
diff --git a/pkg/analyzer/lib/src/dart/resolver/scope.dart b/pkg/analyzer/lib/src/dart/resolver/scope.dart
index 1fc385e..dcbcb04 100644
--- a/pkg/analyzer/lib/src/dart/resolver/scope.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/scope.dart
@@ -663,7 +663,7 @@
    * A table mapping names that are defined in this namespace to the element
    * representing the thing declared with that name.
    */
-  final HashMap<String, Element> _definedNames;
+  final Map<String, Element> _definedNames;
 
   /**
    * Initialize a newly created namespace to have the [_definedNames].
diff --git a/pkg/analyzer/lib/src/dart/sdk/patch.dart b/pkg/analyzer/lib/src/dart/sdk/patch.dart
index 88a122e..acfef23 100644
--- a/pkg/analyzer/lib/src/dart/sdk/patch.dart
+++ b/pkg/analyzer/lib/src/dart/sdk/patch.dart
@@ -63,7 +63,7 @@
       patchPaths = sdkLibrary.getPatches(platform);
     }
 
-    bool strongMode = sdk.analysisOptions.strongMode;
+    bool strongMode = sdk.context.analysisOptions.strongMode;
     Context pathContext = sdk.resourceProvider.pathContext;
     for (String path in patchPaths) {
       String pathInLib = pathContext.joinAll(path.split('/'));
@@ -294,6 +294,13 @@
           _failIfPublicName(patchDeclaration, patchDeclaration.name.name);
           declarationsToAppend.add(patchDeclaration);
         }
+      } else if (patchDeclaration is TopLevelVariableDeclaration &&
+          !_hasPatchAnnotation(patchDeclaration.metadata)) {
+        for (VariableDeclaration variable
+            in patchDeclaration.variables.variables) {
+          _failIfPublicName(patchDeclaration, variable.name.name);
+        }
+        declarationsToAppend.add(patchDeclaration);
       } else {
         _failInPatch('contains an unsupported top-level declaration',
             patchDeclaration.offset);
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index c73de06..41cf63a 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -953,17 +953,6 @@
           "removing the extends clause.");
 
   /**
-   * DEP 37 extends the syntax for assert() to allow a second "message"
-   * argument.  We issue this error if the user tries to supply a "message"
-   * argument but the DEP is not enabled.
-   */
-  static const CompileTimeErrorCode EXTRA_ARGUMENT_TO_ASSERT =
-      const CompileTimeErrorCode(
-          'EXTRA_ARGUMENT_TO_ASSERT',
-          "Assertions only accept a single argument.",
-          "Try removing the message, or enable messages in assert statements.");
-
-  /**
    * 12.14.2 Binding Actuals to Formals: It is a static warning if <i>m &lt;
    * h</i> or if <i>m &gt; n</i>.
    *
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 3860533..4df8cb3 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -24,11 +24,14 @@
 import 'package:analyzer/src/generated/resolver.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_general.dart';
-import 'package:analyzer/src/plugin/command_line_plugin.dart';
 import 'package:analyzer/src/plugin/engine_plugin.dart';
-import 'package:analyzer/src/plugin/options_plugin.dart';
 import 'package:analyzer/src/services/lint.dart';
+import 'package:analyzer/src/task/dart.dart';
+import 'package:analyzer/src/task/general.dart';
+import 'package:analyzer/src/task/html.dart';
 import 'package:analyzer/src/task/manager.dart';
+import 'package:analyzer/src/task/options.dart';
+import 'package:analyzer/src/task/yaml.dart';
 import 'package:analyzer/task/dart.dart';
 import 'package:analyzer/task/model.dart';
 import 'package:front_end/src/base/timestamped_data.dart';
@@ -757,24 +760,11 @@
   Logger _logger = Logger.NULL;
 
   /**
-   * The plugin that defines the extension points and extensions that are defined by
-   * command-line applications using the analysis engine.
-   */
-  final CommandLinePlugin commandLinePlugin = new CommandLinePlugin();
-
-  /**
    * The plugin that defines the extension points and extensions that are
    * inherently defined by the analysis engine.
    */
   final EnginePlugin enginePlugin = new EnginePlugin();
 
-  /***
-   * The plugin that defines the extension points and extensions that are defined
-   * by applications that want to consume options defined in the analysis
-   * options file.
-   */
-  final OptionsPlugin optionsPlugin = new OptionsPlugin();
-
   /**
    * The instrumentation service that is to be used by this analysis engine.
    */
@@ -837,14 +827,9 @@
    */
   TaskManager get taskManager {
     if (_taskManager == null) {
-      if (enginePlugin.taskExtensionPoint == null) {
-        processRequiredPlugins();
-      }
       _taskManager = new TaskManager();
-      _taskManager.addTaskDescriptors(enginePlugin.taskDescriptors);
-      // TODO(brianwilkerson) Create a way to associate different results with
-      // different file suffixes, then make this pluggable.
-      _taskManager.addGeneralResult(DART_ERRORS);
+      _initializeTaskMap();
+      _initializeResults();
     }
     return _taskManager;
   }
@@ -870,8 +855,91 @@
    * process any other plugins.
    */
   void processRequiredPlugins() {
-    ExtensionManager manager = new ExtensionManager();
-    manager.processPlugins(requiredPlugins);
+    if (enginePlugin.workManagerFactoryExtensionPoint == null) {
+      ExtensionManager manager = new ExtensionManager();
+      manager.processPlugins(requiredPlugins);
+    }
+  }
+
+  void _initializeResults() {
+    _taskManager.addGeneralResult(DART_ERRORS);
+  }
+
+  void _initializeTaskMap() {
+    //
+    // Register general tasks.
+    //
+    _taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR);
+    //
+    // Register Dart tasks.
+    //
+    _taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildSourceExportClosureTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ComputeConstantDependenciesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ComputeConstantValueTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(
+        ComputeInferableStaticVariableDependenciesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ComputeLibraryCycleTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ComputeRequiredConstantsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ContainingLibrariesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(DartErrorsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(EvaluateUnitConstantsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(GatherUsedImportedElementsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(GatherUsedLocalElementsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(GenerateHintsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(GenerateLintsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(InferInstanceMembersInUnitTask.DESCRIPTOR);
+    _taskManager
+        .addTaskDescriptor(InferStaticVariableTypesInUnitTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(InferStaticVariableTypeTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(LibraryErrorsReadyTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(LibraryUnitErrorsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR);
+    _taskManager
+        .addTaskDescriptor(PartiallyResolveUnitReferencesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ReadyLibraryElement2Task.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ReadyLibraryElement5Task.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ReadyLibraryElement7Task.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ReadyResolvedUnitTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveConstantExpressionTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveDirectiveElementsTask.DESCRIPTOR);
+    _taskManager
+        .addTaskDescriptor(ResolvedUnit7InLibraryClosureTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolvedUnit7InLibraryTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveInstanceFieldsInUnitTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveLibraryReferencesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveLibraryTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveLibraryTypeNamesTask.DESCRIPTOR);
+    _taskManager
+        .addTaskDescriptor(ResolveTopLevelLibraryTypeBoundsTask.DESCRIPTOR);
+    _taskManager
+        .addTaskDescriptor(ResolveTopLevelUnitTypeBoundsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveUnitTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveUnitTypeNamesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ResolveVariableReferencesTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(StrongModeVerifyUnitTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(VerifyUnitTask.DESCRIPTOR);
+    //
+    // Register HTML tasks.
+    //
+    _taskManager.addTaskDescriptor(DartScriptsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(HtmlErrorsTask.DESCRIPTOR);
+    _taskManager.addTaskDescriptor(ParseHtmlTask.DESCRIPTOR);
+    //
+    // Register YAML tasks.
+    //
+    _taskManager.addTaskDescriptor(ParseYamlTask.DESCRIPTOR);
+    //
+    // Register analysis option file tasks.
+    //
+    _taskManager.addTaskDescriptor(GenerateOptionsErrorsTask.DESCRIPTOR);
   }
 
   /**
@@ -1105,6 +1173,7 @@
   /**
    * Return `true` to enable custom assert messages (DEP 37).
    */
+  @deprecated
   bool get enableAssertMessage;
 
   /**
@@ -1303,12 +1372,11 @@
   @deprecated
   static const int DEFAULT_CACHE_SIZE = 64;
 
-  static const int ENABLE_ASSERT_FLAG = 0x01;
-  static const int ENABLE_LAZY_ASSIGNMENT_OPERATORS = 0x02;
-  static const int ENABLE_STRICT_CALL_CHECKS_FLAG = 0x04;
-  static const int ENABLE_STRONG_MODE_FLAG = 0x08;
-  static const int ENABLE_STRONG_MODE_HINTS_FLAG = 0x10;
-  static const int ENABLE_SUPER_MIXINS_FLAG = 0x20;
+  static const int ENABLE_LAZY_ASSIGNMENT_OPERATORS = 0x01;
+  static const int ENABLE_STRICT_CALL_CHECKS_FLAG = 0x02;
+  static const int ENABLE_STRONG_MODE_FLAG = 0x04;
+  static const int ENABLE_STRONG_MODE_HINTS_FLAG = 0x08;
+  static const int ENABLE_SUPER_MIXINS_FLAG = 0x10;
 
   /**
    * The default list of non-nullable type names.
@@ -1333,9 +1401,6 @@
   bool enableAssertInitializer = false;
 
   @override
-  bool enableAssertMessage = false;
-
-  @override
   bool enableLazyAssignmentOperators = false;
 
   @override
@@ -1454,7 +1519,6 @@
     analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate;
     dart2jsHint = options.dart2jsHint;
     enableAssertInitializer = options.enableAssertInitializer;
-    enableAssertMessage = options.enableAssertMessage;
     enableStrictCallChecks = options.enableStrictCallChecks;
     enableLazyAssignmentOperators = options.enableLazyAssignmentOperators;
     enableSuperMixins = options.enableSuperMixins;
@@ -1513,6 +1577,13 @@
     _analyzeFunctionBodiesPredicate = value;
   }
 
+  @override
+  @deprecated
+  bool get enableAssertMessage => true;
+
+  @deprecated
+  void set enableAssertMessage(bool enable) {}
+
   @deprecated
   @override
   bool get enableAsync => true;
@@ -1578,12 +1649,12 @@
 
   @override
   List<int> encodeCrossContextOptions() {
-    int flags = (enableAssertMessage ? ENABLE_ASSERT_FLAG : 0) |
+    int flags =
         (enableLazyAssignmentOperators ? ENABLE_LAZY_ASSIGNMENT_OPERATORS : 0) |
-        (enableStrictCallChecks ? ENABLE_STRICT_CALL_CHECKS_FLAG : 0) |
-        (enableSuperMixins ? ENABLE_SUPER_MIXINS_FLAG : 0) |
-        (strongMode ? ENABLE_STRONG_MODE_FLAG : 0) |
-        (strongModeHints ? ENABLE_STRONG_MODE_HINTS_FLAG : 0);
+            (enableStrictCallChecks ? ENABLE_STRICT_CALL_CHECKS_FLAG : 0) |
+            (enableSuperMixins ? ENABLE_SUPER_MIXINS_FLAG : 0) |
+            (strongMode ? ENABLE_STRONG_MODE_FLAG : 0) |
+            (strongModeHints ? ENABLE_STRONG_MODE_HINTS_FLAG : 0);
     return <int>[flags, patchPlatform];
   }
 
@@ -1592,7 +1663,6 @@
     dart2jsHint = false;
     disableCacheFlushing = false;
     enableAssertInitializer = false;
-    enableAssertMessage = false;
     enableLazyAssignmentOperators = false;
     enableStrictCallChecks = false;
     enableSuperMixins = false;
@@ -1621,7 +1691,6 @@
 
   @override
   void setCrossContextOptionsFrom(AnalysisOptions options) {
-    enableAssertMessage = options.enableAssertMessage;
     enableLazyAssignmentOperators = options.enableLazyAssignmentOperators;
     enableStrictCallChecks = options.enableStrictCallChecks;
     enableSuperMixins = options.enableSuperMixins;
@@ -1640,9 +1709,6 @@
   static String decodeCrossContextOptions(List<int> encoding) {
     List<String> parts = [];
     int flags = encoding[0];
-    if (flags & ENABLE_ASSERT_FLAG > 0) {
-      parts.add('assert');
-    }
     if (flags & ENABLE_LAZY_ASSIGNMENT_OPERATORS > 0) {
       parts.add('lazyAssignmentOperators');
     }
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 0d6ecf8..47c4009 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -8,6 +8,7 @@
 import "dart:math" as math;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -296,21 +297,10 @@
   final bool enableSuperMixins;
 
   /**
-   * If `true`, asserts are allowed to take a second argument representing the
-   * assertion failure message (see DEP 37).
-   */
-  final bool enableAssertMessage;
-
-  /**
    * Initialize a newly created error verifier.
    */
-  ErrorVerifier(
-      this._errorReporter,
-      this._currentLibrary,
-      this._typeProvider,
-      this._inheritanceManager,
-      this.enableSuperMixins,
-      this.enableAssertMessage) {
+  ErrorVerifier(this._errorReporter, this._currentLibrary, this._typeProvider,
+      this._inheritanceManager, this.enableSuperMixins) {
     this._isInSystemLibrary = _currentLibrary.source.isInSystemLibrary;
     this._hasExtUri = _currentLibrary.hasExtUri;
     _isEnclosingConstructorConst = false;
@@ -349,14 +339,12 @@
   @override
   Object visitAssertInitializer(AssertInitializer node) {
     _checkForNonBoolExpression(node);
-    _checkAssertMessage(node);
     return super.visitAssertInitializer(node);
   }
 
   @override
   Object visitAssertStatement(AssertStatement node) {
     _checkForNonBoolExpression(node);
-    _checkAssertMessage(node);
     return super.visitAssertStatement(node);
   }
 
@@ -857,7 +845,8 @@
       // we can get the function element via `node?.element?.type?.element` but
       // it doesn't have hasImplicitReturnType set correctly.
       if (!_options.implicitDynamic && node.returnType == null) {
-        DartType parameterType = node.element.type;
+        DartType parameterType =
+            resolutionMap.elementDeclaredByFormalParameter(node).type;
         if (parameterType is FunctionType &&
             parameterType.returnType.isDynamic) {
           _errorReporter.reportErrorForNode(
@@ -1302,18 +1291,6 @@
   }
 
   /**
-   * If the given [assertion] specifies a message, verify that support
-   * for assertions with messages is enabled.
-   */
-  void _checkAssertMessage(Assertion assertion) {
-    Expression expression = assertion.message;
-    if (expression != null && !enableAssertMessage) {
-      _errorReporter.reportErrorForNode(
-          CompileTimeErrorCode.EXTRA_ARGUMENT_TO_ASSERT, expression);
-    }
-  }
-
-  /**
    * Given a list of [directives] that have the same prefix, generate an error
    * if there is more than one import and any of those imports is deferred.
    *
@@ -2238,7 +2215,8 @@
     DartType redirectedReturnType = redirectedType.returnType;
 
     // Report specific problem when return type is incompatible
-    FunctionType constructorType = declaration.element.type;
+    FunctionType constructorType =
+        resolutionMap.elementDeclaredByConstructorDeclaration(declaration).type;
     DartType constructorReturnType = constructorType.returnType;
     if (!_typeSystem.isAssignableTo(
         redirectedReturnType, constructorReturnType)) {
@@ -2892,8 +2870,9 @@
           Element enclosingElementOfSetter = null;
           ClassMember conflictingSetter = memberHashMap[setterName];
           if (conflictingSetter != null) {
-            enclosingElementOfSetter =
-                conflictingSetter.element.enclosingElement;
+            enclosingElementOfSetter = resolutionMap
+                .elementDeclaredByDeclaration(conflictingSetter)
+                .enclosingElement;
           } else {
             ExecutableElement elementFromInheritance = _inheritanceManager
                 .lookupInheritance(_enclosingClass, setterName);
@@ -4733,7 +4712,7 @@
   }
 
   void _checkForMissingJSLibAnnotation(Annotation node) {
-    if (node.elementAnnotation?.isJS ?? false) {
+    if (resolutionMap.elementAnnotationForAnnotation(node)?.isJS ?? false) {
       if (_currentLibrary.isJS != true) {
         _errorReporter.reportErrorForNode(
             HintCode.MISSING_JS_LIB_ANNOTATION, node);
@@ -6898,7 +6877,9 @@
     DartType type = node.constructorName.type.type;
     if (type is InterfaceType) {
       _checkForMissingRequiredParam(
-          node.staticElement?.type, node.argumentList, node.constructorName);
+          resolutionMap.staticElementForConstructorReference(node)?.type,
+          node.argumentList,
+          node.constructorName);
     }
     return super.visitInstanceCreationExpression(node);
   }
@@ -6913,7 +6894,8 @@
   @override
   Object visitRedirectingConstructorInvocation(
       RedirectingConstructorInvocation node) {
-    DartType type = node.staticElement?.type;
+    DartType type =
+        resolutionMap.staticElementForConstructorReference(node)?.type;
     if (type != null) {
       _checkForMissingRequiredParam(type, node.argumentList, node);
     }
@@ -6922,7 +6904,8 @@
 
   @override
   Object visitSuperConstructorInvocation(SuperConstructorInvocation node) {
-    DartType type = node.staticElement?.type;
+    DartType type =
+        resolutionMap.staticElementForConstructorReference(node)?.type;
     if (type != null) {
       _checkForMissingRequiredParam(type, node.argumentList, node);
     }
diff --git a/pkg/analyzer/lib/src/generated/incremental_resolver.dart b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
index 1787b4a..b26d939 100644
--- a/pkg/analyzer/lib/src/generated/incremental_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
@@ -482,8 +482,7 @@
           _definingLibrary,
           _typeProvider,
           new InheritanceManager(_definingLibrary),
-          _context.analysisOptions.enableSuperMixins,
-          _context.analysisOptions.enableAssertMessage);
+          _context.analysisOptions.enableSuperMixins);
       if (_resolutionContext.enclosingClassDeclaration != null) {
         errorVerifier.visitClassDeclarationIncrementally(
             _resolutionContext.enclosingClassDeclaration);
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index df3ad03..4aac847 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -7,6 +7,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -105,7 +106,7 @@
 
   @override
   Object visitAnnotation(Annotation node) {
-    if (node.elementAnnotation?.isFactory == true) {
+    if (resolutionMap.elementAnnotationForAnnotation(node)?.isFactory == true) {
       AstNode parent = node.parent;
       if (parent is MethodDeclaration) {
         _checkForInvalidFactory(parent);
@@ -193,7 +194,7 @@
 
   @override
   Object visitConstructorDeclaration(ConstructorDeclaration node) {
-    if (node.element.isFactory) {
+    if (resolutionMap.elementDeclaredByConstructorDeclaration(node).isFactory) {
       if (node.body is BlockFunctionBody) {
         // Check the block for a return statement, if not, create the hint.
         if (!ExitDetector.exits(node.body)) {
@@ -648,7 +649,7 @@
           node is MethodInvocation &&
           node.staticInvokeType is InterfaceType) {
         displayName =
-            "${node.staticInvokeType.displayName}.${element.displayName}";
+            "${resolutionMap.staticInvokeTypeForInvocationExpression(node).displayName}.${element.displayName}";
       }
       _errorReporter.reportErrorForNode(
           HintCode.DEPRECATED_MEMBER_USE, node, [displayName]);
@@ -2287,7 +2288,8 @@
 
   @override
   void visitCompilationUnit(CompilationUnit node) {
-    _enclosingLibrary = node.element.library;
+    _enclosingLibrary =
+        resolutionMap.elementDeclaredByCompilationUnit(node).library;
     for (Directive directive in node.directives) {
       directive.accept(this);
     }
@@ -3594,7 +3596,9 @@
   GatherUsedLocalElementsVisitor _usedLocalElementsVisitor;
 
   HintGenerator(this._compilationUnits, this._context, this._errorListener) {
-    _library = _compilationUnits[0].element.library;
+    _library = resolutionMap
+        .elementDeclaredByCompilationUnit(_compilationUnits[0])
+        .library;
     _usedImportedElementsVisitor =
         new GatherUsedImportedElementsVisitor(_library);
     _enableDart2JSHints = _context.analysisOptions.dart2jsHint;
@@ -3614,8 +3618,9 @@
         }
       }
       CompilationUnit definingUnit = _compilationUnits[0];
-      ErrorReporter definingUnitErrorReporter =
-          new ErrorReporter(_errorListener, definingUnit.element.source);
+      ErrorReporter definingUnitErrorReporter = new ErrorReporter(
+          _errorListener,
+          resolutionMap.elementDeclaredByCompilationUnit(definingUnit).source);
       {
         ImportsVerifier importsVerifier = new ImportsVerifier();
         importsVerifier.addImports(definingUnit);
@@ -5788,7 +5793,8 @@
 
   @override
   Object visitDefaultFormalParameter(DefaultFormalParameter node) {
-    InferenceContext.setType(node.defaultValue, node.parameter.element?.type);
+    InferenceContext.setType(node.defaultValue,
+        resolutionMap.elementDeclaredByFormalParameter(node.parameter)?.type);
     super.visitDefaultFormalParameter(node);
     ParameterElement element = node.element;
     if (element.initializer != null && node.defaultValue != null) {
@@ -5907,7 +5913,9 @@
           ? typeProvider.iterableType
           : typeProvider.streamType;
       InferenceContext.setType(
-          iterable, targetType.instantiate([loopVariable.type.type]));
+          iterable,
+          targetType
+              .instantiate([resolutionMap.typeForTypeName(loopVariable.type)]));
     }
     iterable?.accept(this);
     loopVariable?.accept(this);
@@ -6017,7 +6025,9 @@
             _inferFormalParameterList(node.parameters, functionType);
 
             DartType returnType;
-            if (isFutureThen(node.staticParameterElement?.enclosingElement)) {
+            ParameterElement parameterElement =
+                resolutionMap.staticParameterElementForExpression(node);
+            if (isFutureThen(parameterElement?.enclosingElement)) {
               var futureThenType =
                   InferenceContext.getContext(node.parent) as FunctionType;
 
@@ -6178,7 +6188,8 @@
           List<DartType> targs =
               inferenceContext.matchTypes(classTypeName.type, contextType);
           if (targs != null && targs.any((t) => !t.isDynamic)) {
-            ClassElement classElement = classTypeName.type.element;
+            ClassElement classElement =
+                resolutionMap.typeForTypeName(classTypeName).element;
             InterfaceType rawType = classElement.type;
             InterfaceType fullType =
                 rawType.substitute2(targs, rawType.typeArguments);
@@ -6191,7 +6202,9 @@
       }
     }
     node.constructorName?.accept(this);
-    FunctionType constructorType = node.constructorName.staticElement?.type;
+    FunctionType constructorType = resolutionMap
+        .staticElementForConstructorReference(node.constructorName)
+        ?.type;
     if (constructorType != null) {
       InferenceContext.setType(node.argumentList, constructorType);
     }
@@ -6350,7 +6363,8 @@
     // because it needs to be visited in the context of the constructor
     // invocation.
     //
-    InferenceContext.setType(node.argumentList, node.staticElement?.type);
+    InferenceContext.setType(node.argumentList,
+        resolutionMap.staticElementForConstructorReference(node)?.type);
     node.argumentList?.accept(this);
     node.accept(elementResolver);
     node.accept(typeAnalyzer);
@@ -6384,7 +6398,8 @@
     // because it needs to be visited in the context of the constructor
     // invocation.
     //
-    InferenceContext.setType(node.argumentList, node.staticElement?.type);
+    InferenceContext.setType(node.argumentList,
+        resolutionMap.staticElementForConstructorReference(node)?.type);
     node.argumentList?.accept(this);
     node.accept(elementResolver);
     node.accept(typeAnalyzer);
@@ -6457,7 +6472,9 @@
   @override
   visitVariableDeclarationList(VariableDeclarationList node) {
     for (VariableDeclaration decl in node.variables) {
-      InferenceContext.setType(decl, decl.element?.type);
+      VariableElement variableElement =
+          resolutionMap.elementDeclaredByVariableDeclaration(decl);
+      InferenceContext.setType(decl, variableElement?.type);
     }
     super.visitVariableDeclarationList(node);
   }
@@ -6744,7 +6761,8 @@
     FunctionType expectedClosureType = mayByFunctionType as FunctionType;
     // If the expectedClosureType is not more specific than the static type,
     // return.
-    DartType staticClosureType = closure.element?.type;
+    DartType staticClosureType =
+        resolutionMap.elementDeclaredByFunctionExpression(closure)?.type;
     if (staticClosureType != null &&
         !FunctionTypeImpl.relate(
             expectedClosureType,
@@ -9803,9 +9821,10 @@
         variable.declaredType = element.returnType;
       } else if (variable.type == null) {
         List<ParameterElement> parameters = element.parameters;
-        if (parameters != null && parameters.length > 0) {
-          variable.declaredType = parameters[0].type;
-        }
+        DartType type = parameters != null && parameters.length > 0
+            ? parameters[0].type
+            : _dynamicType;
+        variable.declaredType = type;
       }
     }
 
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index 53745d2..3367b16 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -7,6 +7,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -2120,8 +2121,8 @@
       VariableDeclaration node, Expression initializer) {
     if (initializer != null &&
         (node.parent as VariableDeclarationList).type == null &&
-        (initializer.staticType != null) &&
-        (!initializer.staticType.isBottom)) {
+        (resolutionMap.staticTypeForExpression(initializer) != null) &&
+        (!resolutionMap.staticTypeForExpression(initializer).isBottom)) {
       VariableElement element = node.element;
       if (element is LocalVariableElementImpl) {
         element.type = initializer.staticType;
diff --git a/pkg/analyzer/lib/src/lint/analysis.dart b/pkg/analyzer/lib/src/lint/analysis.dart
new file mode 100644
index 0000000..5949fd8
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/analysis.dart
@@ -0,0 +1,260 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:collection';
+import 'dart:io' as io;
+
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/file_system/file_system.dart'
+    show File, Folder, ResourceProvider, ResourceUriResolver;
+import 'package:analyzer/file_system/physical_file_system.dart';
+import 'package:analyzer/source/package_map_resolver.dart';
+import 'package:analyzer/src/context/builder.dart';
+import 'package:analyzer/src/dart/sdk/sdk.dart';
+import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/sdk.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/generated/source_io.dart';
+import 'package:analyzer/src/lint/io.dart';
+import 'package:analyzer/src/lint/linter.dart';
+import 'package:analyzer/src/lint/project.dart';
+import 'package:analyzer/src/lint/registry.dart';
+import 'package:analyzer/src/services/lint.dart';
+import 'package:cli_util/cli_util.dart' as cli_util;
+import 'package:package_config/packages.dart' show Packages;
+import 'package:package_config/packages_file.dart' as pkgfile show parse;
+import 'package:package_config/src/packages_impl.dart' show MapPackages;
+import 'package:path/path.dart' as p;
+import 'package:plugin/manager.dart';
+import 'package:plugin/plugin.dart';
+
+Source createSource(Uri sourceUri) {
+  return PhysicalResourceProvider.INSTANCE
+      .getFile(sourceUri.toFilePath())
+      .createSource(sourceUri);
+}
+
+/// Print the given message and exit with the given [exitCode]
+void printAndFail(String message, {int exitCode: 15}) {
+  print(message);
+  io.exit(exitCode);
+}
+
+AnalysisOptions _buildAnalyzerOptions(DriverOptions options) {
+  AnalysisOptionsImpl analysisOptions = new AnalysisOptionsImpl();
+  analysisOptions.strongMode = options.strongMode;
+  analysisOptions.hint = false;
+  analysisOptions.lint = options.enableLints;
+  analysisOptions.generateSdkErrors = options.showSdkWarnings;
+  analysisOptions.enableTiming = options.enableTiming;
+  return analysisOptions;
+}
+
+class AnalysisDriver {
+  /// The sources which have been analyzed so far.  This is used to avoid
+  /// analyzing a source more than once, and to compute the total number of
+  /// sources analyzed for statistics.
+  Set<Source> _sourcesAnalyzed = new HashSet<Source>();
+
+  final LinterOptions options;
+
+  AnalysisDriver(this.options) {
+    _processPlugins();
+  }
+
+  /// Return the number of sources that have been analyzed so far.
+  int get numSourcesAnalyzed => _sourcesAnalyzed.length;
+
+  List<UriResolver> get resolvers {
+    // TODO(brianwilkerson) Use the context builder to compute all of the resolvers.
+    ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE;
+    ContextBuilder builder = new ContextBuilder(resourceProvider, null, null);
+
+    DartSdk sdk = options.mockSdk ??
+        new FolderBasedDartSdk(
+            resourceProvider, resourceProvider.getFolder(sdkDir));
+
+    List<UriResolver> resolvers = [new DartUriResolver(sdk)];
+
+    if (options.packageRootPath != null) {
+      // TODO(brianwilkerson) After 0.30.0 is published, clean up the following.
+      try {
+        // Try to use the post 0.30.0 API.
+        (builder as dynamic).builderOptions.defaultPackagesDirectoryPath =
+            options.packageRootPath;
+      } catch (_) {
+        // If that fails, fall back to the pre 0.30.0 API.
+        (builder as dynamic).defaultPackagesDirectoryPath =
+            options.packageRootPath;
+      }
+      Map<String, List<Folder>> packageMap =
+          builder.convertPackagesToMap(builder.createPackageMap(null));
+      resolvers.add(new PackageMapUriResolver(resourceProvider, packageMap));
+    }
+
+    // File URI resolver must come last so that files inside "/lib" are
+    // are analyzed via "package:" URI's.
+    resolvers.add(new ResourceUriResolver(resourceProvider));
+    return resolvers;
+  }
+
+  String get sdkDir {
+    if (options.dartSdkPath != null) {
+      return options.dartSdkPath;
+    }
+    // In case no SDK has been specified, fall back to inferring it
+    // TODO: pass args to cli_util
+    return cli_util.getSdkDir().path;
+  }
+
+  List<AnalysisErrorInfo> analyze(Iterable<io.File> files) {
+    AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
+    context.analysisOptions = _buildAnalyzerOptions(options);
+    registerLinters(context);
+
+    Packages packages = _getPackageConfig();
+
+    context.sourceFactory = new SourceFactory(resolvers, packages);
+    AnalysisEngine.instance.logger = new StdLogger();
+
+    List<Source> sources = [];
+    ChangeSet changeSet = new ChangeSet();
+    for (io.File file in files) {
+      File sourceFile = PhysicalResourceProvider.INSTANCE
+          .getFile(p.normalize(file.absolute.path));
+      Source source = sourceFile.createSource();
+      Uri uri = context.sourceFactory.restoreUri(source);
+      if (uri != null) {
+        // Ensure that we analyze the file using its canonical URI (e.g. if
+        // it's in "/lib", analyze it using a "package:" URI).
+        source = sourceFile.createSource(uri);
+      }
+      sources.add(source);
+      changeSet.addedSource(source);
+    }
+    context.applyChanges(changeSet);
+
+    // Temporary location
+    var project = new DartProject(context, sources);
+    // This will get pushed into the generator (or somewhere comparable) when
+    // we have a proper plugin.
+    Registry.ruleRegistry.forEach((lint) {
+      if (lint is ProjectVisitor) {
+        (lint as ProjectVisitor).visit(project);
+      }
+    });
+
+    List<AnalysisErrorInfo> errors = [];
+
+    for (Source source in sources) {
+      context.computeErrors(source);
+      errors.add(context.getErrors(source));
+      _sourcesAnalyzed.add(source);
+    }
+
+    if (options.visitTransitiveClosure) {
+      // In the process of computing errors for all the sources in [sources],
+      // the analyzer has visited the transitive closure of all libraries
+      // referenced by those sources.  So now we simply need to visit all
+      // library sources known to the analysis context, and all parts they
+      // refer to.
+      for (Source librarySource in context.librarySources) {
+        for (Source source in _getAllUnitSources(context, librarySource)) {
+          if (!_sourcesAnalyzed.contains(source)) {
+            context.computeErrors(source);
+            errors.add(context.getErrors(source));
+            _sourcesAnalyzed.add(source);
+          }
+        }
+      }
+    }
+
+    return errors;
+  }
+
+  void registerLinters(AnalysisContext context) {
+    if (options.enableLints) {
+      setLints(context, options.enabledLints?.toList(growable: false));
+    }
+  }
+
+  /// Yield the sources for all the compilation units constituting
+  /// [librarySource] (including the defining compilation unit).
+  Iterable<Source> _getAllUnitSources(
+      AnalysisContext context, Source librarySource) {
+    List<Source> result = <Source>[librarySource];
+    result.addAll(context
+        .getLibraryElement(librarySource)
+        .parts
+        .map((CompilationUnitElement e) => e.source));
+    return result;
+  }
+
+  Packages _getPackageConfig() {
+    if (options.packageConfigPath != null) {
+      String packageConfigPath = options.packageConfigPath;
+      Uri fileUri = new Uri.file(packageConfigPath);
+      try {
+        io.File configFile = new io.File.fromUri(fileUri).absolute;
+        List<int> bytes = configFile.readAsBytesSync();
+        Map<String, Uri> map = pkgfile.parse(bytes, configFile.uri);
+        return new MapPackages(map);
+      } catch (e) {
+        printAndFail(
+            'Unable to read package config data from $packageConfigPath: $e');
+      }
+    }
+    return null;
+  }
+
+  void _processPlugins() {
+    List<Plugin> plugins = <Plugin>[];
+    plugins.addAll(AnalysisEngine.instance.requiredPlugins);
+    ExtensionManager manager = new ExtensionManager();
+    manager.processPlugins(plugins);
+  }
+}
+
+class DriverOptions {
+  /// The maximum number of sources for which AST structures should be kept
+  /// in the cache.  The default is 512.
+  int cacheSize = 512;
+
+  /// The path to the dart SDK.
+  String dartSdkPath;
+
+  /// Whether to show lint warnings.
+  bool enableLints = true;
+
+  /// Whether to gather timing data during analysis.
+  bool enableTiming = false;
+
+  /// The path to a `.packages` configuration file
+  String packageConfigPath;
+
+  /// The path to the package root.
+  String packageRootPath;
+
+  /// Whether to show SDK warnings.
+  bool showSdkWarnings = false;
+
+  /// Whether to use Dart's Strong Mode analyzer.
+  bool strongMode = true;
+
+  /// The mock SDK (to speed up testing) or `null` to use the actual SDK.
+  DartSdk mockSdk;
+
+  /// Whether to show lints for the transitive closure of imported and exported
+  /// libraries.
+  bool visitTransitiveClosure = false;
+}
+
+/// Prints logging information comments to the [outSink] and error messages to
+/// [errorSink].
+class StdLogger extends Logger {
+  @override
+  void logError(String message, [exception]) => errorSink.writeln(message);
+  @override
+  void logInformation(String message, [exception]) => outSink.writeln(message);
+}
diff --git a/pkg/analyzer/lib/src/lint/config.dart b/pkg/analyzer/lib/src/lint/config.dart
new file mode 100644
index 0000000..f33b3f3
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/config.dart
@@ -0,0 +1,243 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:yaml/yaml.dart';
+
+/**
+ * Parse the given map into a lint config.
+ */
+LintConfig parseConfig(Map optionsMap) {
+  if (optionsMap != null) {
+    var options = optionsMap['linter'];
+    // Quick check of basic contract.
+    if (options is Map) {
+      return new LintConfig.parseMap(options);
+    }
+  }
+  return null;
+}
+
+/**
+ * Process the given option [fileContents] and produce a corresponding
+ * [LintConfig].
+ */
+LintConfig processAnalysisOptionsFile(String fileContents, {String fileUrl}) {
+  var yaml = loadYamlNode(fileContents, sourceUrl: fileUrl);
+  if (yaml is YamlMap) {
+    return parseConfig(yaml);
+  }
+  return null;
+}
+
+/**
+ * The configuration of lint rules within an analysis options file.
+ */
+abstract class LintConfig {
+  factory LintConfig.parse(String source, {String sourceUrl}) =>
+      new _LintConfig().._parse(source, sourceUrl: sourceUrl);
+
+  factory LintConfig.parseMap(Map map) => new _LintConfig().._parseMap(map);
+
+  List<String> get fileExcludes;
+  List<String> get fileIncludes;
+  List<RuleConfig> get ruleConfigs;
+}
+
+/**
+ * The configuration of a single lint rule within an analysis options file.
+ */
+abstract class RuleConfig {
+  Map<String, dynamic> args = <String, dynamic>{};
+  String get group;
+  String get name;
+
+  // Provisional
+  bool disables(String ruleName) =>
+      ruleName == name && args['enabled'] == false;
+
+  bool enables(String ruleName) => ruleName == name && args['enabled'] == true;
+}
+
+class _LintConfig implements LintConfig {
+  @override
+  final fileIncludes = <String>[];
+  @override
+  final fileExcludes = <String>[];
+  @override
+  final ruleConfigs = <RuleConfig>[];
+
+  void addAsListOrString(value, List<String> list) {
+    if (value is List) {
+      value.forEach((v) => list.add(v));
+    } else if (value is String) {
+      list.add(value);
+    }
+  }
+
+  bool asBool(scalar) {
+    if (scalar is bool) {
+      return scalar;
+    }
+    if (scalar is String) {
+      if (scalar == 'true') {
+        return true;
+      }
+      if (scalar == 'false') {
+        return false;
+      }
+    }
+    return null;
+  }
+
+  String asString(scalar) {
+    if (scalar is String) {
+      return scalar;
+    }
+    return null;
+  }
+
+  Map<String, dynamic> parseArgs(args) {
+    bool enabled = asBool(args);
+    if (enabled != null) {
+      return {'enabled': enabled};
+    }
+    return null;
+  }
+
+  void _parse(String src, {String sourceUrl}) {
+    var yaml = loadYamlNode(src, sourceUrl: sourceUrl);
+    if (yaml is YamlMap) {
+      _parseYaml(yaml);
+    }
+  }
+
+  void _parseMap(Map options) {
+    //TODO(pq): unify map parsing.
+    if (options is YamlMap) {
+      _parseYaml(options);
+    } else {
+      _parseRawMap(options);
+    }
+  }
+
+  void _parseRawMap(Map options) {
+    options.forEach((k, v) {
+      if (k is! String) {
+        return;
+      }
+      String key = k;
+      switch (key) {
+        case 'files':
+          if (v is Map) {
+            addAsListOrString(v['include'], fileIncludes);
+            addAsListOrString(v['exclude'], fileExcludes);
+          }
+          break;
+
+        case 'rules':
+          // - unnecessary_getters
+          // - camel_case_types
+          if (v is List) {
+            v.forEach((rule) {
+              var config = new _RuleConfig();
+              config.name = asString(rule);
+              config.args = {'enabled': true};
+              ruleConfigs.add(config);
+            });
+          }
+
+          // {unnecessary_getters: false, camel_case_types: true}
+          if (v is Map) {
+            v.forEach((key, value) {
+              // style_guide: {unnecessary_getters: false, camel_case_types: true}
+              if (value is Map) {
+                value.forEach((rule, args) {
+                  // unnecessary_getters: false
+                  var config = new _RuleConfig();
+                  config.group = key;
+                  config.name = asString(rule);
+                  config.args = parseArgs(args);
+                  ruleConfigs.add(config);
+                });
+              } else {
+                //{unnecessary_getters: false}
+                value = asBool(value);
+                if (value != null) {
+                  var config = new _RuleConfig();
+                  config.name = asString(key);
+                  config.args = {'enabled': value};
+                  ruleConfigs.add(config);
+                }
+              }
+            });
+          }
+          break;
+      }
+    });
+  }
+
+  void _parseYaml(YamlMap yaml) {
+    yaml.nodes.forEach((k, v) {
+      if (k is! YamlScalar) {
+        return;
+      }
+      YamlScalar key = k;
+      switch (key.toString()) {
+        case 'files':
+          if (v is YamlMap) {
+            addAsListOrString(v['include'], fileIncludes);
+            addAsListOrString(v['exclude'], fileExcludes);
+          }
+          break;
+
+        case 'rules':
+
+          // - unnecessary_getters
+          // - camel_case_types
+          if (v is List) {
+            (v as List).forEach((rule) {
+              var config = new _RuleConfig();
+              config.name = asString(rule);
+              config.args = {'enabled': true};
+              ruleConfigs.add(config);
+            });
+          }
+
+          // style_guide: {unnecessary_getters: false, camel_case_types: true}
+          if (v is YamlMap) {
+            v.forEach((key, value) {
+              //{unnecessary_getters: false}
+              if (value is bool) {
+                var config = new _RuleConfig();
+                config.name = asString(key);
+                config.args = {'enabled': value};
+                ruleConfigs.add(config);
+              }
+
+              // style_guide: {unnecessary_getters: false, camel_case_types: true}
+              if (value is YamlMap) {
+                value.forEach((rule, args) {
+                  // TODO: verify format
+                  // unnecessary_getters: false
+                  var config = new _RuleConfig();
+                  config.group = key;
+                  config.name = asString(rule);
+                  config.args = parseArgs(args);
+                  ruleConfigs.add(config);
+                });
+              }
+            });
+          }
+          break;
+      }
+    });
+  }
+}
+
+class _RuleConfig extends RuleConfig {
+  @override
+  String group;
+  @override
+  String name;
+}
diff --git a/pkg/analyzer/lib/src/lint/io.dart b/pkg/analyzer/lib/src/lint/io.dart
new file mode 100644
index 0000000..762ee93
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/io.dart
@@ -0,0 +1,68 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/src/lint/util.dart';
+import 'package:glob/glob.dart';
+import 'package:path/path.dart' as p;
+
+final dartMatcher = new Glob('**.dart');
+
+/// Shared IO sink for standard error reporting.
+/// Visible for testing
+IOSink errorSink = stderr;
+
+/// Shared IO sink for standard out reporting.
+/// Visible for testing
+IOSink outSink = stdout;
+
+/// Cached project package.
+String _projectPackageName;
+
+/// Cached project root.
+String _projectRoot;
+
+/// Collect all lintable files, recursively, under this [path] root, ignoring
+/// links.
+Iterable<File> collectFiles(String path) {
+  List<File> files = [];
+
+  var file = new File(path);
+  if (file.existsSync()) {
+    files.add(file);
+  } else {
+    var directory = new Directory(path);
+    if (directory.existsSync()) {
+      for (var entry
+          in directory.listSync(recursive: true, followLinks: false)) {
+        var relative = p.relative(entry.path, from: directory.path);
+
+        if (isLintable(entry) && !isInHiddenDir(relative)) {
+          files.add(entry);
+        }
+      }
+    }
+  }
+
+  return files;
+}
+
+/// Returns `true` if this [entry] is a Dart file.
+bool isDartFile(FileSystemEntity entry) => isDartFileName(entry.path);
+
+/// Returns `true` if this relative path is a hidden directory.
+bool isInHiddenDir(String relative) =>
+    p.split(relative).any((part) => part.startsWith("."));
+
+/// Returns `true` if this relative path is a hidden directory.
+bool isLintable(FileSystemEntity file) =>
+    file is File && (isDartFile(file) || isPubspecFile(file));
+
+/// Returns `true` if this [entry] is a pubspec file.
+bool isPubspecFile(FileSystemEntity entry) =>
+    isPubspecFileName(p.basename(entry.path));
+
+/// Synchronously read the contents of the file at the given [path] as a string.
+String readFile(String path) => new File(path).readAsStringSync();
diff --git a/pkg/analyzer/lib/src/lint/linter.dart b/pkg/analyzer/lib/src/lint/linter.dart
new file mode 100644
index 0000000..5706f35
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/linter.dart
@@ -0,0 +1,429 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/dart/ast/token.dart';
+import 'package:analyzer/src/generated/engine.dart'
+    show AnalysisErrorInfo, AnalysisErrorInfoImpl, Logger;
+import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
+import 'package:analyzer/src/generated/source.dart' show LineInfo;
+import 'package:analyzer/src/generated/source_io.dart';
+import 'package:analyzer/src/lint/analysis.dart';
+import 'package:analyzer/src/lint/config.dart';
+import 'package:analyzer/src/lint/io.dart';
+import 'package:analyzer/src/lint/project.dart';
+import 'package:analyzer/src/lint/pub.dart';
+import 'package:analyzer/src/lint/registry.dart';
+import 'package:analyzer/src/services/lint.dart' show Linter;
+import 'package:glob/glob.dart';
+import 'package:path/path.dart' as p;
+
+typedef Printer(String msg);
+
+/// Describes a String in valid camel case format.
+class CamelCaseString {
+  static final _camelCaseMatcher = new RegExp(r'[A-Z][a-z]*');
+  static final _camelCaseTester = new RegExp(r'^([_$]*)([A-Z?$]+[a-z0-9]*)+$');
+
+  final String value;
+  CamelCaseString(this.value) {
+    if (!isCamelCase(value)) {
+      throw new ArgumentError('$value is not CamelCase');
+    }
+  }
+
+  String get humanized => _humanize(value);
+
+  @override
+  String toString() => value;
+
+  static bool isCamelCase(String name) => _camelCaseTester.hasMatch(name);
+
+  static String _humanize(String camelCase) =>
+      _camelCaseMatcher.allMatches(camelCase).map((m) => m.group(0)).join(' ');
+}
+
+/// Dart source linter.
+class DartLinter implements AnalysisErrorListener {
+  final errors = <AnalysisError>[];
+
+  final LinterOptions options;
+  final Reporter reporter;
+
+  /// The total number of sources that were analyzed.  Only valid after
+  /// [lintFiles] has been called.
+  int numSourcesAnalyzed;
+
+  /// Creates a new linter.
+  DartLinter(this.options, {this.reporter: const PrintingReporter()});
+
+  Iterable<AnalysisErrorInfo> lintFiles(List<File> files) {
+    List<AnalysisErrorInfo> errors = [];
+    var analysisDriver = new AnalysisDriver(options);
+    errors.addAll(analysisDriver.analyze(files.where((f) => isDartFile(f))));
+    numSourcesAnalyzed = analysisDriver.numSourcesAnalyzed;
+    files.where((f) => isPubspecFile(f)).forEach((p) {
+      numSourcesAnalyzed++;
+      return errors.addAll(_lintPubspecFile(p));
+    });
+    return errors;
+  }
+
+  Iterable<AnalysisErrorInfo> lintPubspecSource(
+      {String contents, String sourcePath}) {
+    var results = <AnalysisErrorInfo>[];
+
+    Uri sourceUrl = sourcePath == null ? null : p.toUri(sourcePath);
+
+    var spec = new Pubspec.parse(contents, sourceUrl: sourceUrl);
+
+    for (Linter lint in options.enabledLints) {
+      if (lint is LintRule) {
+        LintRule rule = lint;
+        var visitor = rule.getPubspecVisitor();
+        if (visitor != null) {
+          // Analyzer sets reporters; if this file is not being analyzed,
+          // we need to set one ourselves.  (Needless to say, when pubspec
+          // processing gets pushed down, this hack can go away.)
+          if (rule.reporter == null && sourceUrl != null) {
+            var source = createSource(sourceUrl);
+            rule.reporter = new ErrorReporter(this, source);
+          }
+          try {
+            spec.accept(visitor);
+          } on Exception catch (e) {
+            reporter.exception(new LinterException(e.toString()));
+          }
+          if (rule._locationInfo != null && rule._locationInfo.isNotEmpty) {
+            results.addAll(rule._locationInfo);
+            rule._locationInfo.clear();
+          }
+        }
+      }
+    }
+
+    return results;
+  }
+
+  @override
+  onError(AnalysisError error) => errors.add(error);
+
+  Iterable<AnalysisErrorInfo> _lintPubspecFile(File sourceFile) =>
+      lintPubspecSource(
+          contents: sourceFile.readAsStringSync(), sourcePath: sourceFile.path);
+}
+
+class FileGlobFilter extends LintFilter {
+  Iterable<Glob> includes;
+  Iterable<Glob> excludes;
+
+  FileGlobFilter([Iterable<String> includeGlobs, Iterable<String> excludeGlobs])
+      : includes = includeGlobs.map((glob) => new Glob(glob)),
+        excludes = excludeGlobs.map((glob) => new Glob(glob));
+
+  @override
+  bool filter(AnalysisError lint) {
+    // TODO specify order
+    return excludes.any((glob) => glob.matches(lint.source.fullName)) &&
+        !includes.any((glob) => glob.matches(lint.source.fullName));
+  }
+}
+
+class Group implements Comparable<Group> {
+  /// Defined rule groups.
+  static const Group errors =
+      const Group._('errors', description: 'Possible coding errors.');
+  static const Group pub = const Group._('pub',
+      description: 'Pub-related rules.',
+      link: const Hyperlink('See the <strong>Pubspec Format</strong>',
+          'https://www.dartlang.org/tools/pub/pubspec.html'));
+  static const Group style = const Group._('style',
+      description:
+          'Matters of style, largely derived from the official Dart Style Guide.',
+      link: const Hyperlink('See the <strong>Style Guide</strong>',
+          'https://www.dartlang.org/articles/style-guide/'));
+
+  /// List of builtin groups in presentation order.
+  static const Iterable<Group> builtin = const [errors, style, pub];
+
+  final String name;
+  final bool custom;
+  final String description;
+  final Hyperlink link;
+
+  factory Group(String name, {String description: '', Hyperlink link}) {
+    var n = name.toLowerCase();
+    return builtin.firstWhere((g) => g.name == n,
+        orElse: () => new Group._(name,
+            custom: true, description: description, link: link));
+  }
+
+  const Group._(this.name, {this.custom: false, this.description, this.link});
+
+  @override
+  int compareTo(Group other) => name.compareTo(other.name);
+}
+
+class Hyperlink {
+  final String label;
+  final String href;
+  final bool bold;
+  const Hyperlink(this.label, this.href, {this.bold: false});
+  String get html => '<a href="$href">${_emph(label)}</a>';
+  String _emph(msg) => bold ? '<strong>$msg</strong>' : msg;
+}
+
+/// Thrown when an error occurs in linting.
+class LinterException implements Exception {
+  /// A message describing the error.
+  final String message;
+
+  /// Creates a new LinterException with an optional error [message].
+  const LinterException([this.message]);
+
+  @override
+  String toString() =>
+      message == null ? "LinterException" : "LinterException: $message";
+}
+
+/// Linter options.
+class LinterOptions extends DriverOptions {
+  Iterable<LintRule> enabledLints;
+  LintFilter filter;
+  LinterOptions([this.enabledLints]) {
+    enabledLints ??= Registry.ruleRegistry;
+  }
+  void configure(LintConfig config) {
+    // TODO(pquitslund): revisit these default-to-on semantics.
+    enabledLints = Registry.ruleRegistry.where((LintRule rule) =>
+        !config.ruleConfigs.any((rc) => rc.disables(rule.name)));
+    filter = new FileGlobFilter(config.fileIncludes, config.fileExcludes);
+  }
+}
+
+/// Filtered lints are ommitted from linter output.
+abstract class LintFilter {
+  bool filter(AnalysisError lint);
+}
+
+/// Describes a lint rule.
+abstract class LintRule extends Linter implements Comparable<LintRule> {
+  /// Description (in markdown format) suitable for display in a detailed lint
+  /// description.
+  final String details;
+
+  /// Short description suitable for display in console output.
+  final String description;
+
+  /// Lint group (for example, 'style').
+  final Group group;
+
+  /// Lint maturity (stable|experimental).
+  final Maturity maturity;
+
+  /// Lint name.
+  @override
+  final String name;
+
+  /// Until pubspec analysis is pushed into the analyzer proper, we need to
+  /// do some extra book-keeping to keep track of details that will help us
+  /// constitute AnalysisErrorInfos.
+  final List<AnalysisErrorInfo> _locationInfo = <AnalysisErrorInfo>[];
+
+  LintRule(
+      {this.name,
+      this.group,
+      this.description,
+      this.details,
+      this.maturity: Maturity.stable});
+
+  LintCode get lintCode => new _LintCode(name, description);
+
+  @override
+  int compareTo(LintRule other) {
+    var g = group.compareTo(other.group);
+    if (g != 0) {
+      return g;
+    }
+    return name.compareTo(other.name);
+  }
+
+  /// Return a visitor to be passed to provide access to Dart project context
+  /// and to perform project-level analyses.
+  ProjectVisitor getProjectVisitor() => null;
+
+  /// Return a visitor to be passed to pubspecs to perform lint
+  /// analysis.
+  /// Lint errors are reported via this [Linter]'s error [reporter].
+  PubspecVisitor getPubspecVisitor() => null;
+
+  @override
+  AstVisitor getVisitor() => null;
+
+  void reportLint(AstNode node, {bool ignoreSyntheticNodes: true}) {
+    if (node != null && (!node.isSynthetic || !ignoreSyntheticNodes)) {
+      reporter.reportErrorForNode(lintCode, node, []);
+    }
+  }
+
+  void reportLintForToken(Token token, {bool ignoreSyntheticTokens: true}) {
+    if (token != null && (!token.isSynthetic || !ignoreSyntheticTokens)) {
+      reporter.reportErrorForToken(lintCode, token, []);
+    }
+  }
+
+  void reportPubLint(PSNode node) {
+    Source source = createSource(node.span.sourceUrl);
+
+    // Cache error and location info for creating AnalysisErrorInfos
+    // Note that error columns are 1-based
+    AnalysisError error = new AnalysisError(
+        source, node.span.start.column + 1, node.span.length, lintCode);
+    LineInfo lineInfo = new LineInfo.fromContent(source.contents.data);
+
+    _locationInfo.add(new AnalysisErrorInfoImpl([error], lineInfo));
+
+    // Then do the reporting
+    reporter?.reportError(error);
+  }
+}
+
+class Maturity implements Comparable<Maturity> {
+  static const Maturity stable = const Maturity._('stable', ordinal: 0);
+  static const Maturity experimental = const Maturity._('stable', ordinal: 1);
+
+  final String name;
+  final int ordinal;
+
+  factory Maturity(String name, {int ordinal}) {
+    switch (name.toLowerCase()) {
+      case 'stable':
+        return stable;
+      case 'experimental':
+        return experimental;
+      default:
+        return new Maturity._(name, ordinal: ordinal);
+    }
+  }
+
+  const Maturity._(this.name, {this.ordinal});
+
+  @override
+  int compareTo(Maturity other) => this.ordinal - other.ordinal;
+}
+
+class PrintingReporter implements Reporter, Logger {
+  final Printer _print;
+
+  const PrintingReporter([this._print = print]);
+
+  @override
+  void exception(LinterException exception) {
+    _print('EXCEPTION: $exception');
+  }
+
+  @override
+  void logError(String message, [CaughtException exception]) {
+    _print('ERROR: $message');
+  }
+
+  @override
+  void logInformation(String message, [CaughtException exception]) {
+    _print('INFO: $message');
+  }
+
+  @override
+  void warn(String message) {
+    _print('WARN: $message');
+  }
+}
+
+abstract class Reporter {
+  void exception(LinterException exception);
+  void warn(String message);
+}
+
+/// Linter implementation.
+class SourceLinter implements DartLinter, AnalysisErrorListener {
+  @override
+  final errors = <AnalysisError>[];
+  @override
+  final LinterOptions options;
+  @override
+  final Reporter reporter;
+
+  @override
+  int numSourcesAnalyzed;
+
+  SourceLinter(this.options, {this.reporter: const PrintingReporter()});
+
+  @override
+  Iterable<AnalysisErrorInfo> lintFiles(List<File> files) {
+    List<AnalysisErrorInfo> errors = [];
+    var analysisDriver = new AnalysisDriver(options);
+    errors.addAll(analysisDriver.analyze(files.where((f) => isDartFile(f))));
+    numSourcesAnalyzed = analysisDriver.numSourcesAnalyzed;
+    files.where((f) => isPubspecFile(f)).forEach((p) {
+      numSourcesAnalyzed++;
+      return errors.addAll(_lintPubspecFile(p));
+    });
+    return errors;
+  }
+
+  @override
+  Iterable<AnalysisErrorInfo> lintPubspecSource(
+      {String contents, String sourcePath}) {
+    var results = <AnalysisErrorInfo>[];
+
+    Uri sourceUrl = sourcePath == null ? null : p.toUri(sourcePath);
+
+    var spec = new Pubspec.parse(contents, sourceUrl: sourceUrl);
+
+    for (Linter lint in options.enabledLints) {
+      if (lint is LintRule) {
+        LintRule rule = lint;
+        var visitor = rule.getPubspecVisitor();
+        if (visitor != null) {
+          // Analyzer sets reporters; if this file is not being analyzed,
+          // we need to set one ourselves.  (Needless to say, when pubspec
+          // processing gets pushed down, this hack can go away.)
+          if (rule.reporter == null && sourceUrl != null) {
+            var source = createSource(sourceUrl);
+            rule.reporter = new ErrorReporter(this, source);
+          }
+          try {
+            spec.accept(visitor);
+          } on Exception catch (e) {
+            reporter.exception(new LinterException(e.toString()));
+          }
+          if (rule._locationInfo != null && rule._locationInfo.isNotEmpty) {
+            results.addAll(rule._locationInfo);
+            rule._locationInfo.clear();
+          }
+        }
+      }
+    }
+
+    return results;
+  }
+
+  @override
+  onError(AnalysisError error) => errors.add(error);
+
+  @override
+  Iterable<AnalysisErrorInfo> _lintPubspecFile(File sourceFile) =>
+      lintPubspecSource(
+          contents: sourceFile.readAsStringSync(), sourcePath: sourceFile.path);
+}
+
+class _LintCode extends LintCode {
+  static final registry = <String, LintCode>{};
+
+  factory _LintCode(String name, String message) => registry.putIfAbsent(
+      name + message, () => new _LintCode._(name, message));
+
+  _LintCode._(String name, String message) : super(name, message);
+}
diff --git a/pkg/analysis_server/lib/src/services/linter/linter.dart b/pkg/analyzer/lib/src/lint/options_rule_validator.dart
similarity index 80%
rename from pkg/analysis_server/lib/src/services/linter/linter.dart
rename to pkg/analyzer/lib/src/lint/options_rule_validator.dart
index 964c238..109cdd2 100644
--- a/pkg/analysis_server/lib/src/services/linter/linter.dart
+++ b/pkg/analyzer/lib/src/lint/options_rule_validator.dart
@@ -1,12 +1,10 @@
-// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library services.src.linter;
-
 import 'package:analyzer/analyzer.dart';
 import 'package:analyzer/plugin/options.dart';
-import 'package:linter/src/rules.dart';
+import 'package:analyzer/src/lint/registry.dart';
 import 'package:yaml/yaml.dart';
 
 /**
@@ -19,7 +17,9 @@
     const AnalysisOptionsWarningCode(
         'UNDEFINED_LINT_WARNING', "'{0}' is not a recognized lint rule");
 
-/// Validates `linter` rule configurations.
+/**
+ * Validates `linter` rule configurations.
+ */
 class LinterRuleOptionsValidator extends OptionsValidator {
   static const linter = 'linter';
   static const rulesKey = 'rules';
@@ -37,8 +37,8 @@
 
   validateRules(dynamic rules, ErrorReporter reporter) {
     if (rules is YamlList) {
-      //TODO(pq): migrate this to a proper API once there is one.
-      Iterable<String> registeredLints = ruleRegistry.map((r) => r.name);
+      Iterable<String> registeredLints =
+          Registry.ruleRegistry.map((r) => r.name);
       rules.nodes.forEach((YamlNode ruleNode) {
         Object value = ruleNode.value;
         if (value != null && !registeredLints.contains(value)) {
diff --git a/pkg/analyzer/lib/src/lint/project.dart b/pkg/analyzer/lib/src/lint/project.dart
new file mode 100644
index 0000000..9b22294
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/project.dart
@@ -0,0 +1,129 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/src/generated/engine.dart';
+import 'package:analyzer/src/generated/resolver.dart';
+import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/lint/io.dart';
+import 'package:analyzer/src/lint/pub.dart';
+import 'package:path/path.dart' as p;
+
+Pubspec _findAndParsePubspec(Directory root) {
+  if (root.existsSync()) {
+    File pubspec = root
+        .listSync(followLinks: false)
+        .firstWhere((f) => isPubspecFile(f), orElse: () => null);
+    if (pubspec != null) {
+      return new Pubspec.parse(pubspec.readAsStringSync(),
+          sourceUrl: p.toUri(pubspec.path));
+    }
+  }
+  return null;
+}
+
+/// A semantic representation of a Dart project.
+///
+/// Projects provide a semantic model of a Dart project based on the
+/// [pub package layout conventions](https://www.dartlang.org/tools/pub/package-layout.html).
+/// This model allows clients to traverse project contents in a convenient and
+/// standardized way, access global information (such as whether elements are
+/// in the "public API") and resources that have special meanings in the
+/// context of pub package layout conventions.
+class DartProject {
+  _ApiModel _apiModel;
+  String _name;
+  Pubspec _pubspec;
+
+  /// Project root.
+  final Directory root;
+
+  /// Create a Dart project for the corresponding [context] and [sources].
+  /// If a [dir] is unspecified the current working directory will be
+  /// used.
+  DartProject(AnalysisContext context, List<Source> sources, {Directory dir})
+      : root = dir ?? Directory.current {
+    _pubspec = _findAndParsePubspec(root);
+    _apiModel = new _ApiModel(context, sources, root);
+  }
+
+  /// The project's name.
+  ///
+  /// Project names correspond to the package name as specified in the project's
+  /// [pubspec]. The pubspec is found relative to the project [root].  If no
+  /// pubspec can be found, the name defaults to the project root basename.
+  String get name => _name ??= _calculateName();
+
+  /// The project's pubspec.
+  Pubspec get pubspec => _pubspec;
+
+  /// Returns `true` if the given element is part of this project's public API.
+  ///
+  /// Public API elements are defined as all elements that are in the packages's
+  /// `lib` directory, *less* those in `lib/src` (which are treated as private
+  /// *implementation files*), plus elements having been explicitly exported
+  /// via an `export` directive.
+  bool isApi(Element element) => _apiModel.contains(element);
+
+  String _calculateName() {
+    if (pubspec != null) {
+      var nameEntry = pubspec.name;
+      if (nameEntry != null) {
+        return nameEntry.value.text;
+      }
+    }
+    return p.basename(root.path);
+  }
+}
+
+/// An object that can be used to visit Dart project structure.
+abstract class ProjectVisitor<T> {
+  T visit(DartProject project) => null;
+}
+
+/// Captures the project's API as defined by pub package layout standards.
+class _ApiModel {
+  final AnalysisContext context;
+  final List<Source> sources;
+  final Directory root;
+  final Set<LibraryElement> elements = new Set();
+
+  _ApiModel(this.context, this.sources, this.root) {
+    _calculate();
+  }
+
+  /// Return `true` if this element is part of the public API for this package.
+  bool contains(Element element) {
+    while (element != null) {
+      if (!element.isPrivate && elements.contains(element)) {
+        return true;
+      }
+      element = element.enclosingElement;
+    }
+    return false;
+  }
+
+  _calculate() {
+    if (sources == null || sources.isEmpty) {
+      return;
+    }
+
+    var libDir = root.path + '/lib';
+    var libSrcDir = libDir + '/src';
+
+    for (Source source in sources) {
+      var path = source.uri.path;
+      if (path.startsWith(libDir) && !path.startsWith(libSrcDir)) {
+        var library = context.computeLibraryElement(source);
+        var namespaceBuilder = new NamespaceBuilder();
+        var exports = namespaceBuilder.createExportNamespaceForLibrary(library);
+        var public = namespaceBuilder.createPublicNamespaceForLibrary(library);
+        elements.addAll(exports.definedNames.values);
+        elements.addAll(public.definedNames.values);
+      }
+    }
+  }
+}
diff --git a/pkg/analyzer/lib/src/lint/pub.dart b/pkg/analyzer/lib/src/lint/pub.dart
new file mode 100644
index 0000000..8d12e13
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/pub.dart
@@ -0,0 +1,430 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:collection';
+
+import 'package:source_span/source_span.dart';
+import 'package:yaml/yaml.dart';
+
+PSEntry _findEntry(YamlMap map, String key) {
+  PSEntry entry;
+  map.nodes.forEach((k, v) {
+    if (k is YamlScalar && key == k.toString()) {
+      entry = _processScalar(k, v);
+    }
+  });
+  return entry;
+}
+
+PSDependencyList _processDependencies(YamlScalar key, YamlNode v) {
+  if (v is! YamlMap) {
+    return null;
+  }
+  YamlMap depsMap = v;
+
+  _PSDependencyList deps = new _PSDependencyList(new _PSNode(key));
+  depsMap.nodes.forEach((k, v) => deps.add(new _PSDependency(k, v)));
+  return deps;
+}
+
+PSGitRepo _processGitRepo(YamlScalar key, YamlNode v) {
+  if (v is! YamlMap) {
+    return null;
+  }
+  YamlMap hostMap = v;
+  // url: git://github.com/munificent/kittens.git
+  // ref: some-branch
+  _PSGitRepo repo = new _PSGitRepo();
+  repo.token = new _PSNode(key);
+  repo.ref = _findEntry(hostMap, 'ref');
+  repo.url = _findEntry(hostMap, 'url');
+  return repo;
+}
+
+PSHost _processHost(YamlScalar key, YamlNode v) {
+  if (v is! YamlMap) {
+    return null;
+  }
+  YamlMap hostMap = v;
+  // name: transmogrify
+  // url: http://your-package-server.com
+  _PSHost host = new _PSHost();
+  host.token = new _PSNode(key);
+  host.name = _findEntry(hostMap, 'name');
+  host.url = _findEntry(hostMap, 'url');
+  return host;
+}
+
+PSNodeList _processList(YamlScalar key, YamlNode v) {
+  if (v is! YamlList) {
+    return null;
+  }
+  YamlList nodeList = v;
+
+  return new _PSNodeList(
+      new _PSNode(key), nodeList.nodes.map((n) => new _PSNode(n)));
+}
+
+PSEntry _processScalar(YamlScalar key, YamlNode value) {
+  if (value is! YamlScalar) {
+    return null;
+    //WARN?
+  }
+  return new PSEntry(new _PSNode(key), new _PSNode(value));
+}
+
+abstract class PSDependency {
+  PSGitRepo get git;
+  PSHost get host;
+  PSNode get name;
+  PSEntry get version;
+}
+
+abstract class PSDependencyList extends Object
+    with IterableMixin<PSDependency> {}
+
+class PSEntry {
+  final PSNode key;
+  final PSNode value;
+  PSEntry(this.key, this.value);
+
+  @override
+  String toString() => '${key != null ? (key.toString() + ': ') : ''}$value';
+}
+
+abstract class PSGitRepo {
+  PSEntry get ref;
+  PSNode get token;
+  PSEntry get url;
+}
+
+abstract class PSHost {
+  PSEntry get name;
+  PSNode get token;
+  PSEntry get url;
+}
+
+abstract class PSNode {
+  SourceSpan get span;
+  String get text;
+}
+
+abstract class PSNodeList extends Object with IterableMixin<PSNode> {
+  @override
+  Iterator<PSNode> get iterator;
+  PSNode get token;
+}
+
+abstract class Pubspec {
+  factory Pubspec.parse(String source, {Uri sourceUrl}) =>
+      new _Pubspec(source, sourceUrl: sourceUrl);
+  PSEntry get author;
+  PSNodeList get authors;
+  PSDependencyList get dependencies;
+  PSEntry get description;
+  PSDependencyList get devDependencies;
+  PSEntry get documentation;
+  PSEntry get homepage;
+  PSEntry get name;
+  PSEntry get version;
+  accept(PubspecVisitor visitor);
+}
+
+abstract class PubspecVisitor<T> {
+  T visitPackageAuthor(PSEntry author) => null;
+  T visitPackageAuthors(PSNodeList authors) => null;
+  T visitPackageDependencies(PSDependencyList dependencies) => null;
+  T visitPackageDependency(PSDependency dependency) => null;
+  T visitPackageDescription(PSEntry description) => null;
+  T visitPackageDevDependencies(PSDependencyList dependencies) => null;
+  T visitPackageDevDependency(PSDependency dependency) => null;
+  T visitPackageDocumentation(PSEntry documentation) => null;
+  T visitPackageHomepage(PSEntry homepage) => null;
+  T visitPackageName(PSEntry name) => null;
+  T visitPackageVersion(PSEntry version) => null;
+}
+
+class _PSDependency extends PSDependency {
+  @override
+  PSNode name;
+  @override
+  PSEntry version;
+  @override
+  PSHost host;
+  @override
+  PSGitRepo git;
+
+  factory _PSDependency(dynamic k, YamlNode v) {
+    if (k is! YamlScalar) {
+      return null;
+    }
+    YamlScalar key = k;
+
+    _PSDependency dep = new _PSDependency._();
+
+    dep.name = new _PSNode(key);
+
+    if (v is YamlScalar) {
+      // Simple version
+      dep.version = new PSEntry(null, new _PSNode(v));
+    } else if (v is YamlMap) {
+      // hosted:
+      //   name: transmogrify
+      //   url: http://your-package-server.com
+      //   version: '>=0.4.0 <1.0.0'
+      YamlMap details = v;
+      details.nodes.forEach((k, v) {
+        if (k is! YamlScalar) {
+          return;
+        }
+        YamlScalar key = k;
+        switch (key.toString()) {
+          case 'version':
+            dep.version = _processScalar(key, v);
+            break;
+          case 'hosted':
+            dep.host = _processHost(key, v);
+            break;
+          case 'git':
+            dep.git = _processGitRepo(key, v);
+            break;
+        }
+      });
+    }
+    return dep;
+  }
+
+  _PSDependency._();
+
+  @override
+  String toString() {
+    var sb = new StringBuffer();
+    if (name != null) {
+      sb.write('$name:');
+    }
+    var versionInfo = '';
+    if (version != null) {
+      if (version.key == null) {
+        versionInfo = ' $version';
+      } else {
+        versionInfo = '\n    $version';
+      }
+    }
+    sb.writeln(versionInfo);
+    if (host != null) {
+      sb.writeln(host);
+    }
+    if (git != null) {
+      sb.writeln(git);
+    }
+    return sb.toString();
+  }
+}
+
+class _PSDependencyList extends PSDependencyList {
+  final dependencies = <PSDependency>[];
+  final PSNode token;
+
+  _PSDependencyList(this.token);
+
+  @override
+  Iterator<PSDependency> get iterator => dependencies.iterator;
+
+  add(PSDependency dependency) {
+    if (dependency != null) {
+      dependencies.add(dependency);
+    }
+  }
+
+  @override
+  String toString() => '$token\n${dependencies.join('  ')}';
+}
+
+class _PSGitRepo implements PSGitRepo {
+  @override
+  PSNode token;
+  @override
+  PSEntry ref;
+  @override
+  PSEntry url;
+  @override
+  String toString() => '''
+    $token:
+      $url
+      $ref''';
+}
+
+class _PSHost implements PSHost {
+  @override
+  PSNode token;
+  @override
+  PSEntry name;
+  @override
+  PSEntry url;
+  @override
+  String toString() => '''
+    $token:
+      $name
+      $url''';
+}
+
+class _PSNode implements PSNode {
+  @override
+  final String text;
+  @override
+  final SourceSpan span;
+
+  _PSNode(YamlNode node)
+      : text = node.value?.toString(),
+        span = node.span;
+
+  @override
+  String toString() => '$text';
+}
+
+class _PSNodeList extends PSNodeList {
+  @override
+  final PSNode token;
+  final Iterable<PSNode> nodes;
+
+  _PSNodeList(this.token, this.nodes);
+
+  @override
+  Iterator<PSNode> get iterator => nodes.iterator;
+
+  @override
+  String toString() => '''
+$token:
+  - ${nodes.join('\n  - ')}''';
+}
+
+class _Pubspec implements Pubspec {
+  @override
+  PSEntry author;
+  @override
+  PSNodeList authors;
+  @override
+  PSEntry description;
+  @override
+  PSEntry documentation;
+  @override
+  PSEntry homepage;
+  @override
+  PSEntry name;
+  @override
+  PSEntry version;
+  @override
+  PSDependencyList dependencies;
+  @override
+  PSDependencyList devDependencies;
+
+  _Pubspec(String src, {Uri sourceUrl}) {
+    try {
+      _parse(src, sourceUrl: sourceUrl);
+    } on Exception {
+      // ignore
+    }
+  }
+
+  @override
+  void accept(PubspecVisitor visitor) {
+    if (author != null) {
+      visitor.visitPackageAuthor(author);
+    }
+    if (authors != null) {
+      visitor.visitPackageAuthors(authors);
+    }
+    if (description != null) {
+      visitor.visitPackageDescription(description);
+    }
+    if (documentation != null) {
+      visitor.visitPackageDocumentation(documentation);
+    }
+    if (homepage != null) {
+      visitor.visitPackageHomepage(homepage);
+    }
+    if (name != null) {
+      visitor.visitPackageName(name);
+    }
+    if (version != null) {
+      visitor.visitPackageVersion(version);
+    }
+    if (dependencies != null) {
+      visitor.visitPackageDependencies(dependencies);
+      dependencies.forEach((d) => visitor.visitPackageDependency(d));
+    }
+    if (devDependencies != null) {
+      visitor.visitPackageDevDependencies(devDependencies);
+      devDependencies.forEach((d) => visitor.visitPackageDevDependency(d));
+    }
+  }
+
+  @override
+  String toString() {
+    var sb = new _StringBuilder();
+    sb.writelin(name);
+    sb.writelin(version);
+    sb.writelin(author);
+    sb.writelin(authors);
+    sb.writelin(description);
+    sb.writelin(homepage);
+    sb.writelin(dependencies);
+    sb.writelin(devDependencies);
+    return sb.toString();
+  }
+
+  _parse(String src, {Uri sourceUrl}) {
+    var yaml = loadYamlNode(src, sourceUrl: sourceUrl);
+    if (yaml is! YamlMap) {
+      return;
+    }
+    YamlMap yamlMap = yaml;
+    yamlMap.nodes.forEach((k, v) {
+      if (k is! YamlScalar) {
+        return;
+      }
+      YamlScalar key = k;
+      switch (key.toString()) {
+        case 'author':
+          author = _processScalar(key, v);
+          break;
+        case 'authors':
+          authors = _processList(key, v);
+          break;
+        case 'homepage':
+          homepage = _processScalar(key, v);
+          break;
+        case 'name':
+          name = _processScalar(key, v);
+          break;
+        case 'description':
+          description = _processScalar(key, v);
+          break;
+        case 'documentation':
+          documentation = _processScalar(key, v);
+          break;
+        case 'dependencies':
+          dependencies = _processDependencies(key, v);
+          break;
+        case 'dev_dependencies':
+          devDependencies = _processDependencies(key, v);
+          break;
+        case 'version':
+          version = _processScalar(key, v);
+          break;
+      }
+    });
+  }
+}
+
+class _StringBuilder {
+  StringBuffer buffer = new StringBuffer();
+  @override
+  String toString() => buffer.toString();
+  writelin(Object value) {
+    if (value != null) {
+      buffer.writeln(value);
+    }
+  }
+}
diff --git a/pkg/analyzer/lib/src/lint/registry.dart b/pkg/analyzer/lib/src/lint/registry.dart
new file mode 100644
index 0000000..172767b
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/registry.dart
@@ -0,0 +1,75 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:collection';
+
+import 'package:analyzer/src/lint/config.dart';
+import 'package:analyzer/src/lint/linter.dart';
+
+/**
+ * Registry of lint rules.
+ */
+class Registry extends Object with IterableMixin<LintRule> {
+  /**
+   * The default registry to be used by clients.
+   */
+  static final Registry ruleRegistry = new Registry();
+
+  /**
+   * A table mapping rule names to rules.
+   */
+  Map<String, LintRule> _ruleMap = <String, LintRule>{};
+
+  /**
+   * A list of the default lint rules.
+   */
+  List<LintRule> _defaultRules = <LintRule>[];
+
+  /**
+   * Return a list of the default lint rules.
+   */
+  List<LintRule> get defaultRules => _defaultRules;
+
+  @override
+  Iterator<LintRule> get iterator => _ruleMap.values.iterator;
+
+  /**
+   * Return a list of the rules that are defined.
+   */
+  Iterable<LintRule> get rules => _ruleMap.values;
+
+  /**
+   * Return the lint rule with the given [name].
+   */
+  LintRule operator [](String name) => _ruleMap[name];
+
+  /**
+   * Return a list of the lint rules explicitly enabled by the given [config].
+   *
+   * For example:
+   *     my_rule: true
+   *
+   * enables `my_rule`.
+   *
+   * Unspecified rules are treated as disabled by default.
+   */
+  Iterable<LintRule> enabled(LintConfig config) => rules
+      .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name)));
+
+  /**
+   * Add the given lint [rule] to this registry.
+   */
+  void register(LintRule rule) {
+    _ruleMap[rule.name] = rule;
+  }
+
+  /**
+   * Add the given lint [rule] to this registry and mark it as being a default
+   * lint (one that will be run if lints are requested but no rules are enabled.
+   */
+  void registerDefault(LintRule rule) {
+    register(rule);
+    _defaultRules.add(rule);
+  }
+}
diff --git a/pkg/analyzer/lib/src/lint/util.dart b/pkg/analyzer/lib/src/lint/util.dart
new file mode 100644
index 0000000..e1c63af
--- /dev/null
+++ b/pkg/analyzer/lib/src/lint/util.dart
@@ -0,0 +1,172 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/dart/ast/token.dart';
+import 'package:analyzer/src/dart/ast/token.dart';
+import 'package:analyzer/src/dart/scanner/reader.dart';
+import 'package:analyzer/src/dart/scanner/scanner.dart';
+import 'package:analyzer/src/generated/parser.dart' show Parser;
+import 'package:analyzer/src/string_source.dart' show StringSource;
+import 'package:path/path.dart' as p;
+
+final _identifier = new RegExp(r'^([(_|$)a-zA-Z]+([_a-zA-Z0-9])*)$');
+
+final _lowerCamelCase =
+    new RegExp(r'^(_)*[?$a-z][a-z0-9?$]*([A-Z][a-z0-9?$]*)*$');
+
+final _lowerCaseUnderScore = new RegExp(r'^([a-z]+([_]?[a-z0-9]+)*)+$');
+
+final _lowerCaseUnderScoreWithDots =
+    new RegExp(r'^[a-z][_a-z0-9]*(\.[a-z][_a-z0-9]*)*$');
+
+final _pubspec = new RegExp(r'^[_]?pubspec\.yaml$');
+
+final _underscores = new RegExp(r'^[_]+$');
+
+/// Create a library name prefix based on [libraryPath], [projectRoot] and
+/// current [packageName].
+String createLibraryNamePrefix(
+    {String libraryPath, String projectRoot, String packageName}) {
+  // Use the posix context to canonicalize separators (`\`).
+  var libraryDirectory = p.posix.dirname(libraryPath);
+  var path = p.posix.relative(libraryDirectory, from: projectRoot);
+  // Drop 'lib/'.
+  var segments = p.split(path);
+  if (segments[0] == 'lib') {
+    path = p.posix.joinAll(segments.sublist(1));
+  }
+  // Replace separators.
+  path = path.replaceAll('/', '.');
+  // Add separator if needed.
+  if (path.isNotEmpty) {
+    path = '.$path';
+  }
+
+  return '$packageName$path';
+}
+
+/// Returns `true` if this [fileName] is a Dart file.
+bool isDartFileName(String fileName) => fileName.endsWith('.dart');
+
+/// Returns `true` if this [name] is a legal Dart identifier.
+bool isIdentifier(String name) => _identifier.hasMatch(name);
+
+/// Returns `true` of the given [name] is composed only of `_`s.
+bool isJustUnderscores(String name) => _underscores.hasMatch(name);
+
+/// Returns `true` if this [id] is `lowerCamelCase`.
+bool isLowerCamelCase(String id) =>
+    id.length == 1 && isUpperCase(id.codeUnitAt(0)) ||
+    id == '_' ||
+    _lowerCamelCase.hasMatch(id);
+
+/// Returns `true` if this [id] is `lower_camel_case_with_underscores`.
+bool isLowerCaseUnderScore(String id) => _lowerCaseUnderScore.hasMatch(id);
+
+/// Returns `true` if this [id] is `lower_camel_case_with_underscores_or.dots`.
+bool isLowerCaseUnderScoreWithDots(String id) =>
+    _lowerCaseUnderScoreWithDots.hasMatch(id);
+
+/// Returns `true` if this [fileName] is a Pubspec file.
+bool isPubspecFileName(String fileName) => _pubspec.hasMatch(fileName);
+
+/// Returns `true` if the given code unit [c] is upper case.
+bool isUpperCase(int c) => c >= 0x40 && c <= 0x5A;
+
+class Spelunker {
+  final String path;
+  final IOSink sink;
+  Spelunker(this.path, {IOSink sink}) : this.sink = sink ?? stdout;
+
+  void spelunk() {
+    var contents = new File(path).readAsStringSync();
+
+    var errorListener = new _ErrorListener();
+
+    var reader = new CharSequenceReader(contents);
+    var stringSource = new StringSource(contents, path);
+    var scanner = new Scanner(stringSource, reader, errorListener);
+    var startToken = scanner.tokenize();
+
+    errorListener.throwIfErrors();
+
+    var parser = new Parser(stringSource, errorListener);
+    var node = parser.parseCompilationUnit(startToken);
+
+    errorListener.throwIfErrors();
+
+    var visitor = new _SourceVisitor(sink);
+    node.accept(visitor);
+  }
+}
+
+class _ErrorListener implements AnalysisErrorListener {
+  final errors = <AnalysisError>[];
+
+  @override
+  void onError(AnalysisError error) {
+    errors.add(error);
+  }
+
+  void throwIfErrors() {
+    if (errors.isNotEmpty) {
+      throw new Exception(errors);
+    }
+  }
+}
+
+class _SourceVisitor extends GeneralizingAstVisitor {
+  int indent = 0;
+
+  final IOSink sink;
+  _SourceVisitor(this.sink);
+
+  String asString(AstNode node) =>
+      typeInfo(node.runtimeType) + ' [${node.toString()}]';
+
+  List<CommentToken> getPrecedingComments(Token token) {
+    var comments = <CommentToken>[];
+    var comment = token.precedingComments;
+    while (comment is CommentToken) {
+      comments.add(comment);
+      comment = comment.next;
+    }
+    return comments;
+  }
+
+  String getTrailingComment(AstNode node) {
+    var successor = node.endToken.next;
+    if (successor != null) {
+      var precedingComments = successor.precedingComments;
+      if (precedingComments != null) {
+        return precedingComments.toString();
+      }
+    }
+    return '';
+  }
+
+  String typeInfo(Type type) => type.toString();
+
+  @override
+  visitNode(AstNode node) {
+    write(node);
+
+    ++indent;
+    node.visitChildren(this);
+    --indent;
+    return null;
+  }
+
+  write(AstNode node) {
+    //EOL comments
+    var comments = getPrecedingComments(node.beginToken);
+    comments.forEach((c) => sink.writeln('${"  " * indent}$c'));
+
+    sink.writeln(
+        '${"  " * indent}${asString(node)} ${getTrailingComment(node)}');
+  }
+}
diff --git a/pkg/analyzer/lib/src/plugin/command_line_plugin.dart b/pkg/analyzer/lib/src/plugin/command_line_plugin.dart
deleted file mode 100644
index b2f8c58..0000000
--- a/pkg/analyzer/lib/src/plugin/command_line_plugin.dart
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer.src.plugin.command_line_plugin;
-
-import 'package:analyzer/plugin/command_line.dart';
-import 'package:plugin/plugin.dart';
-
-/**
- * A plugin that defines the extension points and extensions that are defined by
- * command-line applications using the analysis engine.
- */
-class CommandLinePlugin implements Plugin {
-  /**
-   * The simple identifier of the extension point that allows plugins to
-   * register new parser contributors.
-   */
-  static const String PARSER_CONTRIBUTOR_EXTENSION_POINT = 'parserContributor';
-
-  /**
-   * The simple identifier of the extension point that allows plugins to
-   * register new result processors.
-   */
-  static const String RESULT_PROCESSOR_EXTENSION_POINT = 'resultProcessor';
-
-  /**
-   * The unique identifier of this plugin.
-   */
-  static const String UNIQUE_IDENTIFIER = 'command_line.core';
-
-  /**
-   * The extension point that allows plugins to register new parser
-   * contributors.
-   */
-  ExtensionPoint<ArgParserContributor> parserContributorExtensionPoint;
-
-  /**
-   * The extension point that allows plugins to register new result processors.
-   */
-  ExtensionPoint<ArgResultsProcessor> resultProcessorExtensionPoint;
-
-  /**
-   * Initialize a newly created plugin.
-   */
-  CommandLinePlugin();
-
-  /**
-   * Return a list containing all of the parser contributors that were
-   * contributed.
-   */
-  List<ArgParserContributor> get parserContributors =>
-      parserContributorExtensionPoint.extensions;
-
-  /**
-   * Return a list containing all of the result processors that were
-   * contributed.
-   */
-  List<ArgResultsProcessor> get resultProcessors =>
-      resultProcessorExtensionPoint.extensions;
-
-  @override
-  String get uniqueIdentifier => UNIQUE_IDENTIFIER;
-
-  @override
-  void registerExtensionPoints(RegisterExtensionPoint registerExtensionPoint) {
-    parserContributorExtensionPoint = new ExtensionPoint<ArgParserContributor>(
-        this, PARSER_CONTRIBUTOR_EXTENSION_POINT, null);
-    registerExtensionPoint(parserContributorExtensionPoint);
-    resultProcessorExtensionPoint = new ExtensionPoint<ArgResultsProcessor>(
-        this, RESULT_PROCESSOR_EXTENSION_POINT, null);
-    registerExtensionPoint(resultProcessorExtensionPoint);
-  }
-
-  @override
-  void registerExtensions(RegisterExtension registerExtension) {
-    // There are no default extensions.
-  }
-}
diff --git a/pkg/analyzer/lib/src/plugin/engine_plugin.dart b/pkg/analyzer/lib/src/plugin/engine_plugin.dart
index 8166178..fb0599db4 100644
--- a/pkg/analyzer/lib/src/plugin/engine_plugin.dart
+++ b/pkg/analyzer/lib/src/plugin/engine_plugin.dart
@@ -10,11 +10,9 @@
     show InternalAnalysisContext;
 import 'package:analyzer/src/task/dart.dart';
 import 'package:analyzer/src/task/dart_work_manager.dart';
-import 'package:analyzer/src/task/general.dart';
 import 'package:analyzer/src/task/html.dart';
 import 'package:analyzer/src/task/html_work_manager.dart';
 import 'package:analyzer/src/task/options_work_manager.dart';
-import 'package:analyzer/src/task/yaml.dart';
 import 'package:analyzer/task/model.dart';
 import 'package:plugin/plugin.dart';
 
@@ -46,12 +44,6 @@
 
   /**
    * The simple identifier of the extension point that allows plugins to
-   * register new analysis tasks with the analysis engine.
-   */
-  static const String TASK_EXTENSION_POINT = 'task';
-
-  /**
-   * The simple identifier of the extension point that allows plugins to
    * register new work manager factories with the analysis engine.
    */
   static const String WORK_MANAGER_FACTORY_EXTENSION_POINT =
@@ -83,12 +75,6 @@
   ExtensionPoint<ListResultDescriptor<AnalysisError>> htmlErrorsExtensionPoint;
 
   /**
-   * The extension point that allows plugins to register new analysis tasks with
-   * the analysis engine.
-   */
-  ExtensionPoint<TaskDescriptor> taskExtensionPoint;
-
-  /**
    * The extension point that allows plugins to register new work manager
    * factories with the analysis engine.
    */
@@ -122,11 +108,6 @@
   @ExtensionPointId('HTML_ERRORS_EXTENSION_POINT_ID')
   List<ResultDescriptor> get htmlErrors => htmlErrorsExtensionPoint.extensions;
 
-  /**
-   * Return a list containing all of the task descriptors that were contributed.
-   */
-  List<TaskDescriptor> get taskDescriptors => taskExtensionPoint.extensions;
-
   @override
   String get uniqueIdentifier => UNIQUE_IDENTIFIER;
 
@@ -151,9 +132,6 @@
         new ExtensionPoint<ListResultDescriptor<AnalysisError>>(
             this, HTML_ERRORS_EXTENSION_POINT, null);
     registerExtensionPoint(htmlErrorsExtensionPoint);
-    taskExtensionPoint =
-        new ExtensionPoint<TaskDescriptor>(this, TASK_EXTENSION_POINT, null);
-    registerExtensionPoint(taskExtensionPoint);
     workManagerFactoryExtensionPoint = new ExtensionPoint<WorkManagerFactory>(
         this, WORK_MANAGER_FACTORY_EXTENSION_POINT, null);
     registerExtensionPoint(workManagerFactoryExtensionPoint);
@@ -161,7 +139,6 @@
 
   @override
   void registerExtensions(RegisterExtension registerExtension) {
-    _registerTaskExtensions(registerExtension);
     _registerWorkManagerFactoryExtensions(registerExtension);
     _registerDartErrorsForSource(registerExtension);
     _registerDartErrorsForUnit(registerExtension);
@@ -182,75 +159,6 @@
     registerExtension(HTML_ERRORS_EXTENSION_POINT_ID, HTML_DOCUMENT_ERRORS);
   }
 
-  void _registerTaskExtensions(RegisterExtension registerExtension) {
-    String taskId = TASK_EXTENSION_POINT_ID;
-    //
-    // Register general tasks.
-    //
-    registerExtension(taskId, GetContentTask.DESCRIPTOR);
-    //
-    // Register Dart tasks.
-    //
-    registerExtension(taskId, BuildCompilationUnitElementTask.DESCRIPTOR);
-    registerExtension(taskId, BuildDirectiveElementsTask.DESCRIPTOR);
-    registerExtension(taskId, BuildEnumMemberElementsTask.DESCRIPTOR);
-    registerExtension(taskId, BuildExportNamespaceTask.DESCRIPTOR);
-    registerExtension(taskId, BuildLibraryElementTask.DESCRIPTOR);
-    registerExtension(taskId, BuildPublicNamespaceTask.DESCRIPTOR);
-    registerExtension(taskId, BuildSourceExportClosureTask.DESCRIPTOR);
-    registerExtension(taskId, BuildTypeProviderTask.DESCRIPTOR);
-    registerExtension(taskId, ComputeConstantDependenciesTask.DESCRIPTOR);
-    registerExtension(taskId, ComputeConstantValueTask.DESCRIPTOR);
-    registerExtension(
-        taskId, ComputeInferableStaticVariableDependenciesTask.DESCRIPTOR);
-    registerExtension(taskId, ComputeLibraryCycleTask.DESCRIPTOR);
-    registerExtension(taskId, ComputeRequiredConstantsTask.DESCRIPTOR);
-    registerExtension(taskId, ContainingLibrariesTask.DESCRIPTOR);
-    registerExtension(taskId, DartErrorsTask.DESCRIPTOR);
-    registerExtension(taskId, EvaluateUnitConstantsTask.DESCRIPTOR);
-    registerExtension(taskId, GatherUsedImportedElementsTask.DESCRIPTOR);
-    registerExtension(taskId, GatherUsedLocalElementsTask.DESCRIPTOR);
-    registerExtension(taskId, GenerateHintsTask.DESCRIPTOR);
-    registerExtension(taskId, GenerateLintsTask.DESCRIPTOR);
-    registerExtension(taskId, InferInstanceMembersInUnitTask.DESCRIPTOR);
-    registerExtension(taskId, InferStaticVariableTypesInUnitTask.DESCRIPTOR);
-    registerExtension(taskId, InferStaticVariableTypeTask.DESCRIPTOR);
-    registerExtension(taskId, LibraryErrorsReadyTask.DESCRIPTOR);
-    registerExtension(taskId, LibraryUnitErrorsTask.DESCRIPTOR);
-    registerExtension(taskId, ParseDartTask.DESCRIPTOR);
-    registerExtension(taskId, PartiallyResolveUnitReferencesTask.DESCRIPTOR);
-    registerExtension(taskId, ReadyLibraryElement2Task.DESCRIPTOR);
-    registerExtension(taskId, ReadyLibraryElement5Task.DESCRIPTOR);
-    registerExtension(taskId, ReadyLibraryElement7Task.DESCRIPTOR);
-    registerExtension(taskId, ReadyResolvedUnitTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveConstantExpressionTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveDirectiveElementsTask.DESCRIPTOR);
-    registerExtension(taskId, ResolvedUnit7InLibraryClosureTask.DESCRIPTOR);
-    registerExtension(taskId, ResolvedUnit7InLibraryTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveInstanceFieldsInUnitTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveLibraryReferencesTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveLibraryTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveLibraryTypeNamesTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveTopLevelLibraryTypeBoundsTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveTopLevelUnitTypeBoundsTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveUnitTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveUnitTypeNamesTask.DESCRIPTOR);
-    registerExtension(taskId, ResolveVariableReferencesTask.DESCRIPTOR);
-    registerExtension(taskId, ScanDartTask.DESCRIPTOR);
-    registerExtension(taskId, StrongModeVerifyUnitTask.DESCRIPTOR);
-    registerExtension(taskId, VerifyUnitTask.DESCRIPTOR);
-    //
-    // Register HTML tasks.
-    //
-    registerExtension(taskId, DartScriptsTask.DESCRIPTOR);
-    registerExtension(taskId, HtmlErrorsTask.DESCRIPTOR);
-    registerExtension(taskId, ParseHtmlTask.DESCRIPTOR);
-    //
-    // Register YAML tasks.
-    //
-    registerExtension(taskId, ParseYamlTask.DESCRIPTOR);
-  }
-
   void _registerWorkManagerFactoryExtensions(
       RegisterExtension registerExtension) {
     String taskId = WORK_MANAGER_EXTENSION_POINT_ID;
diff --git a/pkg/analyzer/lib/src/plugin/options_plugin.dart b/pkg/analyzer/lib/src/plugin/options_plugin.dart
deleted file mode 100644
index aceaf3b..0000000
--- a/pkg/analyzer/lib/src/plugin/options_plugin.dart
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer.src.plugin.options_plugin;
-
-import 'package:analyzer/plugin/options.dart';
-import 'package:analyzer/plugin/task.dart';
-import 'package:analyzer/src/task/options.dart';
-import 'package:plugin/plugin.dart';
-
-/// A plugin that defines the extension points and extensions that are defined
-/// by applications that want to consume options defined in the analysis
-/// options file.
-class OptionsPlugin implements Plugin {
-  /// The simple identifier of the extension point that allows plugins to
-  /// register new options processors.
-  static const String OPTIONS_PROCESSOR_EXTENSION_POINT = 'optionsProcessor';
-
-  /// The simple identifier of the extension point that allows plugins to
-  /// register new options validators.
-  static const String OPTIONS_VALIDATOR_EXTENSION_POINT = 'optionsValidator';
-
-  /// The unique identifier of this plugin.
-  static const String UNIQUE_IDENTIFIER = 'options.core';
-
-  /// The extension point that allows plugins to register new options
-  /// processors.
-  ExtensionPoint<OptionsProcessor> optionsProcessorExtensionPoint;
-
-  /// The extension point that allows plugins to register new options
-  /// validators.
-  ExtensionPoint<OptionsValidator> optionsValidatorExtensionPoint;
-
-  /// All contributed options processors.
-  List<OptionsProcessor> get optionsProcessors =>
-      optionsProcessorExtensionPoint?.extensions ?? const <OptionsProcessor>[];
-
-  /// All contributed options validators.
-  List<OptionsValidator> get optionsValidators =>
-      optionsValidatorExtensionPoint?.extensions ?? const <OptionsValidator>[];
-
-  @override
-  String get uniqueIdentifier => UNIQUE_IDENTIFIER;
-
-  @override
-  void registerExtensionPoints(RegisterExtensionPoint registerExtensionPoint) {
-    optionsProcessorExtensionPoint = new ExtensionPoint<OptionsProcessor>(
-        this, OPTIONS_PROCESSOR_EXTENSION_POINT, null);
-    registerExtensionPoint(optionsProcessorExtensionPoint);
-    optionsValidatorExtensionPoint = new ExtensionPoint<OptionsValidator>(
-        this, OPTIONS_VALIDATOR_EXTENSION_POINT, null);
-    registerExtensionPoint(optionsValidatorExtensionPoint);
-  }
-
-  @override
-  void registerExtensions(RegisterExtension registerExtension) {
-    // Analyze options files.
-    registerExtension(
-        TASK_EXTENSION_POINT_ID, GenerateOptionsErrorsTask.DESCRIPTOR);
-    // Validate analyzer analysis options.
-    registerExtension(
-        OPTIONS_VALIDATOR_EXTENSION_POINT_ID, new AnalyzerOptionsValidator());
-  }
-}
diff --git a/pkg/analyzer/lib/src/plugin/plugin_configuration.dart b/pkg/analyzer/lib/src/plugin/plugin_configuration.dart
deleted file mode 100644
index 2137f11..0000000
--- a/pkg/analyzer/lib/src/plugin/plugin_configuration.dart
+++ /dev/null
@@ -1,198 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer.src.plugin.plugin_configuration;
-
-import 'package:analyzer/plugin/options.dart';
-import 'package:analyzer/src/generated/engine.dart';
-import 'package:yaml/yaml.dart';
-
-const _analyzerOptionScope = 'analyzer';
-
-const _pluginOptionScope = 'plugins';
-
-/// Parse the given string into a plugin manifest.
-PluginManifest parsePluginManifestString(String manifestSource) {
-  var yaml = loadYaml(manifestSource);
-  if (yaml == null) {
-    return null;
-  }
-  _verifyMap(yaml, 'plugin manifest');
-  Iterable<String> pluginHost = _parseHosts(yaml['contributes_to']);
-  PluginInfo plugin = _parsePlugin(yaml);
-  return new PluginManifest(contributesTo: pluginHost, plugin: plugin);
-}
-
-String _asString(dynamic yaml) {
-  if (yaml != null && yaml is! String) {
-    throw new PluginConfigFormatException(
-        'Unable to parse pugin manifest, '
-        'expected `String`, got `${yaml.runtimeType}`',
-        yaml);
-  }
-  return yaml;
-}
-
-Iterable<String> _parseHosts(dynamic yaml) {
-  List<String> hosts = <String>[];
-  if (yaml is String) {
-    hosts.add(yaml);
-  } else if (yaml is YamlList) {
-    yaml.forEach((h) => hosts.add(_asString(h)));
-  }
-  return hosts;
-}
-
-PluginInfo _parsePlugin(dynamic yaml) {
-  if (yaml != null) {
-    _verifyMap(yaml, 'plugin manifest');
-    return new PluginInfo._fromYaml(details: yaml);
-  }
-  return null;
-}
-
-PluginInfo _processPluginMapping(dynamic name, dynamic details) {
-  if (name is String) {
-    if (details is String) {
-      return new PluginInfo(name: name, version: details);
-    }
-    if (details is YamlMap) {
-      return new PluginInfo._fromYaml(name: name, details: details);
-    }
-  }
-
-  return null;
-}
-
-_verifyMap(dynamic yaml, String context) {
-  if (yaml is! YamlMap) {
-    throw new PluginConfigFormatException(
-        'Unable to parse $context, '
-        'expected `YamlMap`, got `${yaml.runtimeType}`',
-        yaml);
-  }
-}
-
-/// A callback for error handling.
-typedef ErrorHandler(Exception e);
-
-/// Describes plugin configuration information as extracted from an
-/// analysis options map or plugin manifest.
-class PluginConfig {
-  final Iterable<PluginInfo> plugins;
-  PluginConfig(this.plugins);
-
-  /// Create a plugin configuration from an options map.
-  factory PluginConfig.fromOptions(Map<String, Object> options) {
-    List<PluginInfo> plugins = [];
-    var analyzerOptions = options[_analyzerOptionScope];
-    if (analyzerOptions != null) {
-      //TODO(pq): handle "raw" maps (https://github.com/dart-lang/sdk/issues/25126)
-      if (analyzerOptions is YamlMap) {
-        var pluginConfig = analyzerOptions[_pluginOptionScope];
-        if (pluginConfig is YamlMap) {
-          pluginConfig.forEach((name, details) {
-            var plugin = _processPluginMapping(name, details);
-            if (plugin != null) {
-              plugins.add(plugin);
-            }
-          });
-        } else {
-          // Anything but an empty list of plugins is treated as a format error.
-          if (pluginConfig != null) {
-            throw new PluginConfigFormatException(
-                'Unrecognized plugin config format, expected `YamlMap`, '
-                'got `${pluginConfig.runtimeType}`',
-                pluginConfig);
-          }
-        }
-      }
-    }
-
-    return new PluginConfig(plugins);
-  }
-}
-
-/// Thrown on bad plugin config format.
-class PluginConfigFormatException implements Exception {
-  /// Descriptive message.
-  final message;
-
-  /// The `plugin:` yaml node for generating detailed error feedback.
-  final yamlNode;
-  PluginConfigFormatException(this.message, this.yamlNode);
-}
-
-/// Extracts plugin config details from analysis options.
-class PluginConfigOptionsProcessor extends OptionsProcessor {
-  final ErrorHandler _errorHandler;
-
-  PluginConfig _config;
-
-  PluginConfigOptionsProcessor([this._errorHandler]);
-
-  /// The processed plugin config.
-  PluginConfig get config => _config;
-
-  @override
-  void onError(Exception exception) {
-    if (_errorHandler != null) {
-      _errorHandler(exception);
-    }
-  }
-
-  @override
-  void optionsProcessed(AnalysisContext context, Map<String, Object> options) {
-    _config = new PluginConfig.fromOptions(options);
-  }
-}
-
-/// Describes plugin information.
-class PluginInfo {
-  final String name;
-  final String className;
-  final String version;
-  final String libraryUri;
-  final String packageName;
-  final String path;
-  PluginInfo(
-      {this.name,
-      this.version,
-      this.className,
-      this.libraryUri,
-      this.packageName,
-      this.path});
-
-  factory PluginInfo._fromYaml({String name, YamlMap details}) =>
-      new PluginInfo(
-          name: name,
-          version: _asString(details['version']),
-          className: _asString(details['class_name']),
-          libraryUri: _asString(details['library_uri']),
-          packageName: _asString(details['package_name']),
-          path: _asString(details['path']));
-}
-
-/// Plugin manifests accompany plugin packages, providing
-/// configuration information for published plugins.
-///
-/// Provisionally, plugin manifests live in a file `plugin.yaml`
-/// at the root of the plugin package.
-///
-///     my_plugin/
-///       bin/
-///       lib/
-///       plugin.yaml
-///       pubspec.yaml
-///
-/// Provisional manifest file format:
-///
-///     class_name: MyAnalyzerPlugin
-///     library_uri: 'my_plugin/my_analyzer_plugin.dart'
-///     contributes_to: analyzer
-class PluginManifest {
-  PluginInfo plugin;
-  Iterable<String> contributesTo;
-  PluginManifest({this.plugin, this.contributesTo});
-}
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index 88dfc68..2b7fe82 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -219,6 +219,8 @@
         unitElement.source = librarySource;
         unitElement.librarySource = librarySource;
         libraryElement.createLoadLibraryFunction(typeProvider);
+        libraryElement.publicNamespace = new Namespace({});
+        libraryElement.exportNamespace = new Namespace({});
         return libraryElement;
       }
       UnlinkedUnit unlinkedSummary = _getUnlinkedSummaryOrNull(uri);
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index 9e3b31e..c386bb4 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -7,6 +7,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -1328,7 +1329,11 @@
     }
 
     EnumDeclaration firstEnum = findFirstEnum();
-    if (firstEnum != null && firstEnum.element.accessors.isEmpty) {
+    if (firstEnum != null &&
+        resolutionMap
+            .elementDeclaredByEnumDeclaration(firstEnum)
+            .accessors
+            .isEmpty) {
       EnumMemberBuilder builder = new EnumMemberBuilder(typeProvider);
       unit.accept(builder);
     }
@@ -1503,7 +1508,8 @@
     int partLength = partUnits.length;
     for (int i = 0; i < partLength; i++) {
       CompilationUnit partUnit = partUnits[i];
-      Source partSource = partUnit.element.source;
+      Source partSource =
+          resolutionMap.elementDeclaredByCompilationUnit(partUnit).source;
       partUnitMap[partSource] = partUnit;
     }
     //
@@ -3446,7 +3452,9 @@
     //
     if (context.analysisOptions.strongMode) {
       InstanceMemberInferrer inferrer = new InstanceMemberInferrer(
-          typeProvider, new InheritanceManager(unit.element.library),
+          typeProvider,
+          new InheritanceManager(
+              resolutionMap.elementDeclaredByCompilationUnit(unit).library),
           typeSystem: context.typeSystem);
       inferrer.inferCompilationUnit(unit.element);
     }
@@ -3511,7 +3519,8 @@
     AstNode node = new NodeLocator2(offset).searchWithin(unit);
     if (node == null) {
       Source variableSource = variable.source;
-      Source unitSource = unit.element.source;
+      Source unitSource =
+          resolutionMap.elementDeclaredByCompilationUnit(unit).source;
       if (variableSource != unitSource) {
         throw new AnalysisException(
             "Failed to find the AST node for the variable "
@@ -3526,7 +3535,8 @@
         node.getAncestor((AstNode ancestor) => ancestor is VariableDeclaration);
     if (declaration == null || declaration.name != node) {
       Source variableSource = variable.source;
-      Source unitSource = unit.element.source;
+      Source unitSource =
+          resolutionMap.elementDeclaredByCompilationUnit(unit).source;
       if (variableSource != unitSource) {
         if (declaration == null) {
           throw new AnalysisException(
@@ -6232,8 +6242,7 @@
         libraryElement,
         typeProvider,
         new InheritanceManager(libraryElement),
-        context.analysisOptions.enableSuperMixins,
-        context.analysisOptions.enableAssertMessage);
+        context.analysisOptions.enableSuperMixins);
     unit.accept(errorVerifier);
     //
     // Convert the pending errors into actual errors.
diff --git a/pkg/analyzer/lib/src/task/options.dart b/pkg/analyzer/lib/src/task/options.dart
index 4cf2afe..6995b2a 100644
--- a/pkg/analyzer/lib/src/task/options.dart
+++ b/pkg/analyzer/lib/src/task/options.dart
@@ -14,6 +14,10 @@
 import 'package:analyzer/src/generated/java_engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/utilities_general.dart';
+import 'package:analyzer/src/lint/config.dart';
+import 'package:analyzer/src/lint/linter.dart';
+import 'package:analyzer/src/lint/options_rule_validator.dart';
+import 'package:analyzer/src/lint/registry.dart';
 import 'package:analyzer/src/task/general.dart';
 import 'package:analyzer/src/util/yaml.dart';
 import 'package:analyzer/task/general.dart';
@@ -35,12 +39,6 @@
   _processor.applyToAnalysisOptions(options, optionMap);
 }
 
-/// Configure this [context] based on configuration details specified in
-/// the given [options].  If [options] is `null`, default values are applied.
-void configureContextOptions(
-        AnalysisContext context, Map<String, Object> options) =>
-    _processor.configure(context, options);
-
 /// `analyzer` analysis options constants.
 class AnalyzerOptions {
   static const String analyzer = 'analyzer';
@@ -393,16 +391,16 @@
 
 /// Validates options defined in an analysis options file.
 class OptionsFileValidator {
-  // TODO(pq): move to an extension point.
+  /// The source being validated.
+  final Source source;
+
   final List<OptionsValidator> _validators = [
     new AnalyzerOptionsValidator(),
-    new LinterOptionsValidator()
+    new LinterOptionsValidator(),
+    new LinterRuleOptionsValidator()
   ];
 
-  final Source source;
-  OptionsFileValidator(this.source) {
-    _validators.addAll(AnalysisEngine.instance.optionsPlugin.optionsValidators);
-  }
+  OptionsFileValidator(this.source);
 
   List<AnalysisError> validate(Map<String, YamlNode> options) {
     RecordingErrorListener recorder = new RecordingErrorListener();
@@ -513,109 +511,13 @@
       var excludes = analyzer[AnalyzerOptions.exclude];
       _applyExcludes(options, excludes);
     }
-  }
 
-  /// Configure [context] based on the given [options] (which can be `null`
-  /// to restore [defaults]).
-  void configure(AnalysisContext context, Map<String, Object> options) {
-    if (options == null) {
-      options = defaults;
-    }
-
-    var analyzer = options[AnalyzerOptions.analyzer];
-    if (analyzer is Map) {
-      // Set strong mode (default is false).
-      var strongMode = analyzer[AnalyzerOptions.strong_mode];
-      setStrongMode(context, strongMode);
-
-      // Set filters.
-      var filters = analyzer[AnalyzerOptions.errors];
-      setProcessors(context, filters);
-
-      // Process language options.
-      var language = analyzer[AnalyzerOptions.language];
-      setLanguageOptions(context, language);
-
-      // Process excludes.
-      var excludes = analyzer[AnalyzerOptions.exclude];
-      setExcludes(context, excludes);
-    }
-  }
-
-  void setExcludes(AnalysisContext context, Object excludes) {
-    if (excludes is YamlList) {
-      List<String> excludeList = toStringList(excludes);
-      if (excludeList != null) {
-        AnalysisOptionsImpl options =
-            new AnalysisOptionsImpl.from(context.analysisOptions);
-        options.excludePatterns = excludeList;
-        context.analysisOptions = options;
-      }
-    }
-  }
-
-  void setLanguageOption(
-      AnalysisContext context, Object feature, Object value) {
-    if (feature == AnalyzerOptions.enableAssertInitializer) {
-      if (isTrue(value)) {
-        AnalysisOptionsImpl options =
-            new AnalysisOptionsImpl.from(context.analysisOptions);
-        options.enableAssertInitializer = true;
-        context.analysisOptions = options;
-      }
-    }
-    if (feature == AnalyzerOptions.enableStrictCallChecks) {
-      if (isTrue(value)) {
-        AnalysisOptionsImpl options =
-            new AnalysisOptionsImpl.from(context.analysisOptions);
-        options.enableStrictCallChecks = true;
-        context.analysisOptions = options;
-      }
-    }
-    if (feature == AnalyzerOptions.enableSuperMixins) {
-      if (isTrue(value)) {
-        AnalysisOptionsImpl options =
-            new AnalysisOptionsImpl.from(context.analysisOptions);
-        options.enableSuperMixins = true;
-        context.analysisOptions = options;
-      }
-    }
-  }
-
-  void setLanguageOptions(AnalysisContext context, Object configs) {
-    if (configs is YamlMap) {
-      configs.nodes.forEach((k, v) {
-        if (k is YamlScalar && v is YamlScalar) {
-          String feature = k.value?.toString();
-          setLanguageOption(context, feature, v.value);
-        }
-      });
-    } else if (configs is Map) {
-      configs.forEach((k, v) => setLanguageOption(context, k, v));
-    }
-  }
-
-  void setProcessors(AnalysisContext context, Object codes) {
-    ErrorConfig config = new ErrorConfig(codes);
-    AnalysisOptionsImpl options =
-        new AnalysisOptionsImpl.from(context.analysisOptions);
-    options.errorProcessors = config.processors;
-    context.analysisOptions = options;
-  }
-
-  void setStrongMode(AnalysisContext context, Object strongMode) {
-    if (strongMode is Map) {
-      AnalysisOptionsImpl options =
-          new AnalysisOptionsImpl.from(context.analysisOptions);
-      _applyStrongOptions(options, strongMode);
-      context.analysisOptions = options;
-    } else {
-      strongMode = strongMode is bool ? strongMode : false;
-      if (context.analysisOptions.strongMode != strongMode) {
-        AnalysisOptionsImpl options =
-            new AnalysisOptionsImpl.from(context.analysisOptions);
-        options.strongMode = strongMode;
-        context.analysisOptions = options;
+    LintConfig config = parseConfig(optionMap);
+    if (config != null) {
+      Iterable<LintRule> lintRules = Registry.ruleRegistry.enabled(config);
+      if (lintRules.isNotEmpty) {
+        options.lint = true;
+        options.lintRules = lintRules.toList();
       }
     }
   }
@@ -635,6 +537,8 @@
     if (boolValue != null) {
       if (feature == AnalyzerOptions.enableAssertInitializer) {
         options.enableAssertInitializer = boolValue;
+      } else if (feature == AnalyzerOptions.enableStrictCallChecks) {
+        options.enableStrictCallChecks = true;
       } else if (feature == AnalyzerOptions.enableSuperMixins) {
         options.enableSuperMixins = boolValue;
       }
diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart
index 6f9ac6e..8beac15 100644
--- a/pkg/analyzer/lib/src/task/strong/checker.dart
+++ b/pkg/analyzer/lib/src/task/strong/checker.dart
@@ -8,6 +8,7 @@
 
 import 'package:analyzer/analyzer.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart' show TokenType;
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
@@ -602,7 +603,7 @@
   @override
   void visitRedirectingConstructorInvocation(
       RedirectingConstructorInvocation node) {
-    var type = node.staticElement?.type;
+    var type = resolutionMap.staticElementForConstructorReference(node)?.type;
     // TODO(leafp): There's a TODO in visitRedirectingConstructorInvocation
     // in the element_resolver to handle the case that the element is null
     // and emit an error.  In the meantime, just be defensive here.
@@ -622,7 +623,7 @@
   void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
     var element = node.staticElement;
     if (element != null) {
-      var type = node.staticElement.type;
+      var type = resolutionMap.staticElementForConstructorReference(node).type;
       checkArgumentList(node.argumentList, type);
     }
     node.visitChildren(this);
@@ -639,14 +640,17 @@
 
   @override
   Object visitVariableDeclaration(VariableDeclaration node) {
+    VariableElement variableElement = node == null
+        ? null
+        : resolutionMap.elementDeclaredByVariableDeclaration(node);
     if (!node.isConst &&
         !node.isFinal &&
         node.initializer == null &&
-        rules.isNonNullableType(node?.element?.type)) {
+        rules.isNonNullableType(variableElement?.type)) {
       _recordMessage(
           node,
           StaticTypeWarningCode.NON_NULLABLE_FIELD_NOT_INITIALIZED,
-          [node.name, node?.element?.type]);
+          [node.name, variableElement?.type]);
     }
     return super.visitVariableDeclaration(node);
   }
@@ -684,7 +688,7 @@
   void _checkCompoundAssignment(AssignmentExpression expr) {
     var op = expr.operator.type;
     assert(op.isAssignmentOperator && op != TokenType.EQ);
-    var methodElement = expr.staticElement;
+    var methodElement = resolutionMap.staticElementForMethodReference(expr);
     if (methodElement == null) {
       // Dynamic invocation.
       _recordDynamicInvoke(expr, expr.leftHandSide);
@@ -719,55 +723,6 @@
     }
   }
 
-  /// Returns true if we need an implicit cast of [expr] from [from] type to
-  /// [to] type, otherwise returns false.
-  ///
-  /// If [from] is omitted, uses the static type of [expr].
-  bool _needsImplicitCast(Expression expr, DartType to, {DartType from}) {
-    from ??= _getDefiniteType(expr);
-
-    if (!_checkNonNullAssignment(expr, to, from)) return false;
-
-    // We can use anything as void.
-    if (to.isVoid) return false;
-
-    // fromT <: toT, no coercion needed.
-    if (rules.isSubtypeOf(from, to)) return false;
-
-    // Note: a function type is never assignable to a class per the Dart
-    // spec - even if it has a compatible call method.  We disallow as
-    // well for consistency.
-    if (from is FunctionType && rules.getCallMethodType(to) != null) {
-      return false;
-    }
-
-    // Downcast if toT <: fromT
-    if (rules.isSubtypeOf(to, from)) {
-      return true;
-    }
-
-    // Anything else is an illegal sideways cast.
-    // However, these will have been reported already in error_verifier, so we
-    // don't need to report them again.
-    return false;
-  }
-
-  /// Checks if an implicit cast of [expr] from [from] type to [to] type is
-  /// needed, and if so records it.
-  ///
-  /// If [from] is omitted, uses the static type of [expr].
-  ///
-  /// If [expr] does not require an implicit cast because it is not related to
-  /// [to] or is already a subtype of it, does nothing.
-  void _checkImplicitCast(Expression expr, DartType to,
-      {DartType from, bool opAssign: false}) {
-    from ??= _getDefiniteType(expr);
-
-    if (_needsImplicitCast(expr, to, from: from)) {
-      _recordImplicitCast(expr, to, from: from, opAssign: opAssign);
-    }
-  }
-
   void _checkFieldAccess(AstNode node, AstNode target, SimpleIdentifier field) {
     if (field.staticElement == null &&
         !typeProvider.isObjectMember(field.name)) {
@@ -786,7 +741,10 @@
     if (node.body is! BlockFunctionBody) {
       return;
     }
-    if (node.element.returnType.isDynamic) {
+    if (resolutionMap
+        .elementDeclaredByFunctionExpression(node)
+        .returnType
+        .isDynamic) {
       return;
     }
     // Find the enclosing variable declaration whose inferred type might depend
@@ -875,6 +833,22 @@
         [declElement.name]);
   }
 
+  /// Checks if an implicit cast of [expr] from [from] type to [to] type is
+  /// needed, and if so records it.
+  ///
+  /// If [from] is omitted, uses the static type of [expr].
+  ///
+  /// If [expr] does not require an implicit cast because it is not related to
+  /// [to] or is already a subtype of it, does nothing.
+  void _checkImplicitCast(Expression expr, DartType to,
+      {DartType from, bool opAssign: false}) {
+    from ??= _getDefiniteType(expr);
+
+    if (_needsImplicitCast(expr, to, from: from)) {
+      _recordImplicitCast(expr, to, from: from, opAssign: opAssign);
+    }
+  }
+
   /// Checks if the assignment is valid with respect to non-nullable types.
   /// Returns `false` if a nullable expression is assigned to a variable of
   /// non-nullable type and `true` otherwise.
@@ -1034,6 +1008,39 @@
     return rules.anyParameterType(ft, (pt) => pt.isDynamic);
   }
 
+  /// Returns true if we need an implicit cast of [expr] from [from] type to
+  /// [to] type, otherwise returns false.
+  ///
+  /// If [from] is omitted, uses the static type of [expr].
+  bool _needsImplicitCast(Expression expr, DartType to, {DartType from}) {
+    from ??= _getDefiniteType(expr);
+
+    if (!_checkNonNullAssignment(expr, to, from)) return false;
+
+    // We can use anything as void.
+    if (to.isVoid) return false;
+
+    // fromT <: toT, no coercion needed.
+    if (rules.isSubtypeOf(from, to)) return false;
+
+    // Note: a function type is never assignable to a class per the Dart
+    // spec - even if it has a compatible call method.  We disallow as
+    // well for consistency.
+    if (from is FunctionType && rules.getCallMethodType(to) != null) {
+      return false;
+    }
+
+    // Downcast if toT <: fromT
+    if (rules.isSubtypeOf(to, from)) {
+      return true;
+    }
+
+    // Anything else is an illegal sideways cast.
+    // However, these will have been reported already in error_verifier, so we
+    // don't need to report them again.
+    return false;
+  }
+
   void _recordDynamicInvoke(AstNode node, Expression target) {
     _recordMessage(node, StrongModeCode.DYNAMIC_INVOKE, [node]);
     // TODO(jmesserly): we may eventually want to record if the whole operation
@@ -1141,7 +1148,9 @@
           ? node.firstTokenAfterCommentAndMetadata.offset
           : node.offset;
       int length = node.end - begin;
-      var source = (node.root as CompilationUnit).element.source;
+      var source = resolutionMap
+          .elementDeclaredByCompilationUnit(node.root as CompilationUnit)
+          .source;
       var error =
           new AnalysisError(source, begin, length, errorCode, arguments);
       reporter.onError(error);
@@ -1161,7 +1170,8 @@
         rules = checker.rules;
 
   void check(ClassDeclaration node) {
-    if (node.element.type.isObject) return;
+    if (resolutionMap.elementDeclaredByClassDeclaration(node).type.isObject)
+      return;
     _checkSuperOverrides(node);
     _checkMixinApplicationOverrides(node);
     _checkAllInterfaceOverrides(node);
@@ -1197,7 +1207,7 @@
     // Check all interfaces reachable from the `implements` clause in the
     // current class against definitions here and in superclasses.
     var localInterfaces = new Set<InterfaceType>();
-    var type = node.element.type;
+    var type = resolutionMap.elementDeclaredByClassDeclaration(node).type;
     type.interfaces.forEach((i) => find(i, localInterfaces));
     _checkInterfacesOverrides(node, localInterfaces, seen,
         includeParents: true);
@@ -1254,7 +1264,7 @@
         if (member.isStatic) {
           continue;
         }
-        var method = member.element;
+        var method = resolutionMap.elementDeclaredByMethodDeclaration(member);
         if (seen.contains(method.name)) {
           continue;
         }
@@ -1310,7 +1320,9 @@
       bool includeParents: true,
       AstNode errorLocation}) {
     var node = cls is ClassDeclaration ? cls : null;
-    var type = cls is InterfaceType ? cls : node.element.type;
+    var type = cls is InterfaceType
+        ? cls
+        : resolutionMap.elementDeclaredByClassDeclaration(node).type;
 
     if (visited == null) {
       visited = new Set<InterfaceType>();
@@ -1365,7 +1377,7 @@
   ///      B & E against B (equivalently how E overrides B)
   ///      B & E & F against B & E (equivalently how F overrides both B and E)
   void _checkMixinApplicationOverrides(ClassDeclaration node) {
-    var type = node.element.type;
+    var type = resolutionMap.elementDeclaredByClassDeclaration(node).type;
     var parent = type.superclass;
     var mixins = type.mixins;
 
@@ -1484,7 +1496,7 @@
   ///     }
   void _checkSuperOverrides(ClassDeclaration node) {
     var seen = new Set<String>();
-    var current = node.element.type;
+    var current = resolutionMap.elementDeclaredByClassDeclaration(node).type;
     var visited = new Set<InterfaceType>();
     do {
       visited.add(current);
diff --git a/pkg/analyzer/lib/src/task/strong_mode.dart b/pkg/analyzer/lib/src/task/strong_mode.dart
index 37c91cf..0917684 100644
--- a/pkg/analyzer/lib/src/task/strong_mode.dart
+++ b/pkg/analyzer/lib/src/task/strong_mode.dart
@@ -88,14 +88,14 @@
    * compilation [unit].
    */
   void inferCompilationUnit(CompilationUnitElement unit) {
-    unit.types.forEach((ClassElement classElement) {
+    for (ClassElement classElement in unit.types) {
       try {
         _inferClass(classElement);
       } on _CycleException {
         // This is a short circuit return to prevent types that inherit from
         // types containing a circular reference from being inferred.
       }
-    });
+    }
   }
 
   /**
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
index 4b4bf3d..098ff94 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
@@ -256,19 +256,6 @@
     verify([source]);
   }
 
-  void test_assertWithExtraArgument() {
-    // TODO(paulberry): once DEP 37 is turned on by default, this test should
-    // be removed.
-    Source source = addSource('''
-f(bool x) {
-  assert(x, 'foo');
-}
-''');
-    computeLibrarySourceErrors(source);
-    assertErrors(source, [CompileTimeErrorCode.EXTRA_ARGUMENT_TO_ASSERT]);
-    verify([source]);
-  }
-
   void test_async_used_as_identifier_in_annotation() {
     Source source = addSource('''
 const int async = 0;
@@ -4609,9 +4596,7 @@
   }
 
   void test_nonConstValueInInitializer_assert_message() {
-    resetWithOptions(new AnalysisOptionsImpl()
-      ..enableAssertInitializer = true
-      ..enableAssertMessage = true);
+    resetWithOptions(new AnalysisOptionsImpl()..enableAssertInitializer = true);
     Source source = addSource(r'''
 class A {
   const A(int i) : assert(i < 0, 'isNegative = ${i.isNegative}');
diff --git a/pkg/analyzer/test/generated/element_resolver_test.dart b/pkg/analyzer/test/generated/element_resolver_test.dart
index 42f457d..277a2c7 100644
--- a/pkg/analyzer/test/generated/element_resolver_test.dart
+++ b/pkg/analyzer/test/generated/element_resolver_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.generated.element_resolver_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -49,10 +50,11 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<ClassElement>());
-      expect(name1.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'A');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<ConstructorElement>());
-      expect(name2.staticElement.displayName, 'named');
+      expect(
+          resolutionMap.staticElementForIdentifier(name2).displayName, 'named');
       expect(name3, isNull);
       if (annotationElement is ConstructorElement) {
         expect(annotationElement, same(name2.staticElement));
@@ -80,13 +82,14 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<PrefixElement>());
-      expect(name1.staticElement.displayName, 'p');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'p');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<ClassElement>());
-      expect(name2.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name2).displayName, 'A');
       expect(name3, isNotNull);
       expect(name3.staticElement, new isInstanceOf<ConstructorElement>());
-      expect(name3.staticElement.displayName, 'named');
+      expect(
+          resolutionMap.staticElementForIdentifier(name3).displayName, 'named');
       if (annotationElement is ConstructorElement) {
         expect(annotationElement, same(name3.staticElement));
         expect(annotationElement.enclosingElement, name2.staticElement);
@@ -113,13 +116,13 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<PrefixElement>());
-      expect(name1.staticElement.displayName, 'p');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'p');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<ClassElement>());
-      expect(name2.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name2).displayName, 'A');
       expect(name3, isNotNull);
       expect(name3.staticElement, new isInstanceOf<PropertyAccessorElement>());
-      expect(name3.staticElement.displayName, 'V');
+      expect(resolutionMap.staticElementForIdentifier(name3).displayName, 'V');
       if (annotationElement is PropertyAccessorElement) {
         expect(annotationElement, same(name3.staticElement));
         expect(annotationElement.enclosingElement, name2.staticElement);
@@ -145,10 +148,10 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<PrefixElement>());
-      expect(name1.staticElement.displayName, 'p');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'p');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<ClassElement>());
-      expect(name2.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name2).displayName, 'A');
       expect(name3, isNull);
       if (annotationElement is ConstructorElement) {
         expect(annotationElement.enclosingElement, name2.staticElement);
@@ -175,10 +178,10 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<ClassElement>());
-      expect(name1.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'A');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<PropertyAccessorElement>());
-      expect(name2.staticElement.displayName, 'V');
+      expect(resolutionMap.staticElementForIdentifier(name2).displayName, 'V');
       expect(name3, isNull);
       if (annotationElement is PropertyAccessorElement) {
         expect(annotationElement, same(name2.staticElement));
@@ -205,7 +208,7 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<ClassElement>());
-      expect(name1.staticElement.displayName, 'A');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'A');
       expect(name2, isNull);
       expect(name3, isNull);
       if (annotationElement is ConstructorElement) {
@@ -231,7 +234,7 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<PropertyAccessorElement>());
-      expect(name1.staticElement.displayName, 'V');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'V');
       expect(name2, isNull);
       expect(name3, isNull);
       if (annotationElement is PropertyAccessorElement) {
@@ -258,10 +261,10 @@
         Element annotationElement) {
       expect(name1, isNotNull);
       expect(name1.staticElement, new isInstanceOf<PrefixElement>());
-      expect(name1.staticElement.displayName, 'p');
+      expect(resolutionMap.staticElementForIdentifier(name1).displayName, 'p');
       expect(name2, isNotNull);
       expect(name2.staticElement, new isInstanceOf<PropertyAccessorElement>());
-      expect(name2.staticElement.displayName, 'V');
+      expect(resolutionMap.staticElementForIdentifier(name2).displayName, 'V');
       expect(name3, isNull);
       if (annotationElement is PropertyAccessorElement) {
         expect(annotationElement, same(name2.staticElement));
@@ -690,7 +693,8 @@
     parameterElement.type = intType;
     parameter.identifier.staticElement = parameterElement;
     _resolveInClass(parameter, classA);
-    expect(parameter.element.type, same(intType));
+    expect(resolutionMap.elementDeclaredByFormalParameter(parameter).type,
+        same(intType));
   }
 
   void test_visitImportDirective_noCombinators_noPrefix() {
diff --git a/pkg/analyzer/test/generated/engine_test.dart b/pkg/analyzer/test/generated/engine_test.dart
index 93b3108..5822a2d 100644
--- a/pkg/analyzer/test/generated/engine_test.dart
+++ b/pkg/analyzer/test/generated/engine_test.dart
@@ -42,7 +42,6 @@
     modifiedOptions.dart2jsHint = true;
     modifiedOptions.disableCacheFlushing = true;
     modifiedOptions.enableAssertInitializer = true;
-    modifiedOptions.enableAssertMessage = true;
     modifiedOptions.enableLazyAssignmentOperators = true;
     modifiedOptions.enableStrictCallChecks = true;
     modifiedOptions.enableSuperMixins = true;
@@ -71,8 +70,6 @@
         defaultOptions.disableCacheFlushing);
     expect(modifiedOptions.enableAssertInitializer,
         defaultOptions.enableAssertInitializer);
-    expect(modifiedOptions.enableAssertMessage,
-        defaultOptions.enableAssertMessage);
     expect(modifiedOptions.enableLazyAssignmentOperators,
         defaultOptions.enableLazyAssignmentOperators);
     expect(modifiedOptions.enableStrictCallChecks,
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 067627d..8ad198f 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.generated.non_error_resolver_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/src/error/codes.dart';
@@ -373,7 +374,6 @@
   }
 
   void test_assert_with_message_await() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 import 'dart:async';
 f() async {
@@ -387,7 +387,6 @@
   }
 
   void test_assert_with_message_dynamic() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 f() {
   assert(false, g());
@@ -400,7 +399,6 @@
   }
 
   void test_assert_with_message_non_string() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 f() {
   assert(false, 3);
@@ -412,7 +410,6 @@
   }
 
   void test_assert_with_message_null() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 f() {
   assert(false, null);
@@ -424,7 +421,6 @@
   }
 
   void test_assert_with_message_string() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 f() {
   assert(false, 'message');
@@ -436,7 +432,6 @@
   }
 
   void test_assert_with_message_suppresses_unused_var_hint() {
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     Source source = addSource('''
 f() {
   String message = 'msg';
@@ -1038,7 +1033,8 @@
     assertNoErrors(source);
     verify([source]);
     CompilationUnit unit = _getResolvedLibraryUnit(source);
-    ClassElement classC = unit.element.getType('C');
+    ClassElement classC =
+        resolutionMap.elementDeclaredByCompilationUnit(unit).getType('C');
     expect(classC.documentationComment, isNotNull);
   }
 
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index e87206b..0a01df5 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -7,6 +7,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
@@ -479,9 +480,12 @@
           buffer.write("  ");
           buffer.write(expression.toString());
           buffer.write(" [");
-          buffer.write(expression.staticType.displayName);
+          buffer.write(
+              resolutionMap.staticTypeForExpression(expression).displayName);
           buffer.write(", ");
-          buffer.write(expression.propagatedType.displayName);
+          buffer.write(resolutionMap
+              .propagatedTypeForExpression(expression)
+              .displayName);
           buffer.writeln("]");
           buffer.write("    ");
           buffer.write(_getFileName(expression));
@@ -538,7 +542,8 @@
   Object visitPrefixedIdentifier(PrefixedIdentifier node) {
     // In cases where we have a prefixed identifier where the prefix is dynamic,
     // we don't want to assert that the node will have a type.
-    if (node.staticType == null && node.prefix.staticType.isDynamic) {
+    if (node.staticType == null &&
+        resolutionMap.staticTypeForExpression(node.prefix).isDynamic) {
       return null;
     }
     return super.visitPrefixedIdentifier(node);
@@ -589,7 +594,10 @@
       if (root is CompilationUnit) {
         CompilationUnit rootCU = root;
         if (rootCU.element != null) {
-          return rootCU.element.source.fullName;
+          return resolutionMap
+              .elementDeclaredByCompilationUnit(rootCU)
+              .source
+              .fullName;
         } else {
           return "<unknown file- CompilationUnit.getElement() returned null>";
         }
@@ -1085,7 +1093,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1108,7 +1117,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1203,7 +1213,8 @@
     CompilationUnit unit = resolveCompilationUnit(source, library);
     SimpleIdentifier identifier = EngineTestCase.findNode(
         unit, code, "context", (node) => node is SimpleIdentifier);
-    expect(identifier.propagatedType.name, "CanvasRenderingContext2D");
+    expect(resolutionMap.propagatedTypeForExpression(identifier).name,
+        "CanvasRenderingContext2D");
   }
 
   void test_forEach() {
@@ -1656,7 +1667,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1686,7 +1698,7 @@
     InterfaceType typeA;
     {
       ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-      typeA = classA.element.type;
+      typeA = resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     }
     // verify "f"
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
@@ -1749,7 +1761,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1772,7 +1785,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1797,7 +1811,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1846,7 +1861,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1868,7 +1884,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1895,7 +1912,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1920,7 +1938,8 @@
     assertNoErrors(source);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1943,7 +1962,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -1966,7 +1986,8 @@
     verify([source]);
     CompilationUnit unit = resolveCompilationUnit(source, library);
     ClassDeclaration classA = unit.declarations[0] as ClassDeclaration;
-    InterfaceType typeA = classA.element.type;
+    InterfaceType typeA =
+        resolutionMap.elementDeclaredByClassDeclaration(classA).type;
     FunctionDeclaration function = unit.declarations[1] as FunctionDeclaration;
     BlockFunctionBody body =
         function.functionExpression.body as BlockFunctionBody;
@@ -2416,17 +2437,28 @@
     ReturnStatement statement = body.block.statements[11] as ReturnStatement;
     NodeList<Expression> elements =
         (statement.expression as ListLiteral).elements;
-    expect(elements[0].propagatedType.name, "AnchorElement");
-    expect(elements[1].propagatedType.name, "AnchorElement");
-    expect(elements[2].propagatedType.name, "BodyElement");
-    expect(elements[3].propagatedType.name, "ButtonElement");
-    expect(elements[4].propagatedType.name, "DivElement");
-    expect(elements[5].propagatedType.name, "InputElement");
-    expect(elements[6].propagatedType.name, "SelectElement");
-    expect(elements[7].propagatedType.name, "DivElement");
-    expect(elements[8].propagatedType.name, "Element");
-    expect(elements[9].propagatedType.name, "Element");
-    expect(elements[10].propagatedType.name, "Element");
+    expect(resolutionMap.propagatedTypeForExpression(elements[0]).name,
+        "AnchorElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[1]).name,
+        "AnchorElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[2]).name,
+        "BodyElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[3]).name,
+        "ButtonElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[4]).name,
+        "DivElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[5]).name,
+        "InputElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[6]).name,
+        "SelectElement");
+    expect(resolutionMap.propagatedTypeForExpression(elements[7]).name,
+        "DivElement");
+    expect(
+        resolutionMap.propagatedTypeForExpression(elements[8]).name, "Element");
+    expect(
+        resolutionMap.propagatedTypeForExpression(elements[9]).name, "Element");
+    expect(resolutionMap.propagatedTypeForExpression(elements[10]).name,
+        "Element");
   }
 }
 
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index 5cd095d..8de57ce 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -5,6 +5,7 @@
 library analyzer.test.generated.resolver_test_case;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -232,8 +233,8 @@
     if (node.name == "void") {
       return null;
     }
-    if (node.staticType != null &&
-        node.staticType.isDynamic &&
+    if (resolutionMap.staticTypeForExpression(node) != null &&
+        resolutionMap.staticTypeForExpression(node).isDynamic &&
         node.staticElement == null) {
       return null;
     }
@@ -273,7 +274,10 @@
       if (root is CompilationUnit) {
         CompilationUnit rootCU = root;
         if (rootCU.element != null) {
-          return rootCU.element.source.fullName;
+          return resolutionMap
+              .elementDeclaredByCompilationUnit(rootCU)
+              .source
+              .fullName;
         } else {
           return "<unknown file- CompilationUnit.getElement() returned null>";
         }
@@ -670,7 +674,7 @@
           resolveSource2("/lib${i + 1}.dart", sourceTexts[i]);
       // reference the source if this is the last source
       if (i + 1 == sourceTexts.length) {
-        return unit.element.source;
+        return resolutionMap.elementDeclaredByCompilationUnit(unit).source;
       }
     }
     return null;
diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart
index 4df27be..620bc1f 100644
--- a/pkg/analyzer/test/generated/simple_resolver_test.dart
+++ b/pkg/analyzer/test/generated/simple_resolver_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.generated.simple_resolver_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -748,7 +749,12 @@
     ExpressionStatement stmt = body.block.statements[0];
     AssignmentExpression assignment = stmt.expression;
     SimpleIdentifier leftHandSide = assignment.leftHandSide;
-    expect(leftHandSide.staticElement.enclosingElement.name, 'M2');
+    expect(
+        resolutionMap
+            .staticElementForIdentifier(leftHandSide)
+            .enclosingElement
+            .name,
+        'M2');
     expect(leftHandSide.auxiliaryElements.staticElement.enclosingElement.name,
         'M2');
   }
@@ -785,7 +791,11 @@
     AssignmentExpression assignment = stmt.expression;
     PropertyAccess propertyAccess = assignment.leftHandSide;
     expect(
-        propertyAccess.propertyName.staticElement.enclosingElement.name, 'M2');
+        resolutionMap
+            .staticElementForIdentifier(propertyAccess.propertyName)
+            .enclosingElement
+            .name,
+        'M2');
     expect(
         propertyAccess
             .propertyName.auxiliaryElements.staticElement.enclosingElement.name,
@@ -817,7 +827,8 @@
     BlockFunctionBody body = f.body;
     ReturnStatement stmt = body.block.statements[0];
     SimpleIdentifier x = stmt.expression;
-    expect(x.staticElement.enclosingElement.name, 'M2');
+    expect(resolutionMap.staticElementForIdentifier(x).enclosingElement.name,
+        'M2');
   }
 
   void test_getter_fromMixins_property_access() {
@@ -845,7 +856,11 @@
     VariableDeclarationStatement stmt = body.block.statements[0];
     PropertyAccess propertyAccess = stmt.variables.variables[0].initializer;
     expect(
-        propertyAccess.propertyName.staticElement.enclosingElement.name, 'M2');
+        resolutionMap
+            .staticElementForIdentifier(propertyAccess.propertyName)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_getterAndSetterWithDifferentTypes() {
@@ -1535,7 +1550,12 @@
     BlockFunctionBody body = main.functionExpression.body;
     ExpressionStatement stmt = body.block.statements[0];
     MethodInvocation expr = stmt.expression;
-    expect(expr.methodName.staticElement.enclosingElement.name, 'M2');
+    expect(
+        resolutionMap
+            .staticElementForIdentifier(expr.methodName)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_method_fromMixins_bare_identifier() {
@@ -1563,7 +1583,12 @@
     ExpressionStatement stmt = body.block.statements[0];
     MethodInvocation invocation = stmt.expression;
     SimpleIdentifier methodName = invocation.methodName;
-    expect(methodName.staticElement.enclosingElement.name, 'M2');
+    expect(
+        resolutionMap
+            .staticElementForIdentifier(methodName)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_method_fromMixins_invked_from_outside_class() {
@@ -1590,7 +1615,12 @@
     BlockFunctionBody body = main.functionExpression.body;
     ExpressionStatement stmt = body.block.statements[0];
     MethodInvocation invocation = stmt.expression;
-    expect(invocation.methodName.staticElement.enclosingElement.name, 'M2');
+    expect(
+        resolutionMap
+            .staticElementForIdentifier(invocation.methodName)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_method_fromSuperclassMixin() {
@@ -1680,7 +1710,12 @@
     ExpressionStatement stmt = body.block.statements[0];
     AssignmentExpression assignment = stmt.expression;
     SimpleIdentifier leftHandSide = assignment.leftHandSide;
-    expect(leftHandSide.staticElement.enclosingElement.name, 'M2');
+    expect(
+        resolutionMap
+            .staticElementForIdentifier(leftHandSide)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_setter_fromMixins_property_access() {
@@ -1709,7 +1744,11 @@
     AssignmentExpression assignment = stmt.expression;
     PropertyAccess propertyAccess = assignment.leftHandSide;
     expect(
-        propertyAccess.propertyName.staticElement.enclosingElement.name, 'M2');
+        resolutionMap
+            .staticElementForIdentifier(propertyAccess.propertyName)
+            .enclosingElement
+            .name,
+        'M2');
   }
 
   void test_setter_inherited() {
diff --git a/pkg/analyzer/test/generated/static_type_warning_code_test.dart b/pkg/analyzer/test/generated/static_type_warning_code_test.dart
index 82b972c..e4496f0 100644
--- a/pkg/analyzer/test/generated/static_type_warning_code_test.dart
+++ b/pkg/analyzer/test/generated/static_type_warning_code_test.dart
@@ -143,7 +143,6 @@
     // assignment occurred outside an assert statement.  (Note that it is a
     // dubious practice for the computation of an assert message to have side
     // effects, since it is only evaluated if the assert fails).
-    resetWithOptions(new AnalysisOptionsImpl()..enableAssertMessage = true);
     assertErrorsInCode(
         '''
 class C {
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index 783b462..3d1948f 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.generated.strong_mode_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/element/element.dart';
@@ -307,7 +308,8 @@
     InstanceCreationExpression exp = stmt.expression;
     ClassElement elementB = AstFinder.getClass(unit, "B").element;
     ClassElement elementA = AstFinder.getClass(unit, "A").element;
-    expect(exp.constructorName.type.type.element, elementB);
+    expect(resolutionMap.typeForTypeName(exp.constructorName.type).element,
+        elementB);
     _isInstantiationOf(_hasElement(elementB))(
         [_isType(elementA.typeParameters[0].type)])(exp.staticType);
   }
@@ -359,7 +361,8 @@
     expect(type0.normalParameterTypes[0], typeProvider.stringType);
 
     FunctionExpression anon1 = (statements[1] as ReturnStatement).expression;
-    FunctionType type1 = anon1.element.type;
+    FunctionType type1 =
+        resolutionMap.elementDeclaredByFunctionExpression(anon1).type;
     expect(type1.returnType, typeProvider.intType);
     expect(type1.normalParameterTypes[0], typeProvider.intType);
   }
@@ -383,7 +386,7 @@
       VariableDeclarationStatement stmt = statements[i];
       VariableDeclaration decl = stmt.variables.variables[0];
       FunctionExpression exp = decl.initializer;
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -412,7 +415,7 @@
       VariableDeclarationStatement stmt = statements[i];
       VariableDeclaration decl = stmt.variables.variables[0];
       FunctionExpression exp = decl.initializer;
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -477,7 +480,7 @@
       ExpressionStatement stmt = statements[i];
       FunctionExpressionInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -508,7 +511,7 @@
       ExpressionStatement stmt = statements[i];
       FunctionExpressionInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -537,7 +540,7 @@
       ExpressionStatement stmt = statements[i];
       MethodInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -566,7 +569,7 @@
       ExpressionStatement stmt = statements[i];
       MethodInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -597,7 +600,7 @@
       ExpressionStatement stmt = statements[i];
       MethodInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -628,7 +631,7 @@
       ExpressionStatement stmt = statements[i];
       MethodInvocation invk = stmt.expression;
       FunctionExpression exp = invk.argumentList.arguments[0];
-      return exp.element.type;
+      return resolutionMap.elementDeclaredByFunctionExpression(exp).type;
     }
 
     _isFunction2Of(_isInt, _isString)(literal(0));
@@ -706,8 +709,10 @@
 
     VariableDeclaration mapB = AstFinder.getFieldInClass(unit, "B", "map");
     MethodDeclaration mapC = AstFinder.getMethodInClass(unit, "C", "map");
-    assertMapOfIntToListOfInt(mapB.element.type);
-    assertMapOfIntToListOfInt(mapC.element.returnType);
+    assertMapOfIntToListOfInt(
+        resolutionMap.elementDeclaredByVariableDeclaration(mapB).type);
+    assertMapOfIntToListOfInt(
+        resolutionMap.elementDeclaredByMethodDeclaration(mapC).returnType);
 
     MapLiteral mapLiteralB = mapB.initializer;
     MapLiteral mapLiteralC = (mapC.body as ExpressionFunctionBody).expression;
diff --git a/pkg/analyzer/test/generated/test_support.dart b/pkg/analyzer/test/generated/test_support.dart
index ce0b3f0..68b7eed 100644
--- a/pkg/analyzer/test/generated/test_support.dart
+++ b/pkg/analyzer/test/generated/test_support.dart
@@ -99,8 +99,6 @@
   void setUp() {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
     new ExtensionManager().processPlugins(plugins);
   }
 
diff --git a/pkg/analyzer/test/source/error_processor_test.dart b/pkg/analyzer/test/source/error_processor_test.dart
index fcf3f1e..c7f0852 100644
--- a/pkg/analyzer/test/source/error_processor_test.dart
+++ b/pkg/analyzer/test/source/error_processor_test.dart
@@ -153,17 +153,15 @@
 void configureOptions(String options) {
   Map<String, YamlNode> optionMap =
       optionsProvider.getOptionsFromString(options);
-  configureContextOptions(context, optionMap);
+  applyToAnalysisOptions(context.analysisOptions, optionMap);
 }
 
 ErrorProcessor getProcessor(AnalysisError error) =>
-    ErrorProcessor.getProcessor(context, error);
+    ErrorProcessor.getProcessor(context.analysisOptions, error);
 
 void oneTimeSetup() {
   List<Plugin> plugins = <Plugin>[];
   plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-  plugins.add(AnalysisEngine.instance.commandLinePlugin);
-  plugins.add(AnalysisEngine.instance.optionsPlugin);
   ExtensionManager manager = new ExtensionManager();
   manager.processPlugins(plugins);
 }
diff --git a/pkg/analyzer/test/src/context/abstract_context.dart b/pkg/analyzer/test/src/context/abstract_context.dart
index ae77652..0e60d81 100644
--- a/pkg/analyzer/test/src/context/abstract_context.dart
+++ b/pkg/analyzer/test/src/context/abstract_context.dart
@@ -162,8 +162,6 @@
   void setUp() {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
 
     ExtensionManager manager = new ExtensionManager();
     manager.processPlugins(plugins);
diff --git a/pkg/analyzer/test/src/context/builder_test.dart b/pkg/analyzer/test/src/context/builder_test.dart
index 9ddf64f..c2eb6ce 100644
--- a/pkg/analyzer/test/src/context/builder_test.dart
+++ b/pkg/analyzer/test/src/context/builder_test.dart
@@ -6,18 +6,15 @@
 
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
-import 'package:analyzer/plugin/options.dart';
 import 'package:analyzer/src/context/builder.dart';
 import 'package:analyzer/src/context/source.dart';
 import 'package:analyzer/src/generated/bazel.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/plugin/options_plugin.dart';
 import 'package:package_config/packages.dart';
 import 'package:package_config/src/packages_impl.dart';
 import 'package:path/path.dart' as path;
-import 'package:plugin/src/plugin_impl.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -144,7 +141,6 @@
     // being returned.
     AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
     defaultOptions.dart2jsHint = !defaultOptions.dart2jsHint;
-    defaultOptions.enableAssertMessage = !defaultOptions.enableAssertMessage;
     defaultOptions.enableLazyAssignmentOperators =
         !defaultOptions.enableLazyAssignmentOperators;
     defaultOptions.enableStrictCallChecks =
@@ -513,8 +509,7 @@
     - empty_constructor_bodies
 ''');
 
-    AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
-    AnalysisOptions options = builder.getAnalysisOptions(context, path);
+    AnalysisOptions options = builder.getAnalysisOptions(path);
     _expectEqualOptions(options, expected);
   }
 
@@ -536,24 +531,8 @@
     enableSuperMixins : true
 ''');
 
-    AnalysisEngine engine = AnalysisEngine.instance;
-    OptionsPlugin plugin = engine.optionsPlugin;
-    plugin.registerExtensionPoints((_) {});
-    try {
-      _TestOptionsProcessor processor = new _TestOptionsProcessor();
-      processor.expectedOptions = <String, Object>{
-        'analyzer': {
-          'language': {'enableSuperMixins': true}
-        }
-      };
-      (plugin.optionsProcessorExtensionPoint as ExtensionPointImpl)
-          .add(processor);
-      AnalysisContext context = engine.createAnalysisContext();
-      AnalysisOptions options = builder.getAnalysisOptions(context, path);
-      _expectEqualOptions(options, expected);
-    } finally {
-      plugin.registerExtensionPoints((_) {});
-    }
+    AnalysisOptions options = builder.getAnalysisOptions(path);
+    _expectEqualOptions(options, expected);
   }
 
   void test_getAnalysisOptions_includes() {
@@ -589,26 +568,8 @@
     enableSuperMixins : true
 ''');
 
-    AnalysisEngine engine = AnalysisEngine.instance;
-    OptionsPlugin plugin = engine.optionsPlugin;
-    plugin.registerExtensionPoints((_) {});
-    try {
-      _TestOptionsProcessor processor = new _TestOptionsProcessor();
-      processor.expectedOptions = <String, Object>{
-        'analyzer': {
-          'language': {'enableSuperMixins': true}
-        },
-        'foo': {'bar': 'baz'},
-        'two': {'boo': 'newt'},
-      };
-      (plugin.optionsProcessorExtensionPoint as ExtensionPointImpl)
-          .add(processor);
-      AnalysisContext context = engine.createAnalysisContext();
-      AnalysisOptions options = builder.getAnalysisOptions(context, path);
-      _expectEqualOptions(options, expected);
-    } finally {
-      plugin.registerExtensionPoints((_) {});
-    }
+    AnalysisOptions options = builder.getAnalysisOptions(path);
+    _expectEqualOptions(options, expected);
   }
 
   void test_getAnalysisOptions_invalid() {
@@ -617,20 +578,8 @@
         pathContext.join(path, AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
     resourceProvider.newFile(filePath, ';');
 
-    AnalysisEngine engine = AnalysisEngine.instance;
-    OptionsPlugin plugin = engine.optionsPlugin;
-    plugin.registerExtensionPoints((_) {});
-    try {
-      _TestOptionsProcessor processor = new _TestOptionsProcessor();
-      (plugin.optionsProcessorExtensionPoint as ExtensionPointImpl)
-          .add(processor);
-      AnalysisContext context = engine.createAnalysisContext();
-      AnalysisOptions options = builder.getAnalysisOptions(context, path);
-      expect(options, isNotNull);
-      expect(processor.errorCount, 1);
-    } finally {
-      plugin.registerExtensionPoints((_) {});
-    }
+    AnalysisOptions options = builder.getAnalysisOptions(path);
+    expect(options, isNotNull);
   }
 
   void test_getAnalysisOptions_noDefault_noOverrides() {
@@ -645,8 +594,7 @@
     - empty_constructor_bodies
 ''');
 
-    AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
-    AnalysisOptions options = builder.getAnalysisOptions(context, path);
+    AnalysisOptions options = builder.getAnalysisOptions(path);
     _expectEqualOptions(options, new AnalysisOptionsImpl());
   }
 
@@ -664,8 +612,7 @@
     enableSuperMixins : true
 ''');
 
-    AnalysisContext context = AnalysisEngine.instance.createAnalysisContext();
-    AnalysisOptions options = builder.getAnalysisOptions(context, path);
+    AnalysisOptions options = builder.getAnalysisOptions(path);
     _expectEqualOptions(options, expected);
   }
 
@@ -732,7 +679,6 @@
     expect(actual.analyzeFunctionBodiesPredicate,
         same(expected.analyzeFunctionBodiesPredicate));
     expect(actual.dart2jsHint, expected.dart2jsHint);
-    expect(actual.enableAssertMessage, expected.enableAssertMessage);
     expect(actual.enableLazyAssignmentOperators,
         expected.enableLazyAssignmentOperators);
     expect(actual.enableStrictCallChecks, expected.enableStrictCallChecks);
@@ -783,27 +729,3 @@
     expect(locator.embedderYamls, hasLength(1));
   }
 }
-
-class _TestOptionsProcessor implements OptionsProcessor {
-  Map<String, Object> expectedOptions = null;
-
-  int errorCount = 0;
-
-  @override
-  void onError(Exception exception) {
-    errorCount++;
-  }
-
-  @override
-  void optionsProcessed(AnalysisContext context, Map<String, Object> options) {
-    if (expectedOptions == null) {
-      fail('Unexpected invocation of optionsProcessed');
-    }
-    expect(options, hasLength(expectedOptions.length));
-    for (String key in expectedOptions.keys) {
-      expect(options.containsKey(key), isTrue, reason: 'missing key $key');
-      expect(options[key], expectedOptions[key],
-          reason: 'values for key $key do not match');
-    }
-  }
-}
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index b9d77b1..1f612b9 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -8,6 +8,7 @@
 import 'dart:collection';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/dart/element/visitor.dart';
@@ -2620,7 +2621,8 @@
     CompilationUnit compilationUnit =
         context.resolveCompilationUnit2(sourceA, sourceA);
     expect(compilationUnit, isNotNull);
-    LibraryElement library = compilationUnit.element.library;
+    LibraryElement library =
+        resolutionMap.elementDeclaredByCompilationUnit(compilationUnit).library;
     List<LibraryElement> importedLibraries = library.importedLibraries;
     assertNamedElements(importedLibraries, ["dart.core", "libB"]);
   }
@@ -2632,7 +2634,8 @@
     CompilationUnit compilationUnit =
         context.resolveCompilationUnit2(sourceA, sourceA);
     expect(compilationUnit, isNotNull);
-    LibraryElement library = compilationUnit.element.library;
+    LibraryElement library =
+        resolutionMap.elementDeclaredByCompilationUnit(compilationUnit).library;
     List<LibraryElement> importedLibraries = library.importedLibraries;
     assertNamedElements(importedLibraries, ["dart.core", "libB"]);
   }
@@ -4499,7 +4502,7 @@
     expect(context.getErrors(a).errors, hasLength(0));
     expect(context.getErrors(b).errors, hasLength(0));
     var unitA = context.getResolvedCompilationUnit2(a, a);
-    var unitElementA = unitA.element;
+    var unitElementA = resolutionMap.elementDeclaredByCompilationUnit(unitA);
     var libraryElementA = unitElementA.library;
     // Update a.dart, no declaration changes.
     context.setContents(
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 0ddaac5..30086bc 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -8,6 +8,7 @@
 import 'dart:convert';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/file_system/file_system.dart';
@@ -214,6 +215,38 @@
     expect(allResults, hasLength(3));
   }
 
+  test_status_analyzingOnlyWhenHasFilesToAnalyze() async {
+    AnalysisDriver driver1 = newDriver();
+    AnalysisDriver driver2 = newDriver();
+
+    String a = _p('/a.dart');
+    String b = _p('/b.dart');
+    provider.newFile(a, 'class A {}');
+    provider.newFile(b, 'class B {}');
+    driver1.addFile(a);
+    driver2.addFile(b);
+
+    Monitor idleStatusMonitor = new Monitor();
+    List<AnalysisStatus> allStatuses = [];
+    scheduler.status.forEach((status) {
+      allStatuses.add(status);
+      if (status.isIdle) {
+        idleStatusMonitor.notify();
+      }
+    });
+
+    // The two added files were analyzed, and the schedule is idle.
+    await idleStatusMonitor.signal;
+    expect(allStatuses, hasLength(2));
+    expect(allStatuses[0].isAnalyzing, isTrue);
+    expect(allStatuses[1].isAnalyzing, isFalse);
+    allStatuses.clear();
+
+    // We don't transition to analysis and back to idle.
+    await driver1.getFilesReferencingName('X');
+    expect(allStatuses, isEmpty);
+  }
+
   String _p(String path) => provider.convertPath(path);
 }
 
@@ -232,6 +265,57 @@
     expect(driver.addedFiles, isNot(contains(b)));
   }
 
+  test_addFile_shouldRefresh() async {
+    var a = _p('/test/lib/a.dart');
+    var b = _p('/test/lib/b.dart');
+
+    provider.newFile(a, 'class A {}');
+    provider.newFile(
+        b,
+        r'''
+import 'a.dart';
+''');
+
+    driver.addFile(a);
+    driver.addFile(b);
+
+    void assertNumberOfErrorsInB(int n) {
+      var bResult = allResults.singleWhere((r) => r.path == b);
+      expect(bResult.errors, hasLength(n));
+      allResults.clear();
+    }
+
+    // Initial analysis, 'b' does not use 'a', so there is a hint.
+    await _waitForIdle();
+    assertNumberOfErrorsInB(1);
+
+    // Update 'b' to use 'a', no more hints.
+    provider.newFile(
+        b,
+        r'''
+import 'a.dart';
+main() {
+  print(A);
+}
+''');
+    driver.changeFile(b);
+    await _waitForIdle();
+    assertNumberOfErrorsInB(0);
+
+    // Change 'b' t have a hint again.
+    // Add and remove 'b'.
+    // The file must be refreshed, and the hint must be reported.
+    provider.newFile(
+        b,
+        r'''
+import 'a.dart';
+''');
+    driver.removeFile(b);
+    driver.addFile(b);
+    await _waitForIdle();
+    assertNumberOfErrorsInB(1);
+  }
+
   test_addFile_thenRemove() async {
     var a = _p('/test/lib/a.dart');
     var b = _p('/test/lib/b.dart');
@@ -470,15 +554,8 @@
 ''';
     addTestFile(content);
 
-    IndexResult result = await driver.getIndex(testFile);
+    AnalysisDriverUnitIndex index = await driver.getIndex(testFile);
 
-    CompilationUnitElement unitElement = result.unitElement;
-    expect(unitElement, isNotNull);
-    expect(unitElement.source.fullName, testFile);
-    expect(unitElement.functions.map((c) => c.name),
-        unorderedEquals(['foo', 'main']));
-
-    AnalysisDriverUnitIndex index = result.index;
     int unitId = index.strings.indexOf('package:test/test.dart');
     int fooId = index.strings.indexOf('foo');
     expect(unitId, isNonNegative);
@@ -587,7 +664,10 @@
     AnalysisResult result = await driver.getResult(testFile);
     expect(result.path, testFile);
     // Has only exports for valid URIs.
-    List<ExportElement> imports = result.unit.element.library.exports;
+    List<ExportElement> imports = resolutionMap
+        .elementDeclaredByCompilationUnit(result.unit)
+        .library
+        .exports;
     expect(
         imports.map((import) => import.exportedLibrary.source.uri.toString()),
         unorderedEquals(['dart:async', 'dart:math']));
@@ -604,7 +684,10 @@
     AnalysisResult result = await driver.getResult(testFile);
     expect(result.path, testFile);
     // Has only imports for valid URIs.
-    List<ImportElement> imports = result.unit.element.library.imports;
+    List<ImportElement> imports = resolutionMap
+        .elementDeclaredByCompilationUnit(result.unit)
+        .library
+        .imports;
     expect(
         imports.map((import) => import.importedLibrary.source.uri.toString()),
         unorderedEquals(['dart:async', 'dart:math', 'dart:core']));
@@ -840,27 +923,90 @@
     assertDeclarations(await driver.getTopLevelNameDeclarations('X'), [], []);
   }
 
+  test_getUnitElement() async {
+    String content = r'''
+foo(int p) {}
+main() {
+  foo(42);
+}
+''';
+    addTestFile(content);
+
+    CompilationUnitElement unitElement = await driver.getUnitElement(testFile);
+    expect(unitElement, isNotNull);
+    expect(unitElement.source.fullName, testFile);
+    expect(unitElement.functions.map((c) => c.name),
+        unorderedEquals(['foo', 'main']));
+  }
+
+  test_hasFilesToAnalyze() async {
+    // No files yet, nothing to analyze.
+    expect(driver.hasFilesToAnalyze, isFalse);
+
+    // Add a new file, it should be analyzed.
+    addTestFile('main() {}', priority: true);
+    expect(driver.hasFilesToAnalyze, isTrue);
+
+    // Wait for idle, nothing to do.
+    await _waitForIdle();
+    expect(driver.hasFilesToAnalyze, isFalse);
+
+    // Ask to analyze the file, so there is a file to analyze.
+    Future<AnalysisResult> future = driver.getResult(testFile);
+    expect(driver.hasFilesToAnalyze, isTrue);
+
+    // Once analysis is done, there is nothing to analyze.
+    await future;
+    expect(driver.hasFilesToAnalyze, isFalse);
+
+    // Request of referenced names is not analysis of a file.
+    driver.getFilesReferencingName('X');
+    expect(driver.hasFilesToAnalyze, isFalse);
+  }
+
   test_knownFiles() async {
     var a = _p('/test/lib/a.dart');
     var b = _p('/test/lib/b.dart');
+    var c = _p('/test/lib/c.dart');
 
     provider.newFile(
         a,
         r'''
 import 'b.dart';
 ''');
+    provider.newFile(b, '');
+    provider.newFile(c, '');
 
     driver.addFile(a);
+    driver.addFile(c);
     await _waitForIdle();
 
-    expect(driver.knownFiles, contains(a));
-    expect(driver.knownFiles, contains(b));
+    expect(driver.knownFiles, unorderedEquals([a, b, c]));
 
+    // Remove a.dart and analyze.
+    // Both a.dart and b.dart are not known now.
     driver.removeFile(a);
+    await _waitForIdle();
+    expect(driver.knownFiles, unorderedEquals([c]));
+  }
 
-    // a.dart was removed, but we don't clean up the file state state yet.
-    expect(driver.knownFiles, contains(a));
-    expect(driver.knownFiles, contains(b));
+  test_knownFiles_beforeAnalysis() async {
+    var a = _p('/test/lib/a.dart');
+    var b = _p('/test/lib/b.dart');
+
+    provider.newFile(a, '');
+
+    // 'a.dart' is added, but not processed yet.
+    // So, the set of known files is empty yet.
+    driver.addFile(a);
+    expect(driver.knownFiles, isEmpty);
+
+    // Remove 'a.dart'.
+    // It has been no analysis yet, so 'a.dart' is not in the file state, only
+    // in 'added' files. So, it disappears when removed.
+    driver.removeFile(a);
+    expect(driver.knownFiles, isNot(contains(a)));
+    expect(driver.knownFiles, isNot(contains(b)));
   }
 
   test_parseFile_shouldRefresh() async {
@@ -1194,6 +1340,29 @@
     expect(allResults, isEmpty);
   }
 
+  test_removeFile_invalidate_importers() async {
+    var a = _p('/test/lib/a.dart');
+    var b = _p('/test/lib/b.dart');
+
+    provider.newFile(a, 'class A {}');
+    provider.newFile(b, "import 'a.dart';  var a = new A();");
+
+    driver.addFile(a);
+    driver.addFile(b);
+    await _waitForIdle();
+
+    // b.dart s clean.
+    expect(allResults.singleWhere((r) => r.path == b).errors, isEmpty);
+    allResults.clear();
+
+    // Remove a.dart, now b.dart should be reanalyzed and has an error.
+    provider.deleteFile(a);
+    driver.removeFile(a);
+    await _waitForIdle();
+    expect(allResults.singleWhere((r) => r.path == b).errors, hasLength(2));
+    allResults.clear();
+  }
+
   test_results_priority() async {
     String content = 'int f() => 42;';
     addTestFile(content, priority: true);
@@ -1291,7 +1460,11 @@
 
   String _getClassFieldType(
       CompilationUnit unit, String className, String fieldName) {
-    return _getClassField(unit, className, fieldName).element.type.toString();
+    return resolutionMap
+        .elementDeclaredByVariableDeclaration(
+            _getClassField(unit, className, fieldName))
+        .type
+        .toString();
   }
 
   MethodDeclaration _getClassMethod(
@@ -1310,8 +1483,9 @@
 
   String _getClassMethodReturnType(
       CompilationUnit unit, String className, String fieldName) {
-    return _getClassMethod(unit, className, fieldName)
-        .element
+    return resolutionMap
+        .elementDeclaredByMethodDeclaration(
+            _getClassMethod(unit, className, fieldName))
         .type
         .returnType
         .toString();
@@ -1341,7 +1515,10 @@
   }
 
   String _getTopLevelVarType(CompilationUnit unit, String name) {
-    return _getTopLevelVar(unit, name).element.type.toString();
+    return resolutionMap
+        .elementDeclaredByVariableDeclaration(_getTopLevelVar(unit, name))
+        .type
+        .toString();
   }
 
   /**
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index 3b830fb..fd8373f 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -5,6 +5,7 @@
 import 'dart:async';
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/dart/analysis/search.dart';
@@ -177,7 +178,8 @@
     ConstructorElement element = _findElementAtString('A() {}');
 
     CompilationUnit otherUnit = (await driver.getResult(other)).unit;
-    Element main = otherUnit.element.functions[0];
+    Element main =
+        resolutionMap.elementDeclaredByCompilationUnit(otherUnit).functions[0];
     var expected = [
       new ExpectedResult(main, SearchResultKind.REFERENCE,
           otherCode.indexOf('(); // in other'), 0,
@@ -530,7 +532,7 @@
     await _resolveTestUnit('''
 class C {
   var f;
-  C({p}) : f = p + 1 {
+  C(p) : f = p + 1 {
     p = 2;
     p += 3;
     print(p);
@@ -538,20 +540,18 @@
   }
 }
 main() {
-  new C(p: 42);
+  new C(42);
 }
 ''');
     ParameterElement element = _findElement('p');
     ClassElement classC = _findElement('C');
     ConstructorElement constructorA = classC.unnamedConstructor;
-    Element mainElement = _findElement('main');
     var expected = [
       _expectId(constructorA, SearchResultKind.READ, 'p + 1 {'),
       _expectId(constructorA, SearchResultKind.WRITE, 'p = 2;'),
       _expectId(constructorA, SearchResultKind.READ_WRITE, 'p += 3;'),
       _expectId(constructorA, SearchResultKind.READ, 'p);'),
-      _expectId(constructorA, SearchResultKind.INVOCATION, 'p();'),
-      _expectIdQ(mainElement, SearchResultKind.REFERENCE, 'p: 42')
+      _expectId(constructorA, SearchResultKind.INVOCATION, 'p();')
     ];
     await _verifyReferences(element, expected);
   }
@@ -559,24 +559,22 @@
   test_searchReferences_ParameterElement_ofLocalFunction() async {
     await _resolveTestUnit('''
 main() {
-  foo({p}) {
+  foo(p) {
     p = 1;
     p += 2;
     print(p);
     p();
   }
-  foo(p: 42);
+  foo(42);
 }
 ''');
     ParameterElement element = _findElement('p');
     Element fooElement = _findElement('foo');
-    Element mainElement = _findElement('main');
     var expected = [
       _expectId(fooElement, SearchResultKind.WRITE, 'p = 1;'),
       _expectId(fooElement, SearchResultKind.READ_WRITE, 'p += 2;'),
       _expectId(fooElement, SearchResultKind.READ, 'p);'),
-      _expectId(fooElement, SearchResultKind.INVOCATION, 'p();'),
-      _expectIdQ(mainElement, SearchResultKind.REFERENCE, 'p: 42')
+      _expectId(fooElement, SearchResultKind.INVOCATION, 'p();')
     ];
     await _verifyReferences(element, expected);
   }
@@ -584,7 +582,7 @@
   test_searchReferences_ParameterElement_ofMethod() async {
     await _resolveTestUnit('''
 class C {
-  foo({p}) {
+  foo(p) {
     p = 1;
     p += 2;
     print(p);
@@ -592,24 +590,45 @@
   }
 }
 main(C c) {
-  c.foo(p: 42);
+  c.foo(42);
 }
 ''');
     ParameterElement element = _findElement('p');
     Element fooElement = _findElement('foo');
-    Element mainElement = _findElement('main');
     var expected = [
       _expectId(fooElement, SearchResultKind.WRITE, 'p = 1;'),
       _expectId(fooElement, SearchResultKind.READ_WRITE, 'p += 2;'),
       _expectId(fooElement, SearchResultKind.READ, 'p);'),
-      _expectId(fooElement, SearchResultKind.INVOCATION, 'p();'),
-      _expectIdQ(mainElement, SearchResultKind.REFERENCE, 'p: 42')
+      _expectId(fooElement, SearchResultKind.INVOCATION, 'p();')
     ];
     await _verifyReferences(element, expected);
   }
 
   test_searchReferences_ParameterElement_ofTopLevelFunction() async {
     await _resolveTestUnit('''
+foo(p) {
+  p = 1;
+  p += 2;
+  print(p);
+  p();
+}
+main() {
+  foo(42);
+}
+''');
+    ParameterElement element = _findElement('p');
+    Element fooElement = _findElement('foo');
+    var expected = [
+      _expectId(fooElement, SearchResultKind.WRITE, 'p = 1;'),
+      _expectId(fooElement, SearchResultKind.READ_WRITE, 'p += 2;'),
+      _expectId(fooElement, SearchResultKind.READ, 'p);'),
+      _expectId(fooElement, SearchResultKind.INVOCATION, 'p();')
+    ];
+    await _verifyReferences(element, expected);
+  }
+
+  test_searchReferences_ParameterElement_named() async {
+    await _resolveTestUnit('''
 foo({p}) {
   p = 1;
   p += 2;
diff --git a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
index 43dfdf7..40942d2 100644
--- a/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/evaluation_test.dart
@@ -6,6 +6,7 @@
 
 import 'package:analyzer/context/declared_variables.dart';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
@@ -1589,7 +1590,8 @@
 
   DartObjectImpl _evaluateConstant(CompilationUnit compilationUnit, String name,
       Map<String, DartObjectImpl> lexicalEnvironment) {
-    Source source = compilationUnit.element.source;
+    Source source =
+        resolutionMap.elementDeclaredByCompilationUnit(compilationUnit).source;
     Expression expression =
         findTopLevelConstantExpression(compilationUnit, name);
     GatheringErrorListener errorListener = new GatheringErrorListener();
diff --git a/pkg/analyzer/test/src/dart/sdk/patch_test.dart b/pkg/analyzer/test/src/dart/sdk/patch_test.dart
index dc3a903..a63459e 100644
--- a/pkg/analyzer/test/src/dart/sdk/patch_test.dart
+++ b/pkg/analyzer/test/src/dart/sdk/patch_test.dart
@@ -621,16 +621,18 @@
     }, throwsArgumentError);
   }
 
-  test_topLevel_fail_topLevelVariable() {
-    expect(() {
-      _doTopLevelPatching(
-          r'''
+  test_topLevel_topLevelVariable_append() {
+    CompilationUnit unit = _doTopLevelPatching(
+        r'''
 int foo() => 0;
 ''',
-          r'''
+        r'''
 int _bar;
 ''');
-    }, throwsArgumentError);
+    _assertUnitCode(unit, 'int foo() => 0; int _bar;');
+    FunctionDeclaration a = unit.declarations[0];
+    TopLevelVariableDeclaration b = unit.declarations[1];
+    _assertPrevNextToken(a.endToken, b.beginToken);
   }
 
   test_topLevel_function_append() {
diff --git a/pkg/analyzer/test/src/lint/config_test.dart b/pkg/analyzer/test/src/lint/config_test.dart
new file mode 100644
index 0000000..44f385d
--- /dev/null
+++ b/pkg/analyzer/test/src/lint/config_test.dart
@@ -0,0 +1,206 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/src/lint/config.dart';
+import 'package:test/test.dart';
+
+main() {
+  defineTests();
+}
+
+defineTests() {
+  const src = """
+files:
+  include: foo # un-quoted
+  exclude:
+    - 'test/**'       # file globs can be scalars or lists
+    - '**/_data.dart' # unquoted stars treated by YAML as aliases
+rules:
+  style_guide:
+    unnecessary_getters: false #disable
+    camel_case_types: true #enable
+  pub:
+    package_names: false
+""";
+
+// In the future, options might be marshaled in maps and passed to rules.
+//  acme:
+//    some_rule:
+//      some_option: # Note this nesting might be arbitrarily complex?
+//        - param1
+//        - param2
+
+  var config = new LintConfig.parse(src);
+
+  group('lint config', () {
+    group('file', () {
+      test('includes', () {
+        expect(config.fileIncludes, unorderedEquals(['foo']));
+      });
+      test('excludes', () {
+        expect(
+            config.fileExcludes, unorderedEquals(['test/**', '**/_data.dart']));
+      });
+    });
+    group('rule', () {
+      test('configs', () {
+        expect(config.ruleConfigs, hasLength(3));
+      });
+
+      test('config', () {
+        config = new LintConfig.parse('''
+rules:
+  style_guide:
+    unnecessary_getters: false''');
+        expect(config.ruleConfigs, hasLength(1));
+        var ruleConfig = config.ruleConfigs[0];
+        expect(ruleConfig.group, 'style_guide');
+        expect(ruleConfig.name, 'unnecessary_getters');
+        expect(ruleConfig.args, {'enabled': false});
+        expect(ruleConfig.disables('unnecessary_getters'), isTrue);
+      });
+    });
+  });
+
+  group('analysis options', () {
+    group('parsing', () {
+      group('groups', () {
+        test('basic', () {
+          var src = '''
+plugin_a:
+  option_a: false
+plugin_b:
+  option_b: true
+linter:
+  rules:
+    style_guide:
+      unnecessary_getters: false #disable
+      camel_case_types: true #enable
+''';
+          var config = processAnalysisOptionsFile(src);
+          var ruleNames = config.ruleConfigs.map((rc) => rc.name);
+          expect(ruleNames, hasLength(2));
+          expect(ruleNames, contains('unnecessary_getters'));
+          expect(ruleNames, contains('camel_case_types'));
+        });
+      });
+
+      group('w/o groups', () {
+        test('rule list', () {
+          var src = '''
+plugin_a:
+  option_a: false
+plugin_b:
+  option_b: true
+linter:
+  rules:
+    - camel_case_types
+''';
+          var config = processAnalysisOptionsFile(src);
+          expect(config.ruleConfigs.length, 1);
+          // Verify that defaults are enabled.
+          expect(config.ruleConfigs[0].args['enabled'], isTrue);
+        });
+
+        test('rule map (bools)', () {
+          var src = '''
+plugin_a:
+  option_a: false
+plugin_b:
+  option_b: true
+linter:
+  rules:
+    camel_case_types: true #enable
+    unnecessary_getters: false #disable
+''';
+          var config = processAnalysisOptionsFile(src);
+          var ruleConfigs = config.ruleConfigs.toList();
+          ruleConfigs.sort(
+              (RuleConfig rc1, RuleConfig rc2) => rc1.name.compareTo(rc2.name));
+          expect(ruleConfigs, hasLength(2));
+          expect(ruleConfigs[0].name, 'camel_case_types');
+          expect(config.ruleConfigs[0].args['enabled'], isFalse);
+          expect(ruleConfigs[1].name, 'unnecessary_getters');
+          expect(config.ruleConfigs[1].args['enabled'], isTrue);
+        });
+      });
+    });
+
+    test('empty file', () {
+      expect(processAnalysisOptionsFile(''), isNull);
+    });
+
+    test('bad format', () {
+      expect(processAnalysisOptionsFile('foo: '), isNull);
+    });
+  });
+
+  group('options processing', () {
+    group('raw maps', () {
+      test('rule list', () {
+        Map options = {};
+        var lintOptions = {
+          'rules': ['camel_case_types']
+        };
+        options['linter'] = lintOptions;
+
+        var config = parseConfig(options);
+        expect(config, isNotNull);
+        expect(config.ruleConfigs, hasLength(1));
+      });
+
+      test('rule map (bool)', () {
+        Map options = {};
+        var lintOptions = {
+          'rules': {'camel_case_types': true}
+        };
+        options['linter'] = lintOptions;
+
+        var config = parseConfig(options);
+        expect(config, isNotNull);
+        expect(config.ruleConfigs, hasLength(1));
+      });
+
+      test('rule map (string)', () {
+        Map options = {};
+        var lintOptions = {
+          'rules': {'camel_case_types': 'true'}
+        };
+        options['linter'] = lintOptions;
+
+        var config = parseConfig(options);
+        expect(config, isNotNull);
+        expect(config.ruleConfigs, hasLength(1));
+      });
+
+      test('nested rule map (bool)', () {
+        Map options = {};
+        var lintOptions = {
+          'rules': {
+            'style_guide': {'camel_case_types': true}
+          }
+        };
+        options['linter'] = lintOptions;
+
+        var config = parseConfig(options);
+        expect(config, isNotNull);
+        expect(config.ruleConfigs, hasLength(1));
+      });
+
+      test('nested rule map (string)', () {
+        Map options = {};
+        var lintOptions = {
+          'rules': {
+            'style_guide': {'camel_case_types': true}
+          }
+        };
+        options['linter'] = lintOptions;
+
+        var config = parseConfig(options);
+        expect(config, isNotNull);
+        expect(config.ruleConfigs, hasLength(1));
+      });
+    });
+  });
+}
diff --git a/pkg/analyzer/test/src/lint/io_test.dart b/pkg/analyzer/test/src/lint/io_test.dart
new file mode 100644
index 0000000..3a377f0
--- /dev/null
+++ b/pkg/analyzer/test/src/lint/io_test.dart
@@ -0,0 +1,89 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/src/lint/io.dart';
+import 'package:test/test.dart';
+
+main() {
+  defineTests();
+}
+
+defineTests() {
+  // TODO: redefine tests
+
+//  group('commandline args', () {
+//    var mockFile = new File('foo.dart');
+//    when(mockFile.absolute).thenReturn(mockFile);
+//
+//    var options = new LinterOptions(() => []);
+//    var mockLinter = new MockLinter();
+//    when(mockLinter.options).thenReturn(options);
+//
+//    lintFile(mockFile,
+//        dartSdkPath: '/path/to/sdk',
+//        packageRoot: '/my/pkgs',
+//        linter: mockLinter);
+//
+//    test('dartSdkPath', () {
+//      expect(options.dartSdkPath, equals('/path/to/sdk'));
+//      expect(options.packageRootPath, equals('/my/pkgs'));
+//    });
+//
+//    test('packageRoot', () {
+//      expect(options.dartSdkPath, equals('/path/to/sdk'));
+//      expect(options.packageRootPath, equals('/my/pkgs'));
+//    });
+//
+//    test('exception handling', () {
+//      var mockErr = new MockIOSink();
+//      std_err = mockErr;
+//      when(mockLinter.lintFiles(any)).thenAnswer((_) => throw 'err');
+//      expect(lintFiles([mockFile], linter: mockLinter), isFalse);
+//      verify(std_err.writeln(any)).called(1);
+//    });
+//  });
+
+  group('processing', () {
+    group('files', () {
+      test('dart', () {
+        var file = new File('foo.dart');
+        expect(isLintable(file), isTrue);
+      });
+      test('pubspec', () {
+        var file = new File('pubspec.yaml');
+        expect(isLintable(file), isTrue);
+      });
+      test('_pubspec', () {
+        // Analyzable for testing purposes
+        var file = new File('_pubspec.yaml');
+        expect(isLintable(file), isTrue);
+      });
+      test('text', () {
+        var file = new File('foo.txt');
+        expect(isLintable(file), isFalse);
+      });
+      test('hidden dirs', () {
+        expect(isInHiddenDir('.foo/'), isTrue);
+        expect(isInHiddenDir('.foo/bar'), isTrue);
+      });
+    });
+  });
+
+  // TODO(brianwilkerson) Rewrite this to use a memory resource provider.
+//  group('collecting', () {
+//    group('files', () {
+//      test('basic', () {
+//        expect(
+//            collectFiles(p.join('test', '_data', 'p1')).map((f) => f.path),
+//            unorderedEquals([
+//              p.join('test', '_data', 'p1', 'p1.dart'),
+//              p.join('test', '_data', 'p1', '_pubspec.yaml'),
+//              p.join('test', '_data', 'p1', 'src', 'p2.dart')
+//            ]));
+//      });
+//    });
+//  });
+}
diff --git a/pkg/analyzer/test/src/lint/project_test.dart b/pkg/analyzer/test/src/lint/project_test.dart
new file mode 100644
index 0000000..76282d1
--- /dev/null
+++ b/pkg/analyzer/test/src/lint/project_test.dart
@@ -0,0 +1,61 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:analyzer/src/lint/project.dart';
+import 'package:test/test.dart';
+
+main() {
+//  defineTests();
+}
+
+defineTests() {
+  group('project', () {
+    group('basic', () {
+      // TODO(brianwilkerson) These tests fail on the bots because the cwd is
+      // not the same there as when we run tests locally.
+      group('cwd', () {
+        var project = new DartProject(null, null);
+        test('name', () {
+          expect(project.name, 'analyzer');
+        });
+        test('spec', () {
+          expect(project.pubspec, isNotNull);
+        });
+        test('root', () {
+          expect(project.root.path, Directory.current.path);
+        });
+      });
+      // TODO(brianwilkerson) Rewrite these to use a memory resource provider.
+//      group('p1', () {
+//        var project =
+//            new DartProject(null, null, dir: new Directory('test/_data/p1'));
+//        test('name', () {
+//          expect(project.name, 'p1');
+//        });
+//        test('spec', () {
+//          expect(project.pubspec, isNotNull);
+//          expect(project.pubspec.name.value.text, 'p1');
+//        });
+//        test('root', () {
+//          expect(project.root.path, 'test/_data/p1');
+//        });
+//      });
+//      group('no pubspec', () {
+//        var project = new DartProject(null, null,
+//            dir: new Directory('test/_data/p1/src'));
+//        test('name', () {
+//          expect(project.name, 'src');
+//        });
+//        test('spec', () {
+//          expect(project.pubspec, isNull);
+//        });
+//        test('root', () {
+//          expect(project.root.path, 'test/_data/p1/src');
+//        });
+//      });
+    });
+  });
+}
diff --git a/pkg/analyzer/test/src/lint/pub_test.dart b/pkg/analyzer/test/src/lint/pub_test.dart
new file mode 100644
index 0000000..5a7f721
--- /dev/null
+++ b/pkg/analyzer/test/src/lint/pub_test.dart
@@ -0,0 +1,200 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/src/lint/pub.dart';
+import 'package:source_span/source_span.dart';
+import 'package:test/test.dart';
+
+main() {
+  defineTests();
+}
+
+defineTests() {
+  const src = """
+name: linter
+version: 0.0.1
+author: Dart Team <misc@dartlang.org>
+authors:
+  - Bill
+  - Ted
+description: Style linter for Dart.
+documentation:
+homepage: https://github.com/dart-lang/linter
+dependencies:
+  transmogrify:
+    hosted:
+      name: transmogrify
+      url: http://your-package-server.com
+    version: '>=0.4.0 <1.0.0'
+  analyzer: '0.24.0-dev.1'
+  cli_util: '>=0.0.1 <0.1.0'
+  semver: '>=0.2.0 <0.3.0'
+  yaml: '>=2.1.2 <3.0.0'
+  kittens:
+    git:
+      url: git://github.com/munificent/kittens.git
+      ref: some-branch
+  foo: any
+dev_dependencies:
+  markdown: '>=0.7.1+2 <0.8.0'
+  unittest: '>=0.11.0 <0.12.0'
+""";
+
+  Pubspec ps = new Pubspec.parse(src);
+
+  group('pubspec', () {
+    group('basic', () {
+      test('toString()', () {
+        // For now just confirm it doesn't blow up
+        expect(ps.toString(), isNotNull);
+      });
+    });
+    group('entries', () {
+      testValue('name', ps.name, equals('linter'));
+      testKeySpan('name', ps.name, startOffset: 0, endOffset: 4);
+      testValueSpan('name', ps.name, startOffset: 6, endOffset: 12);
+      group('documentation', () {
+        test('no value', () {
+          expect(ps.documentation.value.text, isNull);
+        });
+      });
+      testValue('homepage', ps.homepage,
+          equals('https://github.com/dart-lang/linter'));
+      testValue(
+          'description', ps.description, equals('Style linter for Dart.'));
+      testValue('version', ps.version, equals('0.0.1'));
+      testValue('author', ps.author, equals('Dart Team <misc@dartlang.org>'));
+
+      group('authors', () {
+        PSNodeList authors = ps.authors;
+        test('contents', () {
+          expect(authors, isNotNull);
+          expect(authors.any((PSNode n) => n.text == 'Bill'), isTrue);
+          expect(authors.any((PSNode n) => n.text == 'Ted'), isTrue);
+        });
+      });
+
+      testDepListContains('dependencies', ps.dependencies, [
+        {'analyzer': '0.24.0-dev.1'}
+      ]);
+
+      testDepListContains('dev_dependencies', ps.devDependencies, [
+        {'markdown': '>=0.7.1+2 <0.8.0'}
+      ]);
+
+      group('hosted', () {
+        PSDependency dep =
+            findDependency(ps.dependencies, name: 'transmogrify');
+        PSHost host = dep.host;
+        testValue('name', host.name, equals('transmogrify'));
+        testValue('url', host.url, equals('http://your-package-server.com'));
+        testKeySpan('name', host.name, startOffset: 237, endOffset: 241);
+        testValueSpan('name', host.name, startOffset: 243, endOffset: 255);
+      });
+
+      group('git', () {
+        PSDependency dep = findDependency(ps.dependencies, name: 'kittens');
+        PSGitRepo git = dep.git;
+        testValue('ref', git.ref, equals('some-branch'));
+        testValue(
+            'url', git.url, equals('git://github.com/munificent/kittens.git'));
+      });
+    });
+//    group('visiting', () {
+//      test('smoke', () {
+//        var mock = new MockPubVisitor();
+//        ps.accept(mock);
+//        verify(mock.visitPackageAuthor(any)).called(1);
+//        verify(mock.visitPackageAuthors(any)).called(1);
+//        verify(mock.visitPackageDependencies(any)).called(1);
+//        verify(mock.visitPackageDependency(any)).called(7);
+//        verify(mock.visitPackageDescription(any)).called(1);
+//        verify(mock.visitPackageDevDependencies(any)).called(1);
+//        verify(mock.visitPackageDevDependency(any)).called(2);
+//        verify(mock.visitPackageDocumentation(any)).called(1);
+//        verify(mock.visitPackageHomepage(any)).called(1);
+//        verify(mock.visitPackageName(any)).called(1);
+//        verify(mock.visitPackageVersion(any)).called(1);
+//      });
+//    });
+    // TODO(brianwilkerson) Rewrite this to use a memory resource provider.
+//    group('initialization', () {
+//      test('sourceUrl', () {
+//        File ps = new File('test/_data/p1/_pubspec.yaml');
+//        Pubspec spec = new Pubspec.parse(ps.readAsStringSync(),
+//            sourceUrl: p.toUri(ps.path));
+//        expect(spec.name.key.span.sourceUrl.toFilePath(windows: false),
+//            equals('test/_data/p1/_pubspec.yaml'));
+//      });
+//    });
+//    group('parsing', () {
+//      test('bad yaml', () {
+//        File ps = new File('test/_data/p3/_pubspec.yaml');
+//        Pubspec spec = new Pubspec.parse(ps.readAsStringSync(),
+//            sourceUrl: p.toUri(ps.path));
+//        expect(spec.name, isNull);
+//        expect(spec.description, isNull);
+//      });
+//    });
+  });
+}
+
+PSDependency findDependency(PSDependencyList deps, {String name}) =>
+    deps.firstWhere((dep) => dep.name.text == name, orElse: () => null);
+
+testDepListContains(
+    String label, PSDependencyList list, List<Map<String, String>> exp) {
+  test(label, () {
+    exp.forEach((Map<String, String> entry) {
+      entry.forEach((k, v) {
+        PSDependency dep = findDependency(list, name: k);
+        expect(dep, isNotNull);
+        expect(dep.version.value.text, equals(v));
+      });
+    });
+  });
+}
+
+testEntry(String label, PSEntry node, Matcher m) {
+  group(label, () {
+    test('entry', () {
+      expect(node, m);
+    });
+  });
+}
+
+testKeySpan(String label, PSEntry node, {int startOffset, int endOffset}) {
+  group(label, () {
+    group('key', () {
+      testSpan(node.key.span, startOffset: startOffset, endOffset: endOffset);
+    });
+  });
+}
+
+testSpan(SourceSpan span, {int startOffset, int endOffset}) {
+  test('span', () {
+    var start = span.start;
+    expect(start, isNotNull);
+    expect(start.offset, equals(startOffset));
+    var end = span.end;
+    expect(end, isNotNull);
+    expect(end.offset, equals(endOffset));
+  });
+}
+
+testValue(String label, PSEntry node, Matcher m) {
+  group(label, () {
+    test('value', () {
+      expect(node.value.text, m);
+    });
+  });
+}
+
+testValueSpan(String label, PSEntry node, {int startOffset, int endOffset}) {
+  group(label, () {
+    group('value', () {
+      testSpan(node.value.span, startOffset: startOffset, endOffset: endOffset);
+    });
+  });
+}
diff --git a/pkg/analyzer/test/src/lint/test_all.dart b/pkg/analyzer/test/src/lint/test_all.dart
new file mode 100644
index 0000000..60555a3
--- /dev/null
+++ b/pkg/analyzer/test/src/lint/test_all.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'config_test.dart' as config_test;
+import 'io_test.dart' as io_test;
+import 'project_test.dart' as project_test;
+import 'pub_test.dart' as pub_test;
+
+/// Utility for manually running all tests.
+main() {
+  defineReflectiveSuite(() {
+    config_test.main();
+    io_test.main();
+    project_test.main();
+    pub_test.main();
+  }, name: 'lint');
+}
diff --git a/pkg/analyzer/test/src/plugin/plugin_config_test.dart b/pkg/analyzer/test/src/plugin/plugin_config_test.dart
deleted file mode 100644
index 84ec8c8..0000000
--- a/pkg/analyzer/test/src/plugin/plugin_config_test.dart
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer.test.src.plugin.plugin_config_test;
-
-import 'package:analyzer/source/analysis_options_provider.dart';
-import 'package:analyzer/src/plugin/plugin_configuration.dart';
-import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
-
-main() {
-  group('plugin config tests', () {
-    group('parsing', () {
-      test('plugin map', () {
-        const optionsSrc = '''
-analyzer:
-  plugins:
-    my_plugin1: ^0.1.0 #shorthand
-    my_plugin2:
-      version: ^0.2.0
-    my_plugin3:
-      class_name: MyPlugin
-      library_uri: myplugin/myplugin.dart
-      path: '/u/disk/src/'
-''';
-        var config = parseConfig(optionsSrc);
-        var plugins = pluginsSortedByName(config.plugins);
-        expect(plugins, hasLength(3));
-        expect(plugins[0].name, equals('my_plugin1'));
-        expect(plugins[0].version, equals('^0.1.0'));
-        expect(plugins[1].name, equals('my_plugin2'));
-        expect(plugins[1].version, equals('^0.2.0'));
-        expect(plugins[2].name, equals('my_plugin3'));
-        expect(plugins[2].version, isNull);
-        expect(plugins[2].path, equals('/u/disk/src/'));
-        expect(plugins[2].libraryUri, equals('myplugin/myplugin.dart'));
-        expect(plugins[2].className, equals('MyPlugin'));
-      });
-
-      test('plugin map (empty)', () {
-        const optionsSrc = '''
-analyzer:
-  plugins:
-    # my_plugin1: ^0.1.0 #shorthand
-''';
-        var config = parseConfig(optionsSrc);
-        // Commented out plugins shouldn't cause a parse failure.
-        expect(config.plugins, hasLength(0));
-      });
-
-      test('plugin manifest', () {
-        const manifestSrc = '''
-class_name: AnalyzerPlugin
-library_uri: myplugin/analyzer_plugin.dart
-contributes_to: analyzer
-''';
-        var manifest = parsePluginManifestString(manifestSrc);
-        var plugin = manifest.plugin;
-        expect(plugin.libraryUri, equals('myplugin/analyzer_plugin.dart'));
-        expect(plugin.className, equals('AnalyzerPlugin'));
-        expect(manifest.contributesTo, unorderedEquals(['analyzer']));
-      });
-
-      test('plugin manifest (contributes_to list)', () {
-        const manifestSrc = '''
-class_name: AnalyzerPlugin
-library_uri: myplugin/analyzer_plugin.dart
-contributes_to:
-  - analyzer
-  - analysis_server
-''';
-        var manifest = parsePluginManifestString(manifestSrc);
-        var plugin = manifest.plugin;
-        expect(plugin.libraryUri, equals('myplugin/analyzer_plugin.dart'));
-        expect(plugin.className, equals('AnalyzerPlugin'));
-        expect(manifest.contributesTo,
-            unorderedEquals(['analyzer', 'analysis_server']));
-      });
-
-      group('errors', () {
-        test('bad config format', () {
-          const optionsSrc = '''
-analyzer:
-  plugins:
-    - my_plugin1
-    - my_plugin2
-''';
-          try {
-            parseConfig(optionsSrc);
-            fail('expected PluginConfigFormatException');
-          } on PluginConfigFormatException catch (e) {
-            expect(
-                e.message,
-                equals(
-                    'Unrecognized plugin config format, expected `YamlMap`, got `YamlList`'));
-            expect(e.yamlNode, new isInstanceOf<YamlList>());
-          }
-        });
-        test('bad manifest format', () {
-          const manifestSource = '''
-library_uri:
- - should be a scalar uri
-''';
-          try {
-            parsePluginManifestString(manifestSource);
-            fail('expected PluginConfigFormatException');
-          } on PluginConfigFormatException catch (e) {
-            expect(
-                e.message,
-                equals(
-                    'Unable to parse pugin manifest, expected `String`, got `YamlList`'));
-            expect(e.yamlNode, new isInstanceOf<YamlList>());
-          }
-        });
-      });
-    });
-  });
-}
-
-PluginConfig parseConfig(String optionsSrc) {
-  var options = new AnalysisOptionsProvider().getOptionsFromString(optionsSrc);
-  return new PluginConfig.fromOptions(options);
-}
-
-List<PluginInfo> pluginsSortedByName(Iterable<PluginInfo> plugins) =>
-    plugins.toList()..sort((p1, p2) => p1.name.compareTo(p2.name));
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index e654efd..aa69a70 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -5,6 +5,7 @@
 library test.src.serialization.elements_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/constant/value.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -393,8 +394,9 @@
         // In 'class C {static const a = 0; static const b = a;}' the reference
         // to 'a' in 'b' is serialized as a fully qualified 'C.a' reference.
         if (r.prefix.staticElement is ClassElement) {
+          Element oElement = resolutionMap.staticElementForIdentifier(o);
           compareElements(
-              r.prefix.staticElement, o.staticElement?.enclosingElement, desc);
+              r.prefix.staticElement, oElement?.enclosingElement, desc);
           compareConstAsts(r.identifier, o, desc);
         } else {
           fail('Prefix of type ${r.prefix.staticElement.runtimeType} should not'
@@ -1593,6 +1595,10 @@
     checkLibrary('class C { set x(int value) {} }');
   }
 
+  test_class_setter_invalid_no_parameter() {
+    checkLibrary('class C { void set x() {} }');
+  }
+
   test_class_setter_static() {
     checkLibrary('class C { static void set x(int value) {} }');
   }
@@ -4671,14 +4677,12 @@
 
   test_unresolved_import() {
     allowMissingFiles = true;
-    checkLibrary("import 'foo.dart';", allowErrors: true);
-  }
-
-  test_unresolved_import_deferred() {
-    allowMissingFiles = true;
     LibraryElementImpl library =
-        checkLibrary("import 'missing.dart' deferred as p;");
-    expect(library.imports[0].importedLibrary.loadLibraryFunction, isNotNull);
+        checkLibrary("import 'foo.dart';", allowErrors: true);
+    LibraryElement importedLibrary = library.imports[0].importedLibrary;
+    expect(importedLibrary.loadLibraryFunction, isNotNull);
+    expect(importedLibrary.publicNamespace, isNotNull);
+    expect(importedLibrary.exportNamespace, isNotNull);
   }
 
   test_unresolved_part() {
diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
index 4041961..3b81e26 100644
--- a/pkg/analyzer/test/src/task/dart_test.dart
+++ b/pkg/analyzer/test/src/task/dart_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.src.task.dart_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
@@ -186,7 +187,7 @@
       unitElement.types[0].fields[0],
       unitElement.functions[0].localVariables[0],
       unitElement.types[0].constructors[0],
-      annotation.elementAnnotation,
+      resolutionMap.elementAnnotationForAnnotation(annotation),
       unitElement.types[0].constructors[0].parameters[0]
     ];
     expect(
@@ -580,7 +581,9 @@
     // Validate metadata
     expect(part.directives[0], new isInstanceOf<PartOfDirective>());
     expect(part.directives[0].element, same(libraryA));
-    expect(part.directives[0].element.metadata, isEmpty);
+    expect(
+        resolutionMap.elementDeclaredByDirective(part.directives[0]).metadata,
+        isEmpty);
   }
 
   void _assertErrorsWithCodes(List<ErrorCode> expectedErrorCodes) {
@@ -626,7 +629,8 @@
         matcher: isBuildEnumMemberElementsTask);
     CompilationUnit unit = outputs[RESOLVED_UNIT3];
     // validate Element
-    ClassElement enumElement = unit.element.getEnum('MyEnum');
+    ClassElement enumElement =
+        resolutionMap.elementDeclaredByCompilationUnit(unit).getEnum('MyEnum');
     List<FieldElement> fields = enumElement.fields;
     expect(fields, hasLength(4));
     {
@@ -832,7 +836,8 @@
     // CompilationUnitElement(s)
     CompilationUnitElement firstPart;
     CompilationUnitElement secondPart;
-    if (partUnits[0].element.uri == 'part1.dart') {
+    if (resolutionMap.elementDeclaredByCompilationUnit(partUnits[0]).uri ==
+        'part1.dart') {
       firstPart = partUnits[0].element;
       secondPart = partUnits[1].element;
     } else {
@@ -1000,10 +1005,16 @@
 '''
     });
     CompilationUnitElement unitElement1 = partUnits
-        .singleWhere((u) => u.element.name.endsWith('part1.dart'))
+        .singleWhere((u) => resolutionMap
+            .elementDeclaredByCompilationUnit(u)
+            .name
+            .endsWith('part1.dart'))
         .element;
     CompilationUnitElement unitElement2 = partUnits
-        .singleWhere((u) => u.element.name.endsWith('part2.dart'))
+        .singleWhere((u) => resolutionMap
+            .elementDeclaredByCompilationUnit(u)
+            .name
+            .endsWith('part2.dart'))
         .element;
     PropertyAccessorElement getter = unitElement1.accessors[0];
     PropertyAccessorElement setter = unitElement2.accessors[0];
@@ -1157,19 +1168,22 @@
     computeResult(librarySpecificUnit, RESOLVED_UNIT1);
     CompilationUnit unit = outputs[RESOLVED_UNIT1];
     // Find the elements for x and D's constructor, and the annotation on C.
-    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    CompilationUnitElement compilationUnitElement =
+        resolutionMap.elementDeclaredByCompilationUnit(unit);
+    List<PropertyAccessorElement> accessors = compilationUnitElement.accessors;
     Element x = accessors
         .firstWhere((PropertyAccessorElement accessor) =>
             accessor.isGetter && accessor.name == 'x')
         .variable;
-    List<ClassElement> types = unit.element.types;
+    List<ClassElement> types = compilationUnitElement.types;
     Element constructorForD =
         types.firstWhere((ClassElement cls) => cls.name == 'D').constructors[0];
     Annotation annotation = findClassAnnotation(unit, 'C');
     // Now compute the dependencies for the annotation, and check that it is
     // the set [x, constructorForD].
     // TODO(paulberry): test librarySource != source
-    computeResult(annotation.elementAnnotation, CONSTANT_DEPENDENCIES,
+    computeResult(resolutionMap.elementAnnotationForAnnotation(annotation),
+        CONSTANT_DEPENDENCIES,
         matcher: isComputeConstantDependenciesTask);
     expect(
         outputs[CONSTANT_DEPENDENCIES].toSet(), [x, constructorForD].toSet());
@@ -1197,7 +1211,8 @@
     Annotation annotation = classC.members[0].metadata[0];
     // Now compute the dependencies for the annotation, and check that it is
     // the right size.
-    computeResult(annotation.elementAnnotation, CONSTANT_DEPENDENCIES,
+    computeResult(resolutionMap.elementAnnotationForAnnotation(annotation),
+        CONSTANT_DEPENDENCIES,
         matcher: isComputeConstantDependenciesTask);
     expect(outputs[CONSTANT_DEPENDENCIES], hasLength(1));
   }
@@ -1215,7 +1230,8 @@
     computeResult(librarySpecificUnit, RESOLVED_UNIT1);
     CompilationUnit unit = outputs[RESOLVED_UNIT1];
     // Find the element for x and the annotation on C.
-    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    List<PropertyAccessorElement> accessors =
+        resolutionMap.elementDeclaredByCompilationUnit(unit).accessors;
     Element x = accessors
         .firstWhere((PropertyAccessorElement accessor) =>
             accessor.isGetter && accessor.name == 'x')
@@ -1223,7 +1239,8 @@
     Annotation annotation = findClassAnnotation(unit, 'C');
     // Now compute the dependencies for the annotation, and check that it is
     // the list [x].
-    computeResult(annotation.elementAnnotation, CONSTANT_DEPENDENCIES,
+    computeResult(resolutionMap.elementAnnotationForAnnotation(annotation),
+        CONSTANT_DEPENDENCIES,
         matcher: isComputeConstantDependenciesTask);
     expect(outputs[CONSTANT_DEPENDENCIES], [x]);
   }
@@ -1263,7 +1280,8 @@
     computeResult(librarySpecificUnit, RESOLVED_UNIT1);
     CompilationUnit unit = outputs[RESOLVED_UNIT1];
     // Find the elements for the constants x and y.
-    List<PropertyAccessorElement> accessors = unit.element.accessors;
+    List<PropertyAccessorElement> accessors =
+        resolutionMap.elementDeclaredByCompilationUnit(unit).accessors;
     Element x = accessors
         .firstWhere((PropertyAccessorElement accessor) =>
             accessor.isGetter && accessor.name == 'x')
@@ -1539,14 +1557,19 @@
     LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
     computeResult(target, RESOLVED_UNIT7);
     CompilationUnit unit = outputs[RESOLVED_UNIT7];
-    TopLevelVariableElement elementA = unit.element.topLevelVariables[0];
-    TopLevelVariableElement elementB = unit.element.topLevelVariables[1];
+    TopLevelVariableElement elementA = resolutionMap
+        .elementDeclaredByCompilationUnit(unit)
+        .topLevelVariables[0];
+    TopLevelVariableElement elementB = resolutionMap
+        .elementDeclaredByCompilationUnit(unit)
+        .topLevelVariables[1];
 
     computeResult(elementA, INFERABLE_STATIC_VARIABLE_DEPENDENCIES,
         matcher: isComputeInferableStaticVariableDependenciesTask);
     expect(outputs, hasLength(1));
-    List<VariableElement> dependencies = outputs[
-        INFERABLE_STATIC_VARIABLE_DEPENDENCIES] as List<VariableElement>;
+    List<VariableElement> dependencies =
+        outputs[INFERABLE_STATIC_VARIABLE_DEPENDENCIES]
+            as List<VariableElement>;
     expect(dependencies, unorderedEquals([elementB]));
   }
 }
@@ -2678,13 +2701,26 @@
     CompilationUnit unit = outputs[RESOLVED_UNIT10];
     VariableDeclaration field = AstFinder.getFieldInClass(unit, 'B', 'f');
     MethodDeclaration method = AstFinder.getMethodInClass(unit, 'B', 'm');
-    DartType typeX = AstFinder.getClass(unit, 'X').element.type;
-    DartType typeY = AstFinder.getClass(unit, 'Y').element.type;
-    DartType typeZ = AstFinder.getClass(unit, 'Z').element.type;
+    DartType typeX = resolutionMap
+        .elementDeclaredByClassDeclaration(AstFinder.getClass(unit, 'X'))
+        .type;
+    DartType typeY = resolutionMap
+        .elementDeclaredByClassDeclaration(AstFinder.getClass(unit, 'Y'))
+        .type;
+    DartType typeZ = resolutionMap
+        .elementDeclaredByClassDeclaration(AstFinder.getClass(unit, 'Z'))
+        .type;
 
-    expect(field.element.type, typeX);
-    expect(method.element.returnType, typeY);
-    expect(method.element.parameters[0].type, typeZ);
+    expect(
+        resolutionMap.elementDeclaredByVariableDeclaration(field).type, typeX);
+    expect(resolutionMap.elementDeclaredByMethodDeclaration(method).returnType,
+        typeY);
+    expect(
+        resolutionMap
+            .elementDeclaredByMethodDeclaration(method)
+            .parameters[0]
+            .type,
+        typeZ);
   }
 
   void test_perform_cross_library_const() {
@@ -2722,10 +2758,13 @@
         AstFinder.getFieldInClass(secondUnit, 'M', 'c');
     InterfaceType stringType = context.typeProvider.stringType;
 
-    expect(variableA.element.type, stringType);
-    expect(variableB.element.type, stringType);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableA).type,
+        stringType);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableB).type,
+        stringType);
     expect(variableB.initializer.staticType, stringType);
-    expect(variableC.element.type, stringType);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableC).type,
+        stringType);
     expect(variableC.initializer.staticType, stringType);
   }
 
@@ -2790,7 +2829,8 @@
     CompilationUnit unit = outputs[RESOLVED_UNIT8];
     VariableDeclaration declaration = AstFinder.getFieldInClass(unit, 'M', 'X');
     InterfaceType stringType = context.typeProvider.stringType;
-    expect(declaration.element.type, stringType);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(declaration).type,
+        stringType);
   }
 
   test_perform_hasParseError() {
@@ -2853,12 +2893,16 @@
     VariableDeclaration variableC =
         AstFinder.getTopLevelVariable(firstUnit, 'c');
     ClassDeclaration classM = AstFinder.getClass(secondUnit, 'M');
-    DartType typeM = classM.element.type;
+    DartType typeM =
+        resolutionMap.elementDeclaredByClassDeclaration(classM).type;
 
-    expect(variableA.element.type, typeM);
-    expect(variableB.element.type, typeM);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableA).type,
+        typeM);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableB).type,
+        typeM);
     expect(variableB.initializer.staticType, typeM);
-    expect(variableC.element.type, typeM);
+    expect(resolutionMap.elementDeclaredByVariableDeclaration(variableC).type,
+        typeM);
     expect(variableC.initializer.staticType, typeM);
   }
 
@@ -2900,8 +2944,9 @@
     expect(outputs[RESOLVED_UNIT8], isNotNull);
     expect(outputs[CREATED_RESOLVED_UNIT8], isTrue);
     // An INFERRED_TYPE_LITERAL error should be generated.
-    List<AnalysisError> errors = outputs[
-        STATIC_VARIABLE_RESOLUTION_ERRORS_IN_UNIT] as List<AnalysisError>;
+    List<AnalysisError> errors =
+        outputs[STATIC_VARIABLE_RESOLUTION_ERRORS_IN_UNIT]
+            as List<AnalysisError>;
     expect(errors, hasLength(1));
     expect(errors[0].errorCode, StrongModeCode.INFERRED_TYPE_LITERAL);
   }
@@ -4500,7 +4545,8 @@
     Identifier boundName = boundNode.name;
     expect(boundNode.type.toString(), expectedBoundTypeString);
     expect(boundName.staticType.toString(), expectedBoundTypeString);
-    expect(boundName.staticElement.displayName, expectedBoundElementName);
+    expect(resolutionMap.staticElementForIdentifier(boundName).displayName,
+        expectedBoundElementName);
   }
 }
 
@@ -4584,7 +4630,8 @@
       ClassDeclaration nodeA = unit.declarations[0];
       ClassDeclaration nodeB = unit.declarations[1];
       DartType extendsType = nodeB.extendsClause.superclass.type;
-      expect(extendsType, nodeA.element.type);
+      expect(extendsType,
+          resolutionMap.elementDeclaredByClassDeclaration(nodeA).type);
     }
     {
       FunctionDeclaration functionNode = unit.declarations[2];
@@ -4592,7 +4639,12 @@
       List<FormalParameter> parameters =
           functionNode.functionExpression.parameters.parameters;
       expect(returnType.displayName, 'int');
-      expect(parameters[0].element.type.displayName, 'String');
+      expect(
+          resolutionMap
+              .elementDeclaredByFormalParameter(parameters[0])
+              .type
+              .displayName,
+          'String');
     }
   }
 
@@ -4626,15 +4678,20 @@
     FunctionTypeAlias nodeG = unit.declarations[1];
     {
       FormalParameter parameter = nodeF.parameters.parameters[0];
-      DartType parameterType = parameter.element.type;
-      Element returnTypeElement = nodeF.returnType.type.element;
+      DartType parameterType =
+          resolutionMap.elementDeclaredByFormalParameter(parameter).type;
+      Element returnTypeElement =
+          resolutionMap.typeForTypeName(nodeF.returnType).element;
       expect(returnTypeElement.displayName, 'int');
       expect(parameterType.element, nodeG.element);
     }
     {
       FormalParameter parameter = nodeG.parameters.parameters[0];
-      DartType parameterType = parameter.element.type;
-      expect(nodeG.returnType.type.element.displayName, 'String');
+      DartType parameterType =
+          resolutionMap.elementDeclaredByFormalParameter(parameter).type;
+      expect(
+          resolutionMap.typeForTypeName(nodeG.returnType).element.displayName,
+          'String');
       expect(parameterType.element.displayName, 'int');
     }
   }
@@ -5305,7 +5362,8 @@
         AstFinder.getStatementsInTopLevelFunction(unit, "test");
     VariableDeclaration decl =
         (statements[0] as VariableDeclarationStatement).variables.variables[0];
-    expect(decl.element.type, intType);
+    expect(
+        resolutionMap.elementDeclaredByVariableDeclaration(decl).type, intType);
     expect(decl.initializer.staticType, intType);
 
     ExpressionStatement statement = statements[1];
@@ -5593,7 +5651,8 @@
 
   void assertVariableDeclarationTypes(
       VariableDeclaration decl, DartType varType, DartType initializerType) {
-    expect(decl.element.type, varType);
+    expect(
+        resolutionMap.elementDeclaredByVariableDeclaration(decl).type, varType);
     expect(decl.initializer.staticType, initializerType);
   }
 
diff --git a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
index 05c7a76..05b0807 100644
--- a/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
+++ b/pkg/analyzer/test/src/task/incremental_element_builder_test.dart
@@ -5,6 +5,7 @@
 library analyzer.test.src.task.incremental_element_builder_test;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/visitor.dart';
 import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -1244,7 +1245,9 @@
     // Set the LibraryElement and check that its nameOffset is correct.
     libraryDirective.element =
         new LibraryElementImpl.forNode(context, libraryDirective.name);
-    expect(libraryDirective.element.nameOffset, libraryDirective.name.offset);
+    expect(
+        resolutionMap.elementDeclaredByDirective(libraryDirective).nameOffset,
+        libraryDirective.name.offset);
     // Update and check again that the nameOffset is correct.
     _buildNewUnit(r'''
 #!/bin/sh
@@ -1252,7 +1255,9 @@
 library my_lib;
 class A {}
 ''');
-    expect(libraryDirective.element.nameOffset, libraryDirective.name.offset);
+    expect(
+        resolutionMap.elementDeclaredByDirective(libraryDirective).nameOffset,
+        libraryDirective.name.offset);
   }
 
   test_directives_remove() {
@@ -1350,8 +1355,10 @@
 class A {}
 ''');
     int expectedPrefixOffset = 23;
-    expect(import1.prefix.staticElement.nameOffset, expectedPrefixOffset);
-    expect(import2.prefix.staticElement.nameOffset, expectedPrefixOffset);
+    expect(resolutionMap.staticElementForIdentifier(import1.prefix).nameOffset,
+        expectedPrefixOffset);
+    expect(resolutionMap.staticElementForIdentifier(import2.prefix).nameOffset,
+        expectedPrefixOffset);
     expect(importElement1.prefix.nameOffset, expectedPrefixOffset);
     expect(importElement2.prefix.nameOffset, expectedPrefixOffset);
   }
@@ -1528,7 +1535,11 @@
       {
         var docReferences = newNode.documentationComment.references;
         expect(docReferences, hasLength(2));
-        expect(docReferences[0].identifier.staticElement.name, 'double');
+        expect(
+            resolutionMap
+                .staticElementForIdentifier(docReferences[0].identifier)
+                .name,
+            'double');
         expect(docReferences[1].identifier.staticElement,
             same(newNodes[2].element));
       }
@@ -1549,7 +1560,11 @@
       {
         var docReferences = newNode.documentationComment.references;
         expect(docReferences, hasLength(1));
-        expect(docReferences[0].identifier.staticElement.name, 'bool');
+        expect(
+            resolutionMap
+                .staticElementForIdentifier(docReferences[0].identifier)
+                .name,
+            'bool');
       }
     }
     {
@@ -1568,7 +1583,11 @@
       {
         var docReferences = newNode.documentationComment.references;
         expect(docReferences, hasLength(1));
-        expect(docReferences[0].identifier.staticElement.name, 'int');
+        expect(
+            resolutionMap
+                .staticElementForIdentifier(docReferences[0].identifier)
+                .name,
+            'int');
       }
     }
     // verify delta
@@ -2206,8 +2225,9 @@
       AstNode parent = actual.parent;
       if (parent is Declaration) {
         ElementAnnotationImpl actualElement = actual.elementAnnotation;
-        CompilationUnitElement enclosingUnitElement =
-            parent.element.getAncestor((a) => a is CompilationUnitElement);
+        CompilationUnitElement enclosingUnitElement = resolutionMap
+            .elementDeclaredByDeclaration(parent)
+            .getAncestor((a) => a is CompilationUnitElement);
         expect(actualElement.compilationUnit, same(enclosingUnitElement));
       }
     }
diff --git a/pkg/analyzer/test/src/task/options_test.dart b/pkg/analyzer/test/src/task/options_test.dart
index b8f717a..5b1e2e8 100644
--- a/pkg/analyzer/test/src/task/options_test.dart
+++ b/pkg/analyzer/test/src/task/options_test.dart
@@ -12,6 +12,7 @@
 import 'package:analyzer/src/task/options.dart';
 import 'package:analyzer/task/general.dart';
 import 'package:analyzer/task/model.dart';
+import 'package:linter/src/rules.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 import 'package:yaml/yaml.dart';
@@ -38,7 +39,7 @@
   AnalysisOptions get analysisOptions => context.analysisOptions;
 
   configureContext(String optionsSource) =>
-      configureContextOptions(context, parseOptions(optionsSource));
+      applyToAnalysisOptions(analysisOptions, parseOptions(optionsSource));
 
   Map<String, YamlNode> parseOptions(String source) =>
       optionsProvider.getOptionsFromString(source);
@@ -87,7 +88,7 @@
     unused_local_variable: error
 ''');
 
-    List<ErrorProcessor> processors = context.analysisOptions.errorProcessors;
+    List<ErrorProcessor> processors = analysisOptions.errorProcessors;
     expect(processors, hasLength(2));
 
     var unused_local = new AnalysisError(
@@ -118,7 +119,7 @@
     - 'test/**'
 ''');
 
-    List<String> excludes = context.analysisOptions.excludePatterns;
+    List<String> excludes = analysisOptions.excludePatterns;
     expect(excludes, unorderedEquals(['foo/bar.dart', 'test/**']));
   }
 
@@ -443,6 +444,7 @@
   }
 
   test_linter_supported_rules() {
+    registerLintRules();
     validate(
         '''
 linter:
diff --git a/pkg/analyzer/test/src/task/strong/strong_test_helper.dart b/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
index 2b8314d..c2debb8 100644
--- a/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
+++ b/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
@@ -7,6 +7,7 @@
 library analyzer.test.src.task.strong.strong_test_helper;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
@@ -87,7 +88,8 @@
 
   // Extract expectations from the comments in the test files, and
   // check that all errors we emit are included in the expected map.
-  var allLibraries = _reachableLibraries(initialLibrary.element.library);
+  var allLibraries = _reachableLibraries(
+      resolutionMap.elementDeclaredByCompilationUnit(initialLibrary).library);
   for (var lib in allLibraries) {
     for (var unit in lib.units) {
       var errors = <AnalysisError>[];
@@ -173,7 +175,9 @@
 
 ErrorSeverity _errorSeverity(AnalysisContext context, AnalysisError error) {
   // Attempt to process severity in a similar way to analyzer_cli and server.
-  return ErrorProcessor.getProcessor(context, error)?.severity ??
+  return ErrorProcessor
+          .getProcessor(context.analysisOptions, error)
+          ?.severity ??
       error.errorCode.errorSeverity;
 }
 
@@ -283,13 +287,14 @@
     Map<_ErrorExpectation, AnalysisError> different) {
   // Get the source code. This reads the data again, but it's safe because
   // all tests use memory file system.
-  var sourceCode = unit.element.source.contents.data;
+  var sourceCode =
+      resolutionMap.elementDeclaredByCompilationUnit(unit).source.contents.data;
 
   String formatActualError(AnalysisError error) {
     int offset = error.offset;
     int length = error.length;
-    var span = _createSpanHelper(
-        unit.lineInfo, offset, unit.element.source, sourceCode,
+    var span = _createSpanHelper(unit.lineInfo, offset,
+        resolutionMap.elementDeclaredByCompilationUnit(unit).source, sourceCode,
         end: offset + length);
     var levelName = _errorSeverity(context, error).displayName;
     return '@$offset $levelName:${_errorCodeName(error.errorCode)}\n' +
@@ -299,7 +304,10 @@
   String formatExpectedError(_ErrorExpectation error) {
     int offset = error.offset;
     var span = _createSpanHelper(
-        unit.lineInfo, offset, unit.element.source, sourceCode);
+        unit.lineInfo,
+        offset,
+        resolutionMap.elementDeclaredByCompilationUnit(unit).source,
+        sourceCode);
     var severity = error.severity.displayName;
     return '@$offset $severity:${error.typeName}\n' + span.message('');
   }
diff --git a/pkg/analyzer/test/src/test_all.dart b/pkg/analyzer/test/src/test_all.dart
index 8f727da..6287bed 100644
--- a/pkg/analyzer/test/src/test_all.dart
+++ b/pkg/analyzer/test/src/test_all.dart
@@ -9,7 +9,7 @@
 import 'command_line/test_all.dart' as command_line;
 import 'context/test_all.dart' as context;
 import 'dart/test_all.dart' as dart;
-import 'plugin/plugin_config_test.dart' as plugin;
+import 'lint/test_all.dart' as lint;
 import 'source/test_all.dart' as source;
 import 'summary/test_all.dart' as summary;
 import 'task/test_all.dart' as task;
@@ -21,7 +21,7 @@
     command_line.main();
     context.main();
     dart.main();
-    plugin.main();
+    lint.main();
     source.main();
     summary.main();
     task.main();
diff --git a/pkg/analyzer/test/utils.dart b/pkg/analyzer/test/utils.dart
index be7e64d..5bd96ff 100644
--- a/pkg/analyzer/test/utils.dart
+++ b/pkg/analyzer/test/utils.dart
@@ -5,9 +5,11 @@
 library analyzer.test.utils;
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/generated/resolver.dart' show TypeProvider;
+import 'package:front_end/src/base/source.dart';
 import 'package:test/test.dart';
 
 /**
@@ -45,7 +47,8 @@
         return unitMember;
       }
     }
-    fail('No class named $className in ${unit.element.source}');
+    Source source = resolutionMap.elementDeclaredByCompilationUnit(unit).source;
+    fail('No class named $className in $source');
     return null;
   }
 
diff --git a/pkg/analyzer_cli/BUILD.gn b/pkg/analyzer_cli/BUILD.gn
index 69993f0..76daaf8 100644
--- a/pkg/analyzer_cli/BUILD.gn
+++ b/pkg/analyzer_cli/BUILD.gn
@@ -11,10 +11,10 @@
 
   deps = [
     "//dart/pkg/analyzer",
+    "//dart/third_party/pkg/linter",
     "//third_party/dart-pkg/pub/args",
     "//third_party/dart-pkg/pub/bazel_worker",
     "//third_party/dart-pkg/pub/cli_util",
-    "//third_party/dart-pkg/pub/linter",
     "//third_party/dart-pkg/pub/package_config",
     "//third_party/dart-pkg/pub/plugin",
     "//third_party/dart-pkg/pub/protobuf",
diff --git a/pkg/analyzer_cli/lib/src/analyzer_impl.dart b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
index 14b61b8..f33706c 100644
--- a/pkg/analyzer_cli/lib/src/analyzer_impl.dart
+++ b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
@@ -257,7 +257,8 @@
       AnalysisError error, CommandLineOptions options,
       [AnalysisContext context]) {
     if (context != null) {
-      ErrorProcessor processor = ErrorProcessor.getProcessor(context, error);
+      ErrorProcessor processor =
+          ErrorProcessor.getProcessor(context.analysisOptions, error);
       // If there is a processor for this error, defer to it.
       if (processor != null) {
         return processor.severity;
diff --git a/pkg/analyzer_cli/lib/src/boot_loader.dart b/pkg/analyzer_cli/lib/src/boot_loader.dart
deleted file mode 100644
index 5b03f40..0000000
--- a/pkg/analyzer_cli/lib/src/boot_loader.dart
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer_cli.src.boot_loader;
-
-import 'dart:async';
-import 'dart:isolate';
-
-import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/file_system/physical_file_system.dart';
-import 'package:analyzer/source/analysis_options_provider.dart';
-import 'package:analyzer/src/context/context.dart';
-import 'package:analyzer/src/generated/engine.dart' as engine;
-import 'package:analyzer/src/plugin/plugin_configuration.dart';
-import 'package:analyzer_cli/src/driver.dart';
-import 'package:analyzer_cli/src/options.dart';
-import 'package:source_span/source_span.dart';
-import 'package:yaml/src/yaml_node.dart';
-
-const _analyzerPackageName = 'analyzer';
-
-/// Return non-null if there is a validation issue with this plugin.
-String validate(PluginInfo plugin) {
-  var missing = <String>[];
-  if (plugin.className == null) {
-    missing.add('class name');
-  }
-  if (plugin.libraryUri == null) {
-    missing.add('library uri');
-  }
-  if (missing.isEmpty) {
-    // All good.
-    return null;
-  }
-  return 'Plugin ${plugin.name} skipped, config missing: ${missing.join(", ")}';
-}
-
-List<PluginInfo> _validate(Iterable<PluginInfo> plugins) {
-  List<PluginInfo> validated = <PluginInfo>[];
-  plugins.forEach((PluginInfo plugin) {
-    String validation = validate(plugin);
-    if (validation != null) {
-      errorSink.writeln(validation);
-    } else {
-      validated.add(plugin);
-    }
-  });
-  return validated;
-}
-
-/// Source code assembler.
-class Assembler {
-  /// Plugins to configure.
-  final Iterable<PluginInfo> plugins;
-
-  /// Create an assembler for the given plugin [config].
-  Assembler(this.plugins);
-
-  /// A string enumerating required package `import`s.
-  String get enumerateImports =>
-      plugins.map((PluginInfo p) => "import '${p.libraryUri}';").join('\n');
-
-  /// A string listing initialized plugin instances.
-  String get pluginList =>
-      plugins.map((PluginInfo p) => 'new ${p.className}()').join(', ');
-
-  /// Create a file containing a `main()` suitable for loading in spawned
-  /// isolate.
-  String createMain() => _generateMain();
-
-  String _generateMain() => """
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// This code was auto-generated, is not intended to be edited, and is subject to
-// significant change. Please see the README file for more information.
-
-import 'package:analyzer_cli/src/driver.dart';
-
-$enumerateImports
-
-void main(List<String> args) {
-  var starter = new Driver();
-  starter.userDefinedPlugins = [$pluginList];
-  starter.start(args);
-}
-""";
-}
-
-/// Given environment information extracted from command-line `args`, creates a
-/// a loadable analyzer "image".
-class BootLoader {
-  /// Emits an error message to [errorSink] if plugin config can't be read.
-  static final ErrorHandler _pluginConfigErrorHandler = (Exception e) {
-    String details;
-    if (e is PluginConfigFormatException) {
-      details = e.message;
-      var node = e.yamlNode;
-      if (node is YamlNode) {
-        SourceLocation location = node.span.start;
-        details += ' (line ${location.line}, column ${location.column})';
-      }
-    } else {
-      details = e.toString();
-    }
-
-    errorSink.writeln('Plugin configuration skipped: $details');
-  };
-
-  /// Reads plugin config info from the analysis options file.
-  PluginConfigOptionsProcessor _pluginOptionsProcessor =
-      new PluginConfigOptionsProcessor(_pluginConfigErrorHandler);
-
-  /// Create a loadable analyzer image configured with plugins derived from
-  /// the given analyzer command-line `args`.
-  Image createImage(List<String> args) {
-    // Parse commandline options.
-    CommandLineOptions options = CommandLineOptions.parse(args);
-
-    // Process analysis options file (and notify all interested parties).
-    _processAnalysisOptions(options);
-
-    // TODO(pquitslund): Pass in .packages info
-    return new Image(_pluginOptionsProcessor.config,
-        args: args, packageRootPath: options.packageRootPath);
-  }
-
-  File _getOptionsFile(
-      CommandLineOptions options, ResourceProvider resourceProvider) {
-    String analysisOptionsFile = options.analysisOptionsFile;
-    if (analysisOptionsFile != null) {
-      return resourceProvider.getFile(analysisOptionsFile);
-    }
-    File file =
-        resourceProvider.getFile(engine.AnalysisEngine.ANALYSIS_OPTIONS_FILE);
-    if (!file.exists) {
-      file = resourceProvider
-          .getFile(engine.AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
-    }
-    return file;
-  }
-
-  void _processAnalysisOptions(CommandLineOptions commandLineOptions) {
-    // Determine options file path.
-    try {
-      File file = _getOptionsFile(
-          commandLineOptions, PhysicalResourceProvider.INSTANCE);
-      AnalysisOptionsProvider analysisOptionsProvider =
-          new AnalysisOptionsProvider();
-      Map<String, YamlNode> options =
-          analysisOptionsProvider.getOptionsFromFile(file);
-      //TODO(pq): thread in proper context.
-      var temporaryContext = new AnalysisContextImpl();
-      _pluginOptionsProcessor.optionsProcessed(temporaryContext, options);
-    } on Exception catch (e) {
-      _pluginOptionsProcessor.onError(e);
-    }
-  }
-}
-
-/// A loadable "image" of a a configured analyzer instance.
-class Image {
-  /// (Optional) package root path.
-  final String packageRootPath;
-
-  /// (Optional) package map.
-  final Map<String, Uri> packages;
-
-  /// (Optional) args to be passed on to the loaded main.
-  final List<String> args;
-
-  /// Plugin configuration.
-  final PluginConfig config;
-
-  /// Create an image with the given [config] and optionally [packages],
-  /// [packageRootPath], and command line [args].
-  Image(this.config, {this.packages, this.packageRootPath, this.args});
-
-  /// Load this image.
-  ///
-  /// Loading an image consists in assembling an analyzer `main()`, configured
-  /// to include the appropriate analyzer plugins as specified in
-  /// `.analyzer_options` which is then run in a spawned isolate.
-  Future load() {
-    List<PluginInfo> plugins = _validate(config.plugins);
-    String mainSource = new Assembler(plugins).createMain();
-
-    Completer completer = new Completer();
-    ReceivePort exitListener = new ReceivePort();
-    exitListener.listen((data) {
-      completer.complete();
-      exitListener.close();
-    });
-
-    Uri uri =
-        Uri.parse('data:application/dart;charset=utf-8,${Uri.encodeComponent(
-        mainSource)}');
-
-    // TODO(pquitslund): update once .packages are supported.
-    String packageRoot =
-        packageRootPath != null ? packageRootPath : './packages';
-    Uri packageUri = new Uri.file(packageRoot);
-
-    Isolate.spawnUri(uri, args, null /* msg */,
-        packageRoot: packageUri, onExit: exitListener.sendPort);
-
-    return completer.future;
-  }
-}
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index 35caf04..c9c59b6 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -12,7 +12,6 @@
 import 'package:analyzer/file_system/file_system.dart' as file_system;
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
-import 'package:analyzer/plugin/options.dart';
 import 'package:analyzer/plugin/resolver_provider.dart';
 import 'package:analyzer/source/analysis_options_provider.dart';
 import 'package:analyzer/source/package_map_provider.dart';
@@ -30,6 +29,7 @@
 import 'package:analyzer/src/generated/source_io.dart';
 import 'package:analyzer/src/generated/utilities_general.dart'
     show PerformanceTag;
+import 'package:analyzer/src/lint/registry.dart';
 import 'package:analyzer/src/services/lint.dart';
 import 'package:analyzer/src/source/source_resource.dart';
 import 'package:analyzer/src/summary/package_bundle_reader.dart';
@@ -41,7 +41,7 @@
 import 'package:analyzer_cli/src/options.dart';
 import 'package:analyzer_cli/src/perf_report.dart';
 import 'package:analyzer_cli/starter.dart';
-import 'package:linter/src/plugin/linter_plugin.dart';
+import 'package:linter/src/rules.dart' as linter;
 import 'package:package_config/discovery.dart' as pkg_discovery;
 import 'package:package_config/packages.dart' show Packages;
 import 'package:package_config/packages_file.dart' as pkgfile show parse;
@@ -616,13 +616,12 @@
   void _processPlugins() {
     List<Plugin> plugins = <Plugin>[];
     plugins.addAll(AnalysisEngine.instance.requiredPlugins);
-    plugins.add(AnalysisEngine.instance.commandLinePlugin);
-    plugins.add(AnalysisEngine.instance.optionsPlugin);
-    plugins.add(linterPlugin);
     plugins.addAll(_userDefinedPlugins);
 
     ExtensionManager manager = new ExtensionManager();
     manager.processPlugins(plugins);
+
+    linter.registerLintRules();
   }
 
   /// Analyze a single source.
@@ -767,29 +766,21 @@
       AnalysisContext context,
       CommandLineOptions options) {
     file_system.File file = _getOptionsFile(resourceProvider, options);
-    List<OptionsProcessor> optionsProcessors =
-        AnalysisEngine.instance.optionsPlugin.optionsProcessors;
 
-    try {
-      AnalysisOptionsProvider analysisOptionsProvider =
-          new AnalysisOptionsProvider(sourceFactory);
-      Map<String, YamlNode> optionMap =
-          analysisOptionsProvider.getOptionsFromFile(file);
-      optionsProcessors.forEach(
-          (OptionsProcessor p) => p.optionsProcessed(context, optionMap));
+    AnalysisOptionsProvider analysisOptionsProvider =
+        new AnalysisOptionsProvider(sourceFactory);
+    Map<String, YamlNode> optionMap =
+        analysisOptionsProvider.getOptionsFromFile(file);
 
-      // Fill in lint rule defaults in case lints are enabled and rules are
-      // not specified in an options file.
-      if (options.lints && !containsLintRuleEntry(optionMap)) {
-        setLints(context, linterPlugin.contributedRules);
-      }
+    // Fill in lint rule defaults in case lints are enabled and rules are
+    // not specified in an options file.
+    if (options.lints && !containsLintRuleEntry(optionMap)) {
+      setLints(context, Registry.ruleRegistry.defaultRules);
+    }
 
-      // Ask engine to further process options.
-      if (optionMap != null) {
-        configureContextOptions(context, optionMap);
-      }
-    } on Exception catch (e) {
-      optionsProcessors.forEach((OptionsProcessor p) => p.onError(e));
+    // Ask engine to further process options.
+    if (optionMap != null) {
+      applyToAnalysisOptions(context.analysisOptions, optionMap);
     }
   }
 }
diff --git a/pkg/analyzer_cli/lib/src/plugin/plugin_manager.dart b/pkg/analyzer_cli/lib/src/plugin/plugin_manager.dart
deleted file mode 100644
index 7c819fd..0000000
--- a/pkg/analyzer_cli/lib/src/plugin/plugin_manager.dart
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer_cli.src.plugin.plugin_manager;
-
-import 'dart:io';
-
-import 'package:analyzer/src/plugin/plugin_configuration.dart';
-import 'package:path/path.dart' as path;
-
-const _manifestFileName = 'plugins.yaml';
-
-/// Given a local configuration (as defined in an analysis options file) and
-/// information from a plugin manifest, return plugin info appropriate for
-/// configuring this plugin.
-PluginInfo combine(PluginInfo localConfig, PluginInfo manifestInfo) {
-  return new PluginInfo(
-      name: localConfig.name,
-      version: manifestInfo.version,
-      className: manifestInfo.className,
-      libraryUri: manifestInfo.libraryUri);
-}
-
-/// Call-back to allow for the injection of manifest readers that do not need
-/// to go to disk (for testing purposes).
-typedef String ManifestReader(Uri uri);
-
-/// Wraps a [plugin] info object elaborated with any configuration information
-/// extracted from an associated manifest and [status].
-class PluginDetails {
-  /// Plugin status.
-  final PluginStatus status;
-
-  /// Plugin info.
-  final PluginInfo plugin;
-
-  /// Wrap a [plugin] with [status] info.
-  PluginDetails(this.plugin) : status = PluginStatus.Applicable;
-  PluginDetails.notApplicable(this.plugin)
-      : status = PluginStatus.NotApplicable;
-  PluginDetails.notFound(this.plugin) : status = PluginStatus.NotFound;
-}
-
-/// Manages plugin information derived from plugin manifests.
-class PluginManager {
-  /// Mapping from package name to package location.
-  final Map<String, Uri> _packageMap;
-
-  /// The package naming the app to host plugins.
-  final String hostPackage;
-
-  /// Function to perform the reading of manifest URIs. (For testing.)
-  ManifestReader _manifestReader;
-
-  /// Create a plugin manager with backing package map information.
-  PluginManager(this._packageMap, this.hostPackage,
-      [ManifestReader manifestReader]) {
-    _manifestReader =
-        manifestReader != null ? manifestReader : _findAndReadManifestAtUri;
-  }
-
-  /// Find a plugin manifest describing the given [pluginPackage].
-  PluginManifest findManifest(String pluginPackage) {
-    Uri uri = _packageMap[pluginPackage];
-    String contents = _manifestReader(uri);
-    if (contents == null) {
-      return null;
-    }
-    return parsePluginManifestString(contents);
-  }
-
-  /// Return [PluginDetails] derived from associated plugin manifests
-  /// corresponding to plugins specified in the given [config].
-  Iterable<PluginDetails> getPluginDetails(PluginConfig config) =>
-      config.plugins.map((PluginInfo localConfig) {
-        PluginManifest manifest = findManifest(localConfig.name);
-        return _getDetails(localConfig, manifest);
-      });
-
-  String _findAndReadManifestAtUri(Uri uri) {
-    File manifestFile = _findManifest(uri);
-    return manifestFile?.readAsStringSync();
-  }
-
-  File _findManifest(Uri uri) {
-    if (uri == null) {
-      return null;
-    }
-
-    Directory directory = new Directory.fromUri(uri);
-    File file = new File(path.join(directory.path, _manifestFileName));
-
-    return file.existsSync() ? file : null;
-  }
-
-  PluginDetails _getDetails(PluginInfo localConfig, PluginManifest manifest) {
-    if (manifest == null) {
-      return new PluginDetails.notFound(localConfig);
-    }
-    if (!manifest.contributesTo.contains(hostPackage)) {
-      return new PluginDetails.notApplicable(localConfig);
-    }
-
-    return new PluginDetails(combine(localConfig, manifest.plugin));
-  }
-}
-
-/// Describes plugin status.
-enum PluginStatus { Applicable, NotApplicable, NotFound }
diff --git a/pkg/analyzer_cli/test/all.dart b/pkg/analyzer_cli/test/all.dart
index 5764922..86d6d75 100644
--- a/pkg/analyzer_cli/test/all.dart
+++ b/pkg/analyzer_cli/test/all.dart
@@ -2,7 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'boot_loader_test.dart' as boot_loader;
 import 'build_mode_test.dart' as build_mode_test;
 import 'driver_test.dart' as driver;
 import 'embedder_test.dart' as embedder;
@@ -10,14 +9,12 @@
 import 'options_test.dart' as options;
 import 'package_prefix_test.dart' as package_prefix;
 import 'perf_report_test.dart' as perf;
-import 'plugin_manager_test.dart' as plugin_manager;
 import 'reporter_test.dart' as reporter;
 import 'sdk_ext_test.dart' as sdk_ext;
 import 'super_mixin_test.dart' as super_mixin;
 //import 'strong_mode_test.dart' as strong_mode;
 
 main() {
-  boot_loader.main();
   build_mode_test.main();
   driver.main();
   embedder.main();
@@ -28,7 +25,6 @@
   error.main();
   options.main();
   perf.main();
-  plugin_manager.main();
   reporter.main();
   super_mixin.main();
   package_prefix.main();
diff --git a/pkg/analyzer_cli/test/boot_loader_test.dart b/pkg/analyzer_cli/test/boot_loader_test.dart
deleted file mode 100644
index 30223fb..0000000
--- a/pkg/analyzer_cli/test/boot_loader_test.dart
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer_cli.test.boot_loader_test;
-
-import 'dart:io';
-
-import 'package:analyzer/src/plugin/plugin_configuration.dart';
-import 'package:analyzer_cli/src/boot_loader.dart';
-import 'package:analyzer_cli/src/driver.dart';
-import 'package:analyzer_cli/src/options.dart';
-import 'package:path/path.dart' as path;
-import 'package:test/test.dart';
-
-import 'utils.dart';
-
-main() {
-  StringSink savedOutSink, savedErrorSink;
-  int savedExitCode;
-  ExitHandler savedExitHandler;
-
-  /// Base setup.
-  _setUp() {
-    savedOutSink = outSink;
-    savedErrorSink = errorSink;
-    savedExitHandler = exitHandler;
-    savedExitCode = exitCode;
-    exitHandler = (code) => exitCode = code;
-    outSink = new StringBuffer();
-    errorSink = new StringBuffer();
-  }
-
-  /// Base teardown.
-  _tearDown() {
-    outSink = savedOutSink;
-    errorSink = savedErrorSink;
-    exitCode = savedExitCode;
-    exitHandler = savedExitHandler;
-  }
-
-  setUp(() => _setUp());
-
-  tearDown(() => _tearDown());
-
-  group('Bootloader', () {
-    group('plugin processing', () {
-      test('bad format', () {
-        BootLoader loader = new BootLoader();
-        loader.createImage([
-          '--options',
-          path.join(testDirectory, 'data/bad_plugin_options.yaml'),
-          path.join(testDirectory, 'data/test_file.dart')
-        ]);
-        expect(
-            errorSink.toString(),
-            'Plugin configuration skipped: Unrecognized plugin config '
-            'format, expected `YamlMap`, got `YamlList` '
-            '(line 2, column 4)\n');
-      });
-      test('plugin config', () {
-        BootLoader loader = new BootLoader();
-        Image image = loader.createImage([
-          '--options',
-          path.join(testDirectory, 'data/plugin_options.yaml'),
-          path.join(testDirectory, 'data/test_file.dart')
-        ]);
-        var plugins = image.config.plugins;
-        expect(plugins, hasLength(1));
-        expect(plugins.first.name, 'my_plugin1');
-      });
-      group('plugin validation', () {
-        test('requires class name', () {
-          expect(
-              validate(new PluginInfo(
-                  name: 'test_plugin', libraryUri: 'my_package/foo.dart')),
-              isNotNull);
-        });
-        test('requires library URI', () {
-          expect(
-              validate(
-                  new PluginInfo(name: 'test_plugin', className: 'MyPlugin')),
-              isNotNull);
-        });
-        test('check', () {
-          expect(
-              validate(new PluginInfo(
-                  name: 'test_plugin',
-                  className: 'MyPlugin',
-                  libraryUri: 'my_package/foo.dart')),
-              isNull);
-        });
-      });
-    });
-  });
-}
diff --git a/pkg/analyzer_cli/test/driver_test.dart b/pkg/analyzer_cli/test/driver_test.dart
index f582e59..0c18639 100644
--- a/pkg/analyzer_cli/test/driver_test.dart
+++ b/pkg/analyzer_cli/test/driver_test.dart
@@ -7,7 +7,6 @@
 import 'dart:io';
 
 import 'package:analyzer/error/error.dart';
-import 'package:analyzer/plugin/options.dart';
 import 'package:analyzer/source/analysis_options_provider.dart';
 import 'package:analyzer/source/error_processor.dart';
 import 'package:analyzer/src/error/codes.dart';
@@ -17,7 +16,6 @@
 import 'package:analyzer_cli/src/driver.dart';
 import 'package:analyzer_cli/src/options.dart';
 import 'package:path/path.dart' as path;
-import 'package:plugin/plugin.dart';
 import 'package:test/test.dart';
 import 'package:yaml/src/yaml_node.dart';
 
@@ -53,18 +51,6 @@
 
   group('Driver', () {
     group('options', () {
-      test('custom processor', () {
-        Driver driver = new Driver();
-        TestProcessor processor = new TestProcessor();
-        driver.userDefinedPlugins = [new TestPlugin(processor)];
-        driver.start([
-          '--options',
-          path.join(testDirectory, 'data/test_options.yaml'),
-          path.join(testDirectory, 'data/test_file.dart')
-        ]);
-        expect(processor.options['test_plugin'], isNotNull);
-        expect(processor.exception, isNull);
-      });
       test('todos', () {
         drive('data/file_with_todo.dart');
         expect(outSink.toString().contains('[info]'), isFalse);
@@ -521,39 +507,6 @@
 ErrorProcessor processorFor(AnalysisError error) =>
     processors.firstWhere((p) => p.appliesTo(error));
 
-class TestPlugin extends Plugin {
-  TestProcessor processor;
-  TestPlugin(this.processor);
-
-  @override
-  String get uniqueIdentifier => 'test_plugin.core';
-
-  @override
-  void registerExtensionPoints(RegisterExtensionPoint register) {
-    // None
-  }
-
-  @override
-  void registerExtensions(RegisterExtension register) {
-    register(OPTIONS_PROCESSOR_EXTENSION_POINT_ID, processor);
-  }
-}
-
-class TestProcessor extends OptionsProcessor {
-  Map<String, Object> options;
-  Exception exception;
-
-  @override
-  void onError(Exception exception) {
-    this.exception = exception;
-  }
-
-  @override
-  void optionsProcessed(AnalysisContext context, Map<String, Object> options) {
-    this.options = options;
-  }
-}
-
 class TestSource implements Source {
   TestSource();
 
diff --git a/pkg/analyzer_cli/test/plugin_manager_test.dart b/pkg/analyzer_cli/test/plugin_manager_test.dart
deleted file mode 100644
index e257300..0000000
--- a/pkg/analyzer_cli/test/plugin_manager_test.dart
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library analyzer_cli.test.plugin_manager_test;
-
-import 'package:analyzer/src/plugin/plugin_configuration.dart';
-import 'package:analyzer_cli/src/plugin/plugin_manager.dart';
-import 'package:test/test.dart';
-
-main() {
-  group('plugin manager tests', () {
-    test('combine plugin info', () {
-      PluginInfo localInfo = new PluginInfo(name: 'my_plugin');
-      PluginInfo manifestInfo = new PluginInfo(
-          className: 'MyPlugin', libraryUri: 'my_plugin/my_plugin.dart');
-
-      PluginInfo merged = combine(localInfo, manifestInfo);
-      expect(merged.name, equals('my_plugin'));
-      expect(merged.className, equals('MyPlugin'));
-      expect(merged.libraryUri, equals('my_plugin/my_plugin.dart'));
-    });
-
-    test('find manifest', () {
-      const manifestSrc = '''
-library_uri: 'my_plugin/my_plugin.dart'
-''';
-      var packageMap = {'my_plugin': new Uri.file('my_plugin')};
-
-      PluginManager pm =
-          new PluginManager(packageMap, 'analyzer', (Uri uri) => manifestSrc);
-
-      PluginManifest manifest = pm.findManifest('my_plugin');
-      expect(manifest, isNotNull);
-      expect(manifest.plugin.libraryUri, equals('my_plugin/my_plugin.dart'));
-    });
-
-    final plugin1Uri = new Uri.file('my_plugin1');
-    final plugin2Uri = new Uri.file('my_plugin2');
-    final plugin3Uri = new Uri.file('my_plugin3');
-
-    const serverPluginManifest = '''
-library_uri: 'my_plugin2/my_plugin2.dart'
-contributes_to: analysis_server
-''';
-    const analyzerPluginManifest = '''
-library_uri: 'my_plugin3/my_plugin3.dart'
-contributes_to: analyzer
-''';
-
-    var packageMap = {
-      'my_plugin': plugin1Uri,
-      'my_plugin2': plugin2Uri,
-      'my_plugin3': plugin3Uri
-    };
-
-    var manifestReader = (Uri uri) {
-      if (uri == plugin2Uri) return serverPluginManifest;
-      if (uri == plugin3Uri) return analyzerPluginManifest;
-      return null;
-    };
-
-    test('get plugin details', () {
-      PluginManager pm =
-          new PluginManager(packageMap, 'analysis_server', manifestReader);
-
-      PluginInfo notFound = new PluginInfo(name: 'my_plugin1');
-      PluginInfo applicable = new PluginInfo(name: 'my_plugin2');
-      PluginInfo notApplicable = new PluginInfo(name: 'my_plugin3');
-
-      PluginConfig localConfig =
-          new PluginConfig([notFound, applicable, notApplicable]);
-
-      Iterable<PluginDetails> details = pm.getPluginDetails(localConfig);
-      expect(details, hasLength(3));
-
-      List<PluginDetails> plugins = sortByName(details);
-
-      expect(plugins[0].plugin.name, equals('my_plugin1'));
-      expect(plugins[0].status, equals(PluginStatus.NotFound));
-      expect(plugins[1].plugin.name, equals('my_plugin2'));
-      expect(
-          plugins[1].plugin.libraryUri, equals('my_plugin2/my_plugin2.dart'));
-      expect(plugins[1].status, equals(PluginStatus.Applicable));
-      expect(plugins[2].plugin.name, equals('my_plugin3'));
-      expect(plugins[2].status, equals(PluginStatus.NotApplicable));
-    });
-  });
-}
-
-List<PluginDetails> sortByName(Iterable<PluginDetails> details) =>
-    details.toList()
-      ..sort((p1, p2) => p1.plugin.name.compareTo(p2.plugin.name));
diff --git a/pkg/compiler/lib/src/closure.dart b/pkg/compiler/lib/src/closure.dart
index f9885ba..2d3c15e 100644
--- a/pkg/compiler/lib/src/closure.dart
+++ b/pkg/compiler/lib/src/closure.dart
@@ -20,6 +20,7 @@
 import 'tokens/token.dart' show Token;
 import 'tree/tree.dart';
 import 'util/util.dart';
+import 'world.dart' show ClosedWorldRefiner;
 
 class ClosureTask extends CompilerTask {
   Map<Element, ClosureClassMap> _closureMappingCache =
@@ -49,9 +50,11 @@
   }
 
   /// Create [ClosureClassMap]s for all live members.
-  void createClosureClasses() {
-    compiler.enqueuer.resolution.processedElements
+  void createClosureClasses(ClosedWorldRefiner closedWorldRefiner) {
+    compiler.enqueuer.resolution.processedEntities
         .forEach((AstElement element) {
+      // TODO(johnniwinther): Typedefs should never be in processedElements.
+      if (element.isTypedef) return;
       ResolvedAst resolvedAst = element.resolvedAst;
       if (element.isAbstract) return;
       if (element.isField &&
@@ -60,11 +63,12 @@
         // Skip top-level/static fields without an initializer.
         return;
       }
-      computeClosureToClassMapping(resolvedAst);
+      computeClosureToClassMapping(resolvedAst, closedWorldRefiner);
     });
   }
 
-  ClosureClassMap computeClosureToClassMapping(ResolvedAst resolvedAst) {
+  ClosureClassMap computeClosureToClassMapping(
+      ResolvedAst resolvedAst, ClosedWorldRefiner closedWorldRefiner) {
     return measure(() {
       Element element = resolvedAst.element;
       ClosureClassMap cached = _closureMappingCache[element];
@@ -77,8 +81,8 @@
         Node node = resolvedAst.node;
         TreeElements elements = resolvedAst.elements;
 
-        ClosureTranslator translator =
-            new ClosureTranslator(compiler, elements, _closureMappingCache);
+        ClosureTranslator translator = new ClosureTranslator(
+            compiler, closedWorldRefiner, elements, _closureMappingCache);
 
         // The translator will store the computed closure-mappings inside the
         // cache. One for given node and one for each nested closure.
@@ -121,7 +125,7 @@
       throw new SpannableAssertionFailure(
           closure, 'Not a closure: $closure (${closure.runtimeType}).');
     }
-    compiler.enqueuer.codegen.forgetElement(cls, compiler);
+    compiler.enqueuer.codegen.forgetEntity(cls, compiler);
   }
 }
 
@@ -543,6 +547,7 @@
 
 class ClosureTranslator extends Visitor {
   final Compiler compiler;
+  final ClosedWorldRefiner closedWorldRefiner;
   final TreeElements elements;
   int closureFieldCounter = 0;
   int boxedFieldCounter = 0;
@@ -574,7 +579,8 @@
 
   bool insideClosure = false;
 
-  ClosureTranslator(this.compiler, this.elements, this.closureMappingCache);
+  ClosureTranslator(this.compiler, this.closedWorldRefiner, this.elements,
+      this.closureMappingCache);
 
   DiagnosticReporter get reporter => compiler.reporter;
 
@@ -1068,7 +1074,7 @@
     ClosureClassElement globalizedElement =
         new ClosureClassElement(node, closureName, compiler, element);
     // Extend [globalizedElement] as an instantiated class in the closed world.
-    compiler.inferenceWorld.registerClosureClass(globalizedElement);
+    closedWorldRefiner.registerClosureClass(globalizedElement);
     FunctionElement callElement = new SynthesizedCallMethodElementX(
         Identifiers.call, element, globalizedElement, node, elements);
     backend.maybeMarkClosureAsNeededForReflection(
diff --git a/pkg/compiler/lib/src/common/backend_api.dart b/pkg/compiler/lib/src/common/backend_api.dart
index 089058c..5fef086 100644
--- a/pkg/compiler/lib/src/common/backend_api.dart
+++ b/pkg/compiler/lib/src/common/backend_api.dart
@@ -18,6 +18,7 @@
 import '../dart_types.dart' show DartType, InterfaceType;
 import '../elements/elements.dart'
     show ClassElement, Element, FunctionElement, MethodElement, LibraryElement;
+import '../elements/entities.dart';
 import '../enqueue.dart' show Enqueuer, EnqueueTask, ResolutionEnqueuer;
 import '../io/code_output.dart' show CodeBuffer;
 import '../io/source_information.dart' show SourceInformationStrategy;
@@ -32,6 +33,7 @@
 import '../tree/tree.dart' show Node;
 import '../universe/world_impact.dart'
     show ImpactStrategy, WorldImpact, WorldImpactBuilder;
+import '../world.dart' show ClosedWorldRefiner;
 import 'codegen.dart' show CodegenWorkItem;
 import 'tasks.dart' show CompilerTask;
 
@@ -105,7 +107,7 @@
 
   List<CompilerTask> get tasks;
 
-  void onResolutionComplete() {}
+  void onResolutionComplete(ClosedWorldRefiner closedWorldRefiner) {}
   void onTypeInferenceComplete() {}
 
   bool classNeedsRti(ClassElement cls);
@@ -172,13 +174,6 @@
   /// specific [WorldImpact] of this is returned.
   WorldImpact registerGetOfStaticFunction() => const WorldImpact();
 
-  /// Called to register that the `runtimeType` property has been accessed. Any
-  /// backend specific [WorldImpact] of this is returned.
-  WorldImpact registerRuntimeType() => const WorldImpact();
-
-  /// Called to register a `noSuchMethod` implementation.
-  void registerNoSuchMethod(FunctionElement noSuchMethodElement) {}
-
   /// Called to enable support for `noSuchMethod`. Any backend specific
   /// [WorldImpact] of this is returned.
   WorldImpact enableNoSuchMethod() => const WorldImpact();
@@ -222,7 +217,7 @@
 
   /// Called to register that [element] is statically known to be used. Any
   /// backend specific [WorldImpact] of this is returned.
-  WorldImpact registerStaticUse(Element element, {bool forResolution}) =>
+  WorldImpact registerUsedElement(Element element, {bool forResolution}) =>
       const WorldImpact();
 
   /// This method is called immediately after the [LibraryElement] [library] has
@@ -305,7 +300,7 @@
   /// There is no guarantee that a class is only present once in
   /// [recentClasses], but every class seen by the [enqueuer] will be present in
   /// [recentClasses] at least once.
-  bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassElement> recentClasses) {
+  bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
     return true;
   }
 
@@ -313,11 +308,9 @@
   /// times, but [onQueueClosed] is only called once.
   void onQueueClosed() {}
 
-  /// Called when the compiler starts running the codegen enqueuer.
-  void onCodegenStart() {}
-
-  /// Called after [element] has been resolved.
-  void onElementResolved(Element element) {}
+  /// Called when the compiler starts running the codegen enqueuer. The
+  /// [WorldImpact] of enabled backend features is returned.
+  WorldImpact onCodegenStart() => const WorldImpact();
 
   // Does this element belong in the output
   bool shouldOutput(Element element) => true;
@@ -405,6 +398,7 @@
   ClassElement get numImplementation;
   ClassElement get stringImplementation;
   ClassElement get listImplementation;
+  ClassElement get mutableListImplementation;
   ClassElement get growableListImplementation;
   ClassElement get fixedListImplementation;
   ClassElement get constListImplementation;
@@ -420,4 +414,8 @@
   ClassElement get syncStarIterableImplementation;
   ClassElement get asyncFutureImplementation;
   ClassElement get asyncStarStreamImplementation;
+  ClassElement get indexableImplementation;
+  ClassElement get mutableIndexableImplementation;
+
+  bool isDefaultEqualityImplementation(Element element);
 }
diff --git a/pkg/compiler/lib/src/common/names.dart b/pkg/compiler/lib/src/common/names.dart
index 06ef360..715d8cf 100644
--- a/pkg/compiler/lib/src/common/names.dart
+++ b/pkg/compiler/lib/src/common/names.dart
@@ -162,6 +162,9 @@
   /// The URI for 'dart:html'.
   static final Uri dart_html = new Uri(scheme: 'dart', path: 'html');
 
+  /// The URI for 'dart:isolate'.
+  static final Uri dart_isolate = new Uri(scheme: 'dart', path: 'isolate');
+
   /// The URI for 'dart:mirrors'.
   static final Uri dart_mirrors = new Uri(scheme: 'dart', path: 'mirrors');
 
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 16ef47d..82895d9 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -180,9 +180,6 @@
   MirrorUsageAnalyzerTask mirrorUsageAnalyzerTask;
   DumpInfoTask dumpInfoTask;
 
-  bool get hasFunctionApplySupport => resolverWorld.hasFunctionApplySupport;
-  bool get hasIsolateSupport => resolverWorld.hasIsolateSupport;
-
   bool get hasCrashed => _reporter.hasCrashed;
 
   Stopwatch progress;
@@ -282,13 +279,6 @@
     tasks.addAll(backend.tasks);
   }
 
-  /// The world currently being computed by resolution. This forms a basis for
-  /// the [inferenceWorld] and later the [closedWorld].
-  OpenWorld get openWorld => _world;
-
-  /// The closed world after resolution but currently refined by inference.
-  ClosedWorldRefiner get inferenceWorld => _world;
-
   /// The closed world after resolution and inference.
   ClosedWorld get closedWorld {
     assert(invariant(CURRENT_ELEMENT_SPANNABLE, _world.isClosed,
@@ -323,8 +313,7 @@
   ///
   /// Override this to mock the resolver for testing.
   ResolverTask createResolverTask() {
-    return new ResolverTask(
-        resolution, backend.constantCompilerTask, openWorld, measurer);
+    return new ResolverTask(resolution, backend.constantCompilerTask, measurer);
   }
 
   // TODO(johnniwinther): Rename these appropriately when unification of worlds/
@@ -732,10 +721,11 @@
         }
         assert(mainFunction != null);
 
-        closeResolution();
+        ClosedWorldRefiner closedWorldRefiner = closeResolution();
 
         reporter.log('Inferring types...');
-        globalInference.runGlobalTypeInference(mainFunction);
+        globalInference.runGlobalTypeInference(
+            mainFunction, closedWorld, closedWorldRefiner);
 
         if (stopAfterTypeInference) return;
 
@@ -744,11 +734,7 @@
         reporter.log('Compiling...');
         phase = PHASE_COMPILING;
 
-        backend.onCodegenStart();
-        if (hasIsolateSupport) {
-          enqueuer.codegen
-              .applyImpact(backend.enableIsolateSupport(forResolution: false));
-        }
+        enqueuer.codegen.applyImpact(backend.onCodegenStart());
         if (compileAll) {
           libraryLoader.libraries.forEach((LibraryElement library) {
             enqueuer.codegen.applyImpact(computeImpactForLibrary(library));
@@ -771,19 +757,20 @@
       });
 
   /// Perform the steps needed to fully end the resolution phase.
-  void closeResolution() {
+  ClosedWorldRefiner closeResolution() {
     phase = PHASE_DONE_RESOLVING;
 
-    openWorld.closeWorld(reporter);
+    WorldImpl world = resolverWorld.openWorld.closeWorld(reporter);
     // Compute whole-program-knowledge that the backend needs. (This might
     // require the information computed in [world.closeWorld].)
-    backend.onResolutionComplete();
+    backend.onResolutionComplete(world);
 
     deferredLoadTask.onResolutionComplete(mainFunction);
 
     // TODO(johnniwinther): Move this after rti computation but before
     // reflection members computation, and (re-)close the world afterwards.
-    closureToClassMapper.createClosureClasses();
+    closureToClassMapper.createClosureClasses(world);
+    return world;
   }
 
   /// Compute the [WorldImpact] for accessing all elements in [library].
@@ -908,7 +895,7 @@
       });
     }
     if (!REPORT_EXCESS_RESOLUTION) return;
-    var resolved = new Set.from(enqueuer.resolution.processedElements);
+    var resolved = new Set.from(enqueuer.resolution.processedEntities);
     for (Element e in enqueuer.codegen.processedEntities) {
       resolved.remove(e);
     }
@@ -939,7 +926,7 @@
       // TODO(ahe): Add structured diagnostics to the compiler API and
       // use it to separate this from the --verbose option.
       assert(phase == PHASE_RESOLVING);
-      reporter.log('Resolved ${enqueuer.resolution.processedElements.length} '
+      reporter.log('Resolved ${enqueuer.resolution.processedEntities.length} '
           'elements.');
       progress.reset();
     }
@@ -1113,7 +1100,7 @@
 
   void forgetElement(Element element) {
     resolution.forgetElement(element);
-    enqueuer.forgetElement(element);
+    enqueuer.forgetEntity(element);
     if (element is MemberElement) {
       for (Element closure in element.nestedClosures) {
         // TODO(ahe): It would be nice to reuse names of nested closures.
@@ -1983,7 +1970,7 @@
 
   @override
   void registerClass(ClassElement cls) {
-    _compiler.openWorld.registerClass(cls);
+    enqueuer.universe.openWorld.registerClass(cls);
   }
 
   @override
diff --git a/pkg/compiler/lib/src/deferred_load.dart b/pkg/compiler/lib/src/deferred_load.dart
index d2c8ddb..49e1668 100644
--- a/pkg/compiler/lib/src/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load.dart
@@ -420,7 +420,7 @@
       // If we see a class, add everything its live instance members refer
       // to.  Static members are not relevant, unless we are processing
       // extra dependencies due to mirrors.
-      void addLiveInstanceMember(Element element) {
+      void addLiveInstanceMember(_, Element element) {
         if (!compiler.enqueuer.resolution.hasBeenProcessed(element)) return;
         if (!isMirrorUsage && !element.isInstanceMember) return;
         elements.add(element);
@@ -428,11 +428,7 @@
       }
 
       ClassElement cls = element.declaration;
-      cls.forEachLocalMember(addLiveInstanceMember);
-      if (cls.implementation != cls) {
-        // TODO(ahe): Why doesn't ClassElement.forEachLocalMember do this?
-        cls.implementation.forEachLocalMember(addLiveInstanceMember);
-      }
+      cls.implementation.forEachMember(addLiveInstanceMember);
       for (var type in cls.implementation.allSupertypes) {
         elements.add(type.element.implementation);
       }
diff --git a/pkg/compiler/lib/src/dump_info.dart b/pkg/compiler/lib/src/dump_info.dart
index db6a13a..523186c 100644
--- a/pkg/compiler/lib/src/dump_info.dart
+++ b/pkg/compiler/lib/src/dump_info.dart
@@ -419,9 +419,11 @@
   }
 
   final Map<Element, Set<Element>> _dependencies = {};
-  void registerDependency(Element source, Element target) {
+  void registerDependency(Element target) {
     if (compiler.options.dumpInfo) {
-      _dependencies.putIfAbsent(source, () => new Set()).add(target);
+      _dependencies
+          .putIfAbsent(compiler.currentElement, () => new Set())
+          .add(target);
     }
   }
 
@@ -431,8 +433,8 @@
     }
   }
 
-  void unregisterImpact(Element element) {
-    impacts.remove(element);
+  void unregisterImpact(var impactSource) {
+    impacts.remove(impactSource);
   }
 
   /**
diff --git a/pkg/compiler/lib/src/elements/common.dart b/pkg/compiler/lib/src/elements/common.dart
index 6ab5de2..83eb3ea 100644
--- a/pkg/compiler/lib/src/elements/common.dart
+++ b/pkg/compiler/lib/src/elements/common.dart
@@ -601,7 +601,12 @@
   }
 }
 
-enum _FromEnvironmentState { NOT, BOOL, INT, STRING, }
+enum _FromEnvironmentState {
+  NOT,
+  BOOL,
+  INT,
+  STRING,
+}
 
 abstract class ConstructorElementCommon implements ConstructorElement {
   _FromEnvironmentState _fromEnvironmentState;
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index eb88a0b..30c5aef 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -14,7 +14,6 @@
 import 'common/work.dart' show WorkItem;
 import 'common.dart';
 import 'compiler.dart' show Compiler, GlobalDependencyRegistry;
-import 'core_types.dart' show CommonElements;
 import 'options.dart';
 import 'dart_types.dart' show DartType, InterfaceType;
 import 'elements/elements.dart'
@@ -25,8 +24,6 @@
         ConstructorElement,
         Element,
         Entity,
-        LibraryElement,
-        LocalFunctionElement,
         MemberElement;
 import 'elements/entities.dart';
 import 'native/native.dart' as native;
@@ -59,7 +56,6 @@
             : const TreeShakingEnqueuerStrategy(),
         compiler.globalDependencies,
         compiler.backend,
-        compiler.coreClasses,
         compiler.cacheStrategy);
     _codegen = compiler.backend.createCodegenEnqueuer(this, compiler);
   }
@@ -67,16 +63,16 @@
   ResolutionEnqueuer get resolution => _resolution;
   Enqueuer get codegen => _codegen;
 
-  void forgetElement(Element element) {
-    resolution.forgetElement(element, compiler);
-    codegen.forgetElement(element, compiler);
+  void forgetEntity(Entity entity) {
+    resolution.forgetEntity(entity, compiler);
+    codegen.forgetEntity(entity, compiler);
   }
 }
 
 abstract class Enqueuer {
   WorldBuilder get universe;
   native.NativeEnqueuer get nativeEnqueuer;
-  void forgetElement(Element element, Compiler compiler);
+  void forgetEntity(Entity entity, Compiler compiler);
 
   // TODO(johnniwinther): Initialize [_impactStrategy] to `null`.
   ImpactStrategy _impactStrategy = const ImpactStrategy();
@@ -107,22 +103,19 @@
   /// Apply the [worldImpact] to this enqueuer. If the [impactSource] is
   /// provided the impact strategy will remove it from the element impact cache,
   /// if it is no longer needed.
-  void applyImpact(WorldImpact worldImpact, {Element impactSource});
+  void applyImpact(WorldImpact worldImpact, {var impactSource});
   bool checkNoEnqueuedInvokedInstanceMethods();
   void logSummary(log(message));
 
-  /// Returns [:true:] if [member] has been processed by this enqueuer.
-  bool isProcessed(Element member);
-
   Iterable<Entity> get processedEntities;
 
-  Iterable<ClassElement> get processedClasses;
+  Iterable<ClassEntity> get processedClasses;
 }
 
 abstract class EnqueuerImpl extends Enqueuer {
   CompilerTask get task;
   EnqueuerStrategy get strategy;
-  void checkClass(ClassElement cls);
+  void checkClass(ClassEntity cls);
   void processStaticUse(StaticUse staticUse);
   void processTypeUse(TypeUse typeUse);
   void processDynamicUse(DynamicUse dynamicUse);
@@ -139,11 +132,10 @@
   final CompilerOptions _options;
   final Backend backend;
   final GlobalDependencyRegistry _globalDependencies;
-  final CommonElements _commonElements;
   final native.NativeEnqueuer nativeEnqueuer;
 
   final EnqueuerStrategy strategy;
-  Set<ClassElement> _recentClasses = new Setlet<ClassElement>();
+  final Set<ClassEntity> _recentClasses = new Setlet<ClassEntity>();
   final ResolutionWorldBuilderImpl _universe;
 
   bool queueIsClosed = false;
@@ -151,7 +143,7 @@
   WorldImpactVisitor _impactVisitor;
 
   /// All declaration elements that have been processed by the resolver.
-  final Set<AstElement> processedElements = new Set<AstElement>();
+  final Set<Entity> _processedElements = new Set<Entity>();
 
   final Queue<WorkItem> _queue = new Queue<WorkItem>();
 
@@ -166,7 +158,6 @@
       this.strategy,
       this._globalDependencies,
       Backend backend,
-      this._commonElements,
       CacheStrategy cacheStrategy,
       [this.name = 'resolution enqueuer'])
       : this.backend = backend,
@@ -185,9 +176,9 @@
 
   DiagnosticReporter get _reporter => _resolution.reporter;
 
-  Iterable<ClassElement> get processedClasses => _universe.processedClasses;
+  Iterable<ClassEntity> get processedClasses => _universe.processedClasses;
 
-  void applyImpact(WorldImpact worldImpact, {Element impactSource}) {
+  void applyImpact(WorldImpact worldImpact, {var impactSource}) {
     if (worldImpact.isEmpty) return;
     impactStrategy.visitImpact(
         impactSource, worldImpact, _impactVisitor, impactUse);
@@ -218,9 +209,9 @@
     return strategy.checkEnqueuerConsistency(this);
   }
 
-  void checkClass(ClassElement cls) {
+  void checkClass(ClassEntity cls) {
     _universe.processClassMembers(cls,
-        (MemberElement member, EnumSet<MemberUse> useSet) {
+        (MemberEntity member, EnumSet<MemberUse> useSet) {
       if (useSet.isNotEmpty) {
         _reporter.internalError(member,
             'Unenqueued use of $member: ${useSet.iterable(MemberUse.values)}');
@@ -228,36 +219,24 @@
     });
   }
 
-  /// Callback for applying the first seen use of a [member].
-  void _applyFirstMemberUse(MemberElement member, EnumSet<MemberUse> useSet) {
-    ClassElement cls = member.enclosingClass;
-    if (member.isFunction) {
-      MemberElement function = member;
-      if (function.name == Identifiers.noSuchMethod_) {
-        _registerNoSuchMethod(function);
-      }
-      if (function.name == Identifiers.call && !cls.typeVariables.isEmpty) {
-        _registerCallMethodWithFreeTypeVariables(function);
-      }
-    }
-    _applyMemberUse(member, useSet);
-  }
-
   /// Callback for applying the use of a [member].
   void _applyMemberUse(Entity member, EnumSet<MemberUse> useSet) {
     if (useSet.contains(MemberUse.NORMAL)) {
       _addToWorkList(member);
     }
-    if (useSet.contains(MemberUse.CLOSURIZE)) {
+    if (useSet.contains(MemberUse.CLOSURIZE_INSTANCE)) {
       _registerClosurizedMember(member);
     }
+    if (useSet.contains(MemberUse.CLOSURIZE_STATIC)) {
+      applyImpact(backend.registerGetOfStaticFunction());
+    }
   }
 
   /// Callback for applying the use of a [cls].
   void _applyClassUse(ClassEntity cls, EnumSet<ClassUse> useSet) {
     if (useSet.contains(ClassUse.INSTANTIATED)) {
       _recentClasses.add(cls);
-      _universe.processClassMembers(cls, _applyFirstMemberUse);
+      _universe.processClassMembers(cls, _applyMemberUse);
       // We only tell the backend once that [cls] was instantiated, so
       // any additional dependencies must be treated as global
       // dependencies.
@@ -275,34 +254,10 @@
   }
 
   void processStaticUse(StaticUse staticUse) {
-    Element element = staticUse.element;
-    assert(invariant(element, element.isDeclaration,
-        message: "Element ${element} is not the declaration."));
-    _universe.registerStaticUse(staticUse);
-    applyImpact(backend.registerStaticUse(element, forResolution: true));
-    bool addElement = true;
+    _universe.registerStaticUse(staticUse, _applyMemberUse);
+    // TODO(johnniwinther): Add `ResolutionWorldBuilder.registerConstructorUse`
+    // for these:
     switch (staticUse.kind) {
-      case StaticUseKind.STATIC_TEAR_OFF:
-        applyImpact(backend.registerGetOfStaticFunction());
-        break;
-      case StaticUseKind.FIELD_GET:
-      case StaticUseKind.FIELD_SET:
-      case StaticUseKind.CLOSURE:
-        // TODO(johnniwinther): Avoid this. Currently [FIELD_GET] and
-        // [FIELD_SET] contains [BoxFieldElement]s which we cannot enqueue.
-        // Also [CLOSURE] contains [LocalFunctionElement] which we cannot
-        // enqueue.
-        LocalFunctionElement closure = staticUse.element;
-        if (closure.type.containsTypeVariables) {
-          _universe.closuresWithFreeTypeVariables.add(closure);
-        }
-        addElement = false;
-        break;
-      case StaticUseKind.SUPER_FIELD_SET:
-      case StaticUseKind.SUPER_TEAR_OFF:
-      case StaticUseKind.GENERAL:
-      case StaticUseKind.DIRECT_USE:
-        break;
       case StaticUseKind.CONSTRUCTOR_INVOKE:
       case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
         _registerInstantiatedType(staticUse.type,
@@ -314,14 +269,9 @@
             globalDependency: false,
             isRedirection: true);
         break;
-      case StaticUseKind.DIRECT_INVOKE:
-        invariant(
-            element, 'Direct static use is not supported for resolution.');
+      default:
         break;
     }
-    if (addElement) {
-      _addToWorkList(element);
-    }
   }
 
   void processTypeUse(TypeUse typeUse) {
@@ -349,24 +299,21 @@
         }
         break;
       case TypeUseKind.TYPE_LITERAL:
+        if (type.isTypedef) {
+          universe.openWorld.registerTypedef(type.element);
+        }
         break;
     }
   }
 
   void _registerIsCheck(DartType type) {
-    type = _universe.registerIsCheck(type, _resolution);
+    type = _universe.registerIsCheck(type);
     // Even in checked mode, type annotations for return type and argument
     // types do not imply type checks, so there should never be a check
     // against the type variable of a typedef.
     assert(!type.isTypeVariable || !type.element.enclosingElement.isTypedef);
   }
 
-  void _registerCallMethodWithFreeTypeVariables(Element element) {
-    applyImpact(backend.registerCallMethodWithFreeTypeVariables(element,
-        forResolution: true));
-    _universe.callMethodsWithFreeTypeVariables.add(element);
-  }
-
   void _registerClosurizedMember(MemberElement element) {
     assert(element.isInstanceMember);
     if (element.type.containsTypeVariables) {
@@ -383,9 +330,9 @@
       while (_queue.isNotEmpty) {
         // TODO(johnniwinther): Find an optimal process order.
         WorkItem work = _queue.removeLast();
-        if (!isProcessed(work.element)) {
+        if (!_processedElements.contains(work.element)) {
           strategy.processWorkItem(f, work);
-          registerProcessedElement(work.element);
+          _processedElements.add(work.element);
         }
       }
       List recents = _recentClasses.toList(growable: false);
@@ -397,29 +344,30 @@
   }
 
   void logSummary(log(message)) {
-    log('Resolved ${processedElements.length} elements.');
+    log('Resolved ${_processedElements.length} elements.');
     nativeEnqueuer.logSummary(log);
   }
 
   String toString() => 'Enqueuer($name)';
 
-  Iterable<Entity> get processedEntities => processedElements;
+  Iterable<Entity> get processedEntities => _processedElements;
 
   ImpactUseCase get impactUse => IMPACT_USE;
 
   bool get isResolutionQueue => true;
 
-  bool isProcessed(Element member) => processedElements.contains(member);
-
   /// Returns `true` if [element] has been processed by the resolution enqueuer.
+  // TODO(johnniwinther): Move this to the [OpenWorld]/[ResolutionWorldBuilder].
   bool hasBeenProcessed(Element element) {
-    return processedElements.contains(element.analyzableElement.declaration);
+    assert(invariant(element, element == element.analyzableElement.declaration,
+        message: "Unexpected element $element"));
+    return _processedElements.contains(element);
   }
 
-  /// Registers [element] as processed by the resolution enqueuer.
-  void registerProcessedElement(AstElement element) {
-    processedElements.add(element);
-    backend.onElementResolved(element);
+  /// Registers [element] as processed by the resolution enqueuer. Used only for
+  /// testing.
+  void registerProcessedElementInternal(AstElement element) {
+    _processedElements.add(element);
   }
 
   /// Adds [element] to the work list if it has not already been processed.
@@ -437,67 +385,26 @@
           element, "Resolution work list is closed. Trying to add $element.");
     }
 
+    applyImpact(backend.registerUsedElement(element, forResolution: true));
     _openWorld.registerUsedElement(element);
 
     ResolutionWorkItem workItem = _resolution.createWorkItem(element);
     _queue.add(workItem);
-
-    // Enable isolate support if we start using something from the isolate
-    // library, or timers for the async library.  We exclude constant fields,
-    // which are ending here because their initializing expression is compiled.
-    LibraryElement library = element.library;
-    if (!universe.hasIsolateSupport && (!element.isField || !element.isConst)) {
-      String uri = library.canonicalUri.toString();
-      if (uri == 'dart:isolate') {
-        _enableIsolateSupport();
-      } else if (uri == 'dart:async') {
-        if (element.name == '_createTimer' ||
-            element.name == '_createPeriodicTimer') {
-          // The [:Timer:] class uses the event queue of the isolate
-          // library, so we make sure that event queue is generated.
-          _enableIsolateSupport();
-        }
-      }
-    }
-
-    if (element.isGetter && element.name == Identifiers.runtimeType_) {
-      // Enable runtime type support if we discover a getter called runtimeType.
-      // We have to enable runtime type before hitting the codegen, so
-      // that constructors know whether they need to generate code for
-      // runtime type.
-      _universe.hasRuntimeTypeSupport = true;
-      // TODO(ahe): Record precise dependency here.
-      applyImpact(backend.registerRuntimeType());
-    } else if (_commonElements.isFunctionApplyMethod(element)) {
-      _universe.hasFunctionApplySupport = true;
-    }
   }
 
-  void _registerNoSuchMethod(Element element) {
-    backend.registerNoSuchMethod(element);
-  }
-
-  void _enableIsolateSupport() {
-    _universe.hasIsolateSupport = true;
-    applyImpact(backend.enableIsolateSupport(forResolution: true));
-  }
-
-  /**
-   * Adds an action to the deferred task queue.
-   *
-   * The action is performed the next time the resolution queue has been
-   * emptied.
-   *
-   * The queue is processed in FIFO order.
-   */
-  void addDeferredAction(Element element, void action()) {
+  /// Adds an action to the deferred task queue.
+  /// The action is performed the next time the resolution queue has been
+  /// emptied.
+  ///
+  /// The queue is processed in FIFO order.
+  void addDeferredAction(Entity entity, void action()) {
     if (queueIsClosed) {
       throw new SpannableAssertionFailure(
-          element,
+          entity,
           "Resolution work list is closed. "
-          "Trying to add deferred action for $element");
+          "Trying to add deferred action for $entity");
     }
-    _deferredQueue.add(new _DeferredAction(element, action));
+    _deferredQueue.add(new _DeferredAction(entity, action));
   }
 
   /// [_onQueueEmpty] is called whenever the queue is drained. [recentClasses]
@@ -506,7 +413,7 @@
   /// the [recentClasses] have been processed and may be cleared. If [false] is
   /// returned, [_onQueueEmpty] will be called once the queue is empty again (or
   /// still empty) and [recentClasses] will be a superset of the current value.
-  bool _onQueueEmpty(Iterable<ClassElement> recentClasses) {
+  bool _onQueueEmpty(Iterable<ClassEntity> recentClasses) {
     _emptyDeferredQueue();
 
     return backend.onQueueEmpty(this, recentClasses);
@@ -521,18 +428,12 @@
     }
   }
 
-  void forgetElement(Element element, Compiler compiler) {
-    _universe.forgetElement(element, compiler);
-    processedElements.remove(element);
+  void forgetEntity(Entity entity, Compiler compiler) {
+    _universe.forgetEntity(entity, compiler);
+    _processedElements.remove(entity);
   }
 }
 
-void removeFromSet(Map<String, Set<Element>> map, Element element) {
-  Set<Element> set = map[element.name];
-  if (set == null) return;
-  set.remove(element);
-}
-
 /// Strategy used by the enqueuer to populate the world.
 class EnqueuerStrategy {
   const EnqueuerStrategy();
diff --git a/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart b/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
index 7b913b0..ccc1155 100644
--- a/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
+++ b/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
@@ -751,6 +751,8 @@
 
   DiagnosticReporter get reporter => compiler.reporter;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   @override
   SemanticSendVisitor get sendVisitor => this;
 
@@ -963,7 +965,6 @@
   T get thisType {
     if (_thisType != null) return _thisType;
     ClassElement cls = outermostElement.enclosingClass;
-    ClosedWorld closedWorld = compiler.closedWorld;
     if (closedWorld.isUsedAsMixin(cls)) {
       return _thisType = types.nonNullSubtype(cls);
     } else {
diff --git a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
index f6cdace..253e65f 100644
--- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
+++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
@@ -16,14 +16,13 @@
 import '../js_backend/js_backend.dart' as js;
 import '../native/native.dart' as native;
 import '../resolution/operators.dart' as op;
-import '../resolution/tree_elements.dart' show TreeElements;
 import '../tree/tree.dart' as ast;
 import '../types/types.dart' show TypeMask, GlobalTypeInferenceElementData;
 import '../universe/call_structure.dart' show CallStructure;
 import '../universe/selector.dart' show Selector;
 import '../universe/side_effects.dart' show SideEffects;
 import '../util/util.dart' show Link, Setlet;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
 import 'inferrer_visitor.dart';
 
 /**
@@ -35,6 +34,7 @@
     implements MinimalInferrerEngine<T> {
   final Compiler compiler;
   final ClosedWorld closedWorld;
+  final ClosedWorldRefiner closedWorldRefiner;
   final V types;
   final Map<ast.Node, T> concreteTypes = new Map<ast.Node, T>();
   final Set<Element> generativeConstructorsExposingThis = new Set<Element>();
@@ -44,9 +44,8 @@
   final Map<Element, GlobalTypeInferenceElementData> inTreeData =
       new Map<Element, GlobalTypeInferenceElementData>();
 
-  InferrerEngine(Compiler compiler, this.types)
-      : this.compiler = compiler,
-        this.closedWorld = compiler.closedWorld;
+  InferrerEngine(
+      this.compiler, this.closedWorld, this.closedWorldRefiner, this.types);
 
   CoreClasses get coreClasses => compiler.coreClasses;
 
@@ -180,7 +179,7 @@
   void forEachElementMatching(
       Selector selector, TypeMask mask, bool f(Element element)) {
     Iterable<Element> elements =
-        compiler.closedWorld.allFunctions.filter(selector, mask);
+        closedWorld.allFunctions.filter(selector, mask);
     for (Element e in elements) {
       if (!f(e.implementation)) return;
     }
@@ -219,8 +218,7 @@
       sideEffects.setAllSideEffects();
       sideEffects.setDependsOnSomething();
     } else {
-      sideEffects
-          .add(compiler.inferenceWorld.getCurrentlyKnownSideEffects(callee));
+      sideEffects.add(closedWorldRefiner.getCurrentlyKnownSideEffects(callee));
     }
   }
 
@@ -492,7 +490,7 @@
         });
       }
       if (analyzedElement.isGenerativeConstructor && cls.isAbstract) {
-        if (compiler.closedWorld.isInstantiated(cls)) {
+        if (closedWorld.isInstantiated(cls)) {
           returnType = types.nonNullSubclass(cls);
         } else {
           // TODO(johnniwinther): Avoid analyzing [analyzedElement] in this
@@ -541,7 +539,8 @@
       }
     }
 
-    compiler.inferenceWorld.registerSideEffects(analyzedElement, sideEffects);
+    inferrer.closedWorldRefiner
+        .registerSideEffects(analyzedElement, sideEffects);
     assert(breaksFor.isEmpty);
     assert(continuesFor.isEmpty);
     return returnType;
@@ -655,7 +654,7 @@
   bool isInClassOrSubclass(Element element) {
     ClassElement cls = outermostElement.enclosingClass.declaration;
     ClassElement enclosing = element.enclosingClass.declaration;
-    return compiler.closedWorld.isSubclassOf(enclosing, cls);
+    return closedWorld.isSubclassOf(enclosing, cls);
   }
 
   void checkIfExposesThis(Selector selector, TypeMask mask) {
@@ -1362,7 +1361,7 @@
           (node.asSendSet() != null) &&
           (node.asSendSet().receiver != null) &&
           node.asSendSet().receiver.isThis()) {
-        Iterable<Element> targets = compiler.closedWorld.allFunctions.filter(
+        Iterable<Element> targets = closedWorld.allFunctions.filter(
             setterSelector, types.newTypedSelector(thisType, setterMask));
         // We just recognized a field initialization of the form:
         // `this.foo = 42`. If there is only one target, we can update
@@ -1635,7 +1634,7 @@
     } else if (element != null &&
         element.isField &&
         Elements.isStaticOrTopLevelField(element) &&
-        compiler.closedWorld.fieldNeverChanges(element)) {
+        closedWorld.fieldNeverChanges(element)) {
       FieldElement fieldElement = element;
       ConstantValue value =
           compiler.backend.constants.getConstantValue(fieldElement.constant);
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
index 67f2aa0..1ac65fc 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart
@@ -25,7 +25,7 @@
 import '../universe/selector.dart' show Selector;
 import '../universe/side_effects.dart' show SideEffects;
 import '../util/util.dart' show Setlet;
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
 import 'closure_tracer.dart';
 import 'debug.dart' as debug;
 import 'inferrer_visitor.dart' show ArgumentsTypes, TypeSystem;
@@ -36,9 +36,7 @@
 import 'type_graph_nodes.dart';
 
 class TypeInformationSystem extends TypeSystem<TypeInformation> {
-  final Compiler compiler;
   final ClosedWorld closedWorld;
-  final CommonMasks commonMasks;
 
   /// [ElementTypeInformation]s for elements.
   final Map<Element, TypeInformation> typeInformations =
@@ -72,12 +70,12 @@
         allocatedTypes
       ].expand((x) => x);
 
-  TypeInformationSystem(Compiler compiler, this.commonMasks)
-      : this.compiler = compiler,
-        this.closedWorld = compiler.closedWorld {
-    nonNullEmptyType = getConcreteTypeFor(const TypeMask.nonNullEmpty());
+  TypeInformationSystem(this.closedWorld) {
+    nonNullEmptyType = getConcreteTypeFor(commonMasks.emptyType);
   }
 
+  CommonMasks get commonMasks => closedWorld.commonMasks;
+
   /// Used to group [TypeInformation] nodes by the element that triggered their
   /// creation.
   MemberTypeInformation _currentMember = null;
@@ -252,8 +250,7 @@
   TypeInformation refineReceiver(Selector selector, TypeMask mask,
       TypeInformation receiver, bool isConditional) {
     if (receiver.type.isExact) return receiver;
-    TypeMask otherType =
-        compiler.closedWorld.allFunctions.receiverType(selector, mask);
+    TypeMask otherType = closedWorld.allFunctions.receiverType(selector, mask);
     // Conditional sends (a?.b) can still narrow the possible types of `a`,
     // however, we still need to consider that `a` may be null.
     if (isConditional) {
@@ -366,7 +363,7 @@
   TypeInformation allocateList(
       TypeInformation type, ast.Node node, Element enclosing,
       [TypeInformation elementType, int length]) {
-    ClassElement typedDataClass = compiler.commonElements.typedDataClass;
+    ClassElement typedDataClass = closedWorld.commonElements.typedDataClass;
     bool isTypedArray = typedDataClass != null &&
         closedWorld.isInstantiated(typedDataClass) &&
         type.type.satisfies(typedDataClass, closedWorld);
@@ -570,7 +567,6 @@
       <CallSiteTypeInformation>[];
   final WorkQueue workQueue = new WorkQueue();
   final Element mainElement;
-  final CommonMasks commonMasks;
   final Set<Element> analyzedElements = new Set<Element>();
 
   /// The maximum number of times we allow a node in the graph to
@@ -581,14 +577,15 @@
   int overallRefineCount = 0;
   int addedInGraph = 0;
 
-  TypeGraphInferrerEngine(
-      Compiler compiler, CommonMasks commonMasks, this.mainElement)
-      : commonMasks = commonMasks,
-        super(compiler, new TypeInformationSystem(compiler, commonMasks));
+  TypeGraphInferrerEngine(Compiler compiler, ClosedWorld closedWorld,
+      ClosedWorldRefiner closedWorldRefiner, this.mainElement)
+      : super(compiler, closedWorld, closedWorldRefiner,
+            new TypeInformationSystem(closedWorld));
 
   JavaScriptBackend get backend => compiler.backend;
   Annotations get annotations => backend.annotations;
   DiagnosticReporter get reporter => compiler.reporter;
+  CommonMasks get commonMasks => closedWorld.commonMasks;
 
   /**
    * A set of selector names that [List] implements, that we know return
@@ -704,7 +701,7 @@
         tracer.run();
         if (!tracer.continueAnalyzing) {
           elements.forEach((FunctionElement e) {
-            compiler.inferenceWorld.registerMightBePassedToApply(e);
+            closedWorldRefiner.registerMightBePassedToApply(e);
             if (debug.VERBOSE) print("traced closure $e as ${true} (bail)");
             e.functionSignature.forEachParameter((parameter) {
               types
@@ -724,11 +721,11 @@
             workQueue.add(info);
           });
           if (tracer.tracedType.mightBePassedToFunctionApply) {
-            compiler.inferenceWorld.registerMightBePassedToApply(e);
+            closedWorldRefiner.registerMightBePassedToApply(e);
           }
           if (debug.VERBOSE) {
             print("traced closure $e as "
-                "${compiler.inferenceWorld
+                "${closedWorldRefiner
                     .getCurrentlyKnownMightBePassedToApply(e)}");
           }
         });
@@ -915,14 +912,13 @@
     allocatedCalls.forEach((info) {
       if (!info.inLoop) return;
       if (info is StaticCallSiteTypeInformation) {
-        compiler.inferenceWorld.addFunctionCalledInLoop(info.calledElement);
-      } else if (info.mask != null &&
-          !info.mask.containsAll(compiler.closedWorld)) {
+        closedWorldRefiner.addFunctionCalledInLoop(info.calledElement);
+      } else if (info.mask != null && !info.mask.containsAll(closedWorld)) {
         // For instance methods, we only register a selector called in a
         // loop if it is a typed selector, to avoid marking too many
         // methods as being called from within a loop. This cuts down
         // on the code bloat.
-        info.targets.forEach(compiler.inferenceWorld.addFunctionCalledInLoop);
+        info.targets.forEach(closedWorldRefiner.addFunctionCalledInLoop);
       }
     });
   }
@@ -1189,7 +1185,7 @@
           arguments, sideEffects, inLoop);
     }
 
-    compiler.closedWorld.allFunctions.filter(selector, mask).forEach((callee) {
+    closedWorld.allFunctions.filter(selector, mask).forEach((callee) {
       updateSideEffects(sideEffects, selector, callee);
     });
 
@@ -1247,11 +1243,8 @@
   Iterable<ResolvedAst> sortResolvedAsts() {
     int max = 0;
     Map<int, Setlet<ResolvedAst>> methodSizes = <int, Setlet<ResolvedAst>>{};
-    compiler.enqueuer.resolution.processedElements
+    compiler.enqueuer.resolution.processedEntities
         .forEach((AstElement element) {
-      // TODO(ngeoffray): Not sure why the resolver would put a null
-      // mapping.
-      if (!compiler.enqueuer.resolution.hasBeenProcessed(element)) return;
       ResolvedAst resolvedAst = element.resolvedAst;
       element = element.implementation;
       if (element.impliesType) return;
@@ -1359,14 +1352,20 @@
 class TypeGraphInferrer implements TypesInferrer {
   TypeGraphInferrerEngine inferrer;
   final Compiler compiler;
-  final CommonMasks commonMasks;
-  TypeGraphInferrer(this.compiler, this.commonMasks);
+  final ClosedWorld closedWorld;
+  final ClosedWorldRefiner closedWorldRefiner;
+
+  TypeGraphInferrer(this.compiler, this.closedWorld, this.closedWorldRefiner);
 
   String get name => 'Graph inferrer';
+
+  CommonMasks get commonMasks => closedWorld.commonMasks;
+
   TypeMask get _dynamicType => commonMasks.dynamicType;
 
   void analyzeMain(Element main) {
-    inferrer = new TypeGraphInferrerEngine(compiler, commonMasks, main);
+    inferrer = new TypeGraphInferrerEngine(
+        compiler, closedWorld, closedWorldRefiner, main);
     inferrer.runOverAllElements();
   }
 
@@ -1417,11 +1416,11 @@
 
     TypeMask result = const TypeMask.nonNullEmpty();
     Iterable<Element> elements =
-        compiler.closedWorld.allFunctions.filter(selector, mask);
+        inferrer.closedWorld.allFunctions.filter(selector, mask);
     for (Element element in elements) {
       TypeMask type =
           inferrer.typeOfElementWithSelector(element, selector).type;
-      result = result.union(type, compiler.closedWorld);
+      result = result.union(type, inferrer.closedWorld);
     }
     return result;
   }
diff --git a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
index 7e3bbd6..7cf31f0 100644
--- a/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
+++ b/pkg/compiler/lib/src/inferrer/type_graph_nodes.dart
@@ -522,13 +522,13 @@
       return mask;
     }
     if (element.isField) {
-      return _narrowType(compiler.closedWorld, mask, element.type);
+      return _narrowType(inferrer.closedWorld, mask, element.type);
     }
     assert(
         element.isFunction || element.isGetter || element.isFactoryConstructor);
 
     FunctionType type = element.type;
-    return _narrowType(compiler.closedWorld, mask, type.returnType);
+    return _narrowType(inferrer.closedWorld, mask, type.returnType);
   }
 
   TypeMask computeType(TypeGraphInferrerEngine inferrer) {
@@ -640,7 +640,7 @@
       giveUp(inferrer);
       return safeType(inferrer);
     }
-    if (inferrer.compiler.inferenceWorld
+    if (inferrer.closedWorldRefiner
         .getCurrentlyKnownMightBePassedToApply(declaration)) {
       giveUp(inferrer);
       return safeType(inferrer);
@@ -669,7 +669,7 @@
     // ignore type annotations to ensure that the checks are actually inserted
     // into the function body and retained until runtime.
     assert(!compiler.options.enableTypeAssertions);
-    return _narrowType(compiler.closedWorld, mask, element.type);
+    return _narrowType(inferrer.closedWorld, mask, element.type);
   }
 
   TypeMask computeType(TypeGraphInferrerEngine inferrer) {
@@ -818,8 +818,7 @@
   void addToGraph(TypeGraphInferrerEngine inferrer) {
     assert(receiver != null);
     TypeMask typeMask = computeTypedSelector(inferrer);
-    targets =
-        inferrer.compiler.closedWorld.allFunctions.filter(selector, typeMask);
+    targets = inferrer.closedWorld.allFunctions.filter(selector, typeMask);
     receiver.addUser(this);
     if (arguments != null) {
       arguments.forEach((info) => info.addUser(this));
@@ -973,16 +972,16 @@
     Compiler compiler = inferrer.compiler;
     JavaScriptBackend backend = compiler.backend;
     TypeMask maskToUse =
-        compiler.closedWorld.extendMaskIfReachesAll(selector, typeMask);
+        inferrer.closedWorld.extendMaskIfReachesAll(selector, typeMask);
     bool canReachAll = backend.hasInvokeOnSupport && (maskToUse != typeMask);
 
     // If this call could potentially reach all methods that satisfy
     // the untyped selector (through noSuchMethod's `Invocation`
     // and a call to `delegate`), we iterate over all these methods to
     // update their parameter types.
-    targets = compiler.closedWorld.allFunctions.filter(selector, maskToUse);
+    targets = inferrer.closedWorld.allFunctions.filter(selector, maskToUse);
     Iterable<Element> typedTargets = canReachAll
-        ? compiler.closedWorld.allFunctions.filter(selector, typeMask)
+        ? inferrer.closedWorld.allFunctions.filter(selector, typeMask)
         : targets;
 
     // Update the call graph if the targets could have changed.
@@ -1078,8 +1077,7 @@
     if (!abandonInferencing) {
       inferrer.updateSelectorInTree(caller, call, selector, mask);
       Iterable<Element> oldTargets = targets;
-      targets =
-          inferrer.compiler.closedWorld.allFunctions.filter(selector, mask);
+      targets = inferrer.closedWorld.allFunctions.filter(selector, mask);
       for (Element element in targets) {
         if (!oldTargets.contains(element)) {
           MemberTypeInformation callee =
diff --git a/pkg/compiler/lib/src/io/position_information.dart b/pkg/compiler/lib/src/io/position_information.dart
index cfb6657..a316930 100644
--- a/pkg/compiler/lib/src/io/position_information.dart
+++ b/pkg/compiler/lib/src/io/position_information.dart
@@ -685,7 +685,13 @@
   }
 }
 
-enum BranchKind { CONDITION, LOOP, CATCH, FINALLY, CASE, }
+enum BranchKind {
+  CONDITION,
+  LOOP,
+  CATCH,
+  FINALLY,
+  CASE,
+}
 
 enum StepKind {
   FUN_ENTRY,
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index 811096b..8b5e052 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -30,6 +30,7 @@
 import '../deferred_load.dart' show DeferredLoadTask;
 import '../dump_info.dart' show DumpInfoTask;
 import '../elements/elements.dart';
+import '../elements/entities.dart';
 import '../enqueue.dart'
     show Enqueuer, ResolutionEnqueuer, TreeShakingEnqueuerStrategy;
 import '../io/position_information.dart' show PositionSourceInformationStrategy;
@@ -63,7 +64,7 @@
         WorldImpactVisitor,
         StagedWorldImpactBuilder;
 import '../util/util.dart';
-import '../world.dart' show ClosedWorld;
+import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
 import 'backend_helpers.dart';
 import 'backend_impact.dart';
 import 'backend_serialization.dart' show JavaScriptBackendSerialization;
@@ -336,74 +337,6 @@
   static const bool TRACE_CALLS =
       TRACE_METHOD == 'post' || TRACE_METHOD == 'console';
 
-  TypeMask get stringType => compiler.closedWorld.commonMasks.stringType;
-  TypeMask get doubleType => compiler.closedWorld.commonMasks.doubleType;
-  TypeMask get intType => compiler.closedWorld.commonMasks.intType;
-  TypeMask get uint32Type => compiler.closedWorld.commonMasks.uint32Type;
-  TypeMask get uint31Type => compiler.closedWorld.commonMasks.uint31Type;
-  TypeMask get positiveIntType =>
-      compiler.closedWorld.commonMasks.positiveIntType;
-  TypeMask get numType => compiler.closedWorld.commonMasks.numType;
-  TypeMask get boolType => compiler.closedWorld.commonMasks.boolType;
-  TypeMask get dynamicType => compiler.closedWorld.commonMasks.dynamicType;
-  TypeMask get nullType => compiler.closedWorld.commonMasks.nullType;
-  TypeMask get emptyType => const TypeMask.nonNullEmpty();
-  TypeMask get nonNullType => compiler.closedWorld.commonMasks.nonNullType;
-
-  TypeMask _indexablePrimitiveTypeCache;
-  TypeMask get indexablePrimitiveType {
-    if (_indexablePrimitiveTypeCache == null) {
-      _indexablePrimitiveTypeCache = new TypeMask.nonNullSubtype(
-          helpers.jsIndexableClass, compiler.closedWorld);
-    }
-    return _indexablePrimitiveTypeCache;
-  }
-
-  TypeMask _readableArrayTypeCache;
-  TypeMask get readableArrayType {
-    if (_readableArrayTypeCache == null) {
-      _readableArrayTypeCache = new TypeMask.nonNullSubclass(
-          helpers.jsArrayClass, compiler.closedWorld);
-    }
-    return _readableArrayTypeCache;
-  }
-
-  TypeMask _mutableArrayTypeCache;
-  TypeMask get mutableArrayType {
-    if (_mutableArrayTypeCache == null) {
-      _mutableArrayTypeCache = new TypeMask.nonNullSubclass(
-          helpers.jsMutableArrayClass, compiler.closedWorld);
-    }
-    return _mutableArrayTypeCache;
-  }
-
-  TypeMask _fixedArrayTypeCache;
-  TypeMask get fixedArrayType {
-    if (_fixedArrayTypeCache == null) {
-      _fixedArrayTypeCache = new TypeMask.nonNullExact(
-          helpers.jsFixedArrayClass, compiler.closedWorld);
-    }
-    return _fixedArrayTypeCache;
-  }
-
-  TypeMask _extendableArrayTypeCache;
-  TypeMask get extendableArrayType {
-    if (_extendableArrayTypeCache == null) {
-      _extendableArrayTypeCache = new TypeMask.nonNullExact(
-          helpers.jsExtendableArrayClass, compiler.closedWorld);
-    }
-    return _extendableArrayTypeCache;
-  }
-
-  TypeMask _unmodifiableArrayTypeCache;
-  TypeMask get unmodifiableArrayType {
-    if (_unmodifiableArrayTypeCache == null) {
-      _unmodifiableArrayTypeCache = new TypeMask.nonNullExact(
-          helpers.jsUnmodifiableArrayClass, compiler.closedWorld);
-    }
-    return _fixedArrayTypeCache;
-  }
-
   /// Maps special classes to their implementation (JSXxx) class.
   Map<ClassElement, ClassElement> implementationClasses;
 
@@ -522,6 +455,18 @@
   /// `true` if access to [BackendHelpers.invokeOnMethod] is supported.
   bool hasInvokeOnSupport = false;
 
+  /// `true` if tear-offs are supported for incremental compilation.
+  bool hasIncrementalTearOffSupport = false;
+
+  /// `true` of `Object.runtimeType` is supported.
+  bool hasRuntimeTypeSupport = false;
+
+  /// `true` of use of the `dart:isolate` library is supported.
+  bool hasIsolateSupport = false;
+
+  /// `true` of `Function.apply` is supported.
+  bool hasFunctionApplySupport = false;
+
   /// List of constants from metadata.  If metadata must be preserved,
   /// these constants must be registered.
   final List<Dependency> metadataConstants = <Dependency>[];
@@ -1337,8 +1282,11 @@
     return impactBuilder;
   }
 
-  onResolutionComplete() {
-    super.onResolutionComplete();
+  onResolutionComplete(ClosedWorldRefiner closedWorldRefiner) {
+    for (Entity entity in compiler.enqueuer.resolution.processedEntities) {
+      processAnnotations(entity, closedWorldRefiner);
+    }
+    super.onResolutionComplete(closedWorldRefiner);
     computeMembersNeededForReflection();
     rti.computeClassesNeedingRti();
     _registeredMetadata.clear();
@@ -1377,6 +1325,8 @@
     return impactTransformer.createImpactFor(impacts.computeSignature);
   }
 
+  /// Called to register that the `runtimeType` property has been accessed. Any
+  /// backend specific [WorldImpact] of this is returned.
   WorldImpact registerRuntimeType() {
     return impactTransformer.createImpactFor(impacts.runtimeTypeSupport);
   }
@@ -1390,7 +1340,8 @@
     return impactTransformer.createImpactFor(impacts.deferredLoading);
   }
 
-  void registerNoSuchMethod(FunctionElement noSuchMethod) {
+  /// Called to register a `noSuchMethod` implementation.
+  void registerNoSuchMethod(MethodElement noSuchMethod) {
     noSuchMethodRegistry.registerNoSuchMethod(noSuchMethod);
   }
 
@@ -1457,37 +1408,28 @@
   }
 
   bool classNeedsRti(ClassElement cls) {
-    if (compiler.resolverWorld.hasRuntimeTypeSupport) return true;
+    if (hasRuntimeTypeSupport) return true;
     return rti.classesNeedingRti.contains(cls.declaration);
   }
 
   bool classNeedsRtiField(ClassElement cls) {
     if (cls.rawType.typeArguments.isEmpty) return false;
-    if (compiler.resolverWorld.hasRuntimeTypeSupport) return true;
+    if (hasRuntimeTypeSupport) return true;
     return rti.classesNeedingRti.contains(cls.declaration);
   }
 
   bool isComplexNoSuchMethod(FunctionElement element) =>
       noSuchMethodRegistry.isComplex(element);
 
-  bool isDefaultEqualityImplementation(Element element) {
-    assert(element.name == '==');
-    ClassElement classElement = element.enclosingClass;
-    return classElement == coreClasses.objectClass ||
-        classElement == helpers.jsInterceptorClass ||
-        classElement == helpers.jsNullClass;
-  }
-
   bool methodNeedsRti(FunctionElement function) {
-    return rti.methodsNeedingRti.contains(function) ||
-        compiler.resolverWorld.hasRuntimeTypeSupport;
+    return rti.methodsNeedingRti.contains(function) || hasRuntimeTypeSupport;
   }
 
   CodegenEnqueuer get codegenEnqueuer => compiler.enqueuer.codegen;
 
   CodegenEnqueuer createCodegenEnqueuer(CompilerTask task, Compiler compiler) {
-    return new CodegenEnqueuer(
-        task, compiler, const TreeShakingEnqueuerStrategy());
+    return new CodegenEnqueuer(task, compiler.cacheStrategy, this,
+        compiler.options, const TreeShakingEnqueuerStrategy());
   }
 
   WorldImpact codegen(CodegenWorkItem work) {
@@ -1805,7 +1747,7 @@
     return compiler.closedWorld.hasOnlySubclasses(classElement);
   }
 
-  WorldImpact registerStaticUse(Element element, {bool forResolution}) {
+  WorldImpact registerUsedElement(Element element, {bool forResolution}) {
     WorldImpactBuilderImpl worldImpact = new WorldImpactBuilderImpl();
     if (element == helpers.disableTreeShakingMarker) {
       isTreeShakingDisabled = true;
@@ -1830,9 +1772,57 @@
       }
     } else if (element == helpers.requiresPreambleMarker) {
       requiresPreamble = true;
+    } else if (element == helpers.invokeOnMethod && forResolution) {
+      hasInvokeOnSupport = true;
     }
     customElementsAnalysis.registerStaticUse(element,
         forResolution: forResolution);
+
+    if (forResolution) {
+      if (element.isFunction && element.isInstanceMember) {
+        MemberElement function = element;
+        ClassElement cls = function.enclosingClass;
+        if (function.name == Identifiers.call && !cls.typeVariables.isEmpty) {
+          worldImpact.addImpact(registerCallMethodWithFreeTypeVariables(
+              function,
+              forResolution: true));
+        }
+      }
+      // Enable isolate support if we start using something from the isolate
+      // library, or timers for the async library.  We exclude constant fields,
+      // which are ending here because their initializing expression is
+      // compiled.
+      LibraryElement library = element.library;
+      if (!hasIsolateSupport && !(element.isField && element.isConst)) {
+        Uri uri = library.canonicalUri;
+        if (uri == Uris.dart_isolate) {
+          hasIsolateSupport = true;
+          worldImpact
+              .addImpact(enableIsolateSupport(forResolution: forResolution));
+        } else if (uri == Uris.dart_async) {
+          if (element.name == '_createTimer' ||
+              element.name == '_createPeriodicTimer') {
+            // The [:Timer:] class uses the event queue of the isolate
+            // library, so we make sure that event queue is generated.
+            hasIsolateSupport = true;
+            worldImpact
+                .addImpact(enableIsolateSupport(forResolution: forResolution));
+          }
+        }
+      }
+
+      if (element.isGetter && element.name == Identifiers.runtimeType_) {
+        // Enable runtime type support if we discover a getter called
+        // runtimeType. We have to enable runtime type before hitting the
+        // codegen, so that constructors know whether they need to generate code
+        // for runtime type.
+        hasRuntimeTypeSupport = true;
+        // TODO(ahe): Record precise dependency here.
+        worldImpact.addImpact(registerRuntimeType());
+      } else if (compiler.commonElements.isFunctionApplyMethod(element)) {
+        hasFunctionApplySupport = true;
+      }
+    }
     return worldImpact;
   }
 
@@ -2035,7 +2025,7 @@
    * be visible by reflection unless some other interfaces makes them
    * accessible.
    */
-  computeMembersNeededForReflection() {
+  void computeMembersNeededForReflection() {
     if (_membersNeededForReflection != null) return;
     if (compiler.commonElements.mirrorsLibrary == null) {
       _membersNeededForReflection = const ImmutableEmptySet<Element>();
@@ -2254,7 +2244,7 @@
   }
 
   /// Called when [enqueuer] is empty, but before it is closed.
-  bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassElement> recentClasses) {
+  bool onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
     // Add elements used synthetically, that is, through features rather than
     // syntax, for instance custom elements.
     //
@@ -2269,6 +2259,12 @@
 
     if (!enqueuer.queueIsEmpty) return false;
 
+    for (ClassElement cls in recentClasses) {
+      Element element = cls.lookupLocalMember(Identifiers.noSuchMethod_);
+      if (element != null && element.isInstanceMember && element.isFunction) {
+        registerNoSuchMethod(element);
+      }
+    }
     noSuchMethodRegistry.onQueueEmpty();
     if (!enabledNoSuchMethod &&
         (noSuchMethodRegistry.hasThrowingNoSuchMethod ||
@@ -2281,13 +2277,15 @@
       kernelTask.buildKernelIr();
     }
 
-    if (compiler.options.hasIncrementalSupport) {
+    if (compiler.options.hasIncrementalSupport &&
+        !hasIncrementalTearOffSupport) {
       // Always enable tear-off closures during incremental compilation.
       Element element = helpers.closureFromTearOff;
-      if (element != null && !enqueuer.isProcessed(element)) {
+      if (element != null) {
         enqueuer.applyImpact(
             impactTransformer.createImpactFor(impacts.closureClass));
       }
+      hasIncrementalTearOffSupport = true;
     }
 
     if (!enqueuer.isResolutionQueue && preMirrorsMethodCount == 0) {
@@ -2333,7 +2331,7 @@
 
         // TODO(johnniwinther): We should have access to all recently processed
         // elements and process these instead.
-        processMetadata(compiler.enqueuer.resolution.processedElements,
+        processMetadata(compiler.enqueuer.resolution.processedEntities,
             registerMetadataConstant);
       } else {
         for (Dependency dependency in metadataConstants) {
@@ -2347,9 +2345,9 @@
     return true;
   }
 
-  /// Call [registerMetadataConstant] on all metadata from [elements].
-  void processMetadata(Iterable<Element> elements,
-      void onMetadata(MetadataAnnotation metadata)) {
+  /// Call [registerMetadataConstant] on all metadata from [entities].
+  void processMetadata(
+      Iterable<Entity> entities, void onMetadata(MetadataAnnotation metadata)) {
     void processLibraryMetadata(LibraryElement library) {
       if (_registeredMetadata.add(library)) {
         library.metadata.forEach(onMetadata);
@@ -2377,7 +2375,7 @@
       }
     }
 
-    elements.forEach(processElementMetadata);
+    entities.forEach(processElementMetadata);
   }
 
   void onQueueClosed() {
@@ -2385,14 +2383,19 @@
     jsInteropAnalysis.onQueueClosed();
   }
 
-  void onCodegenStart() {
+  WorldImpact onCodegenStart() {
     lookupMapAnalysis.onCodegenStart();
+    if (hasIsolateSupport) {
+      return enableIsolateSupport(forResolution: false);
+    }
+    return const WorldImpact();
   }
 
-  @override
-  void onElementResolved(Element element) {
+  /// Process backend specific annotations.
+  void processAnnotations(
+      Element element, ClosedWorldRefiner closedWorldRefiner) {
     if (element.isMalformed) {
-      // Elements that are marker as malformed during parsing or resolution
+      // Elements that are marked as malformed during parsing or resolution
       // might be registered here. These should just be ignored.
       return;
     }
@@ -2444,14 +2447,14 @@
           reporter.reportHintMessage(
               element, MessageKind.GENERIC, {'text': "Cannot throw"});
         }
-        compiler.inferenceWorld.registerCannotThrow(element);
+        closedWorldRefiner.registerCannotThrow(element);
       } else if (cls == helpers.noSideEffectsClass) {
         hasNoSideEffects = true;
         if (VERBOSE_OPTIMIZER_HINTS) {
           reporter.reportHintMessage(
               element, MessageKind.GENERIC, {'text': "Has no side effects"});
         }
-        compiler.inferenceWorld.registerSideEffectsFree(element);
+        closedWorldRefiner.registerSideEffectsFree(element);
       }
     }
     if (hasForceInline && hasNoInline) {
@@ -2466,18 +2469,8 @@
       reporter.internalError(element,
           "@NoSideEffects() should always be combined with @NoInline.");
     }
-    if (element == helpers.invokeOnMethod) {
-      hasInvokeOnSupport = true;
-    }
   }
 
-/*
-  CodeBuffer codeOf(Element element) {
-    return generatedCode.containsKey(element)
-        ? jsAst.prettyPrint(generatedCode[element], compiler)
-        : null;
-  }
-*/
   FunctionElement helperForBadMain() => helpers.badMain;
 
   FunctionElement helperForMissingMain() => helpers.missingMain;
@@ -2817,9 +2810,6 @@
           break;
         case TypeUseKind.TYPE_LITERAL:
           backend.customElementsAnalysis.registerTypeLiteral(type);
-          if (type.isTypedef) {
-            backend.compiler.openWorld.registerTypedef(type.element);
-          }
           if (type.isTypeVariable && type is! MethodTypeVariableType) {
             // GENERIC_METHODS: The `is!` test above filters away method type
             // variables, because they have the value `dynamic` with the
@@ -3178,7 +3168,7 @@
       this.supportSerialization});
 
   @override
-  void visitImpact(Element element, WorldImpact impact,
+  void visitImpact(var impactSource, WorldImpact impact,
       WorldImpactVisitor visitor, ImpactUseCase impactUse) {
     // TODO(johnniwinther): Compute the application strategy once for each use.
     if (impactUse == ResolutionEnqueuer.IMPACT_USE) {
@@ -3186,8 +3176,8 @@
         impact.apply(visitor);
       } else {
         impact.apply(visitor);
-        if (element != null) {
-          resolution.uncacheWorldImpact(element);
+        if (impactSource is Element) {
+          resolution.uncacheWorldImpact(impactSource);
         }
       }
     } else if (impactUse == DeferredLoadTask.IMPACT_USE) {
@@ -3195,7 +3185,7 @@
       // Impacts are uncached globally in [onImpactUsed].
     } else if (impactUse == DumpInfoTask.IMPACT_USE) {
       impact.apply(visitor);
-      dumpInfoTask.unregisterImpact(element);
+      dumpInfoTask.unregisterImpact(impactSource);
     } else {
       impact.apply(visitor);
     }
@@ -3224,6 +3214,7 @@
   ClassElement get numImplementation => helpers.jsNumberClass;
   ClassElement get stringImplementation => helpers.jsStringClass;
   ClassElement get listImplementation => helpers.jsArrayClass;
+  ClassElement get mutableListImplementation => helpers.jsMutableArrayClass;
   ClassElement get constListImplementation => helpers.jsUnmodifiableArrayClass;
   ClassElement get fixedListImplementation => helpers.jsFixedArrayClass;
   ClassElement get growableListImplementation => helpers.jsExtendableArrayClass;
@@ -3236,4 +3227,15 @@
   ClassElement get asyncFutureImplementation => helpers.futureImplementation;
   ClassElement get asyncStarStreamImplementation => helpers.controllerStream;
   ClassElement get functionImplementation => helpers.coreClasses.functionClass;
+  ClassElement get indexableImplementation => helpers.jsIndexableClass;
+  ClassElement get mutableIndexableImplementation =>
+      helpers.jsMutableIndexableClass;
+
+  bool isDefaultEqualityImplementation(Element element) {
+    assert(element.name == '==');
+    ClassElement classElement = element.enclosingClass;
+    return classElement == helpers.coreClasses.objectClass ||
+        classElement == helpers.jsInterceptorClass ||
+        classElement == helpers.jsNullClass;
+  }
 }
diff --git a/pkg/compiler/lib/src/js_backend/backend_impact.dart b/pkg/compiler/lib/src/js_backend/backend_impact.dart
index 7b12839..cbd3752 100644
--- a/pkg/compiler/lib/src/js_backend/backend_impact.dart
+++ b/pkg/compiler/lib/src/js_backend/backend_impact.dart
@@ -161,10 +161,16 @@
 
   BackendImpact get throwNoSuchMethod {
     return _throwNoSuchMethod ??= new BackendImpact(
+        instantiatedClasses: compiler.options.useKernel
+            ? [
+                commonElements.symbolClass,
+              ]
+            : [],
         staticUses: compiler.options.useKernel
             ? [
                 helpers.genericNoSuchMethod,
                 helpers.unresolvedConstructorError,
+                commonElements.symbolConstructor.declaration,
               ]
             : [
                 helpers.throwNoSuchMethod,
@@ -230,12 +236,21 @@
   BackendImpact _throwRuntimeError;
 
   BackendImpact get throwRuntimeError {
-    return _throwRuntimeError ??= new BackendImpact(staticUses: [
-      helpers.throwRuntimeError
-    ], otherImpacts: [
-      // Also register the types of the arguments passed to this method.
-      stringValues
-    ]);
+    return _throwRuntimeError ??= new BackendImpact(
+        staticUses: compiler.options.useKernel
+            ? [
+                // TODO(sra): Refactor impacts so that we know which of these
+                // are called.
+                helpers.malformedTypeError,
+                helpers.throwRuntimeError,
+              ]
+            : [
+                helpers.throwRuntimeError,
+              ],
+        otherImpacts: [
+          // Also register the types of the arguments passed to this method.
+          stringValues
+        ]);
   }
 
   BackendImpact _superNoSuchMethod;
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index e51a5fa..4784df0 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -6,6 +6,7 @@
 
 import 'dart:collection' show Queue;
 
+import '../cache_strategy.dart' show CacheStrategy;
 import '../common/backend_api.dart' show Backend;
 import '../common/codegen.dart' show CodegenWorkItem;
 import '../common/names.dart' show Identifiers;
@@ -14,20 +15,17 @@
 import '../common.dart';
 import '../compiler.dart' show Compiler;
 import '../dart_types.dart' show DartType, InterfaceType;
+import '../dump_info.dart';
 import '../elements/elements.dart'
     show
         ClassElement,
         Element,
-        Elements,
         Entity,
         FunctionElement,
-        LibraryElement,
-        Member,
         MemberElement,
         MethodElement,
-        Name,
-        TypedElement,
-        TypedefElement;
+        TypedElement;
+import '../elements/entities.dart';
 import '../enqueue.dart';
 import '../js/js.dart' as js;
 import '../native/native.dart' as native;
@@ -38,15 +36,13 @@
 import '../universe/use.dart'
     show DynamicUse, StaticUse, StaticUseKind, TypeUse, TypeUseKind;
 import '../universe/world_impact.dart'
-    show ImpactUseCase, ImpactStrategy, WorldImpact, WorldImpactVisitor;
+    show ImpactUseCase, WorldImpact, WorldImpactVisitor;
 import '../util/util.dart' show Setlet;
 import '../world.dart';
 
 /// [Enqueuer] which is specific to code generation.
 class CodegenEnqueuer extends EnqueuerImpl {
   final String name;
-  @deprecated
-  final Compiler _compiler; // TODO(ahe): Remove this dependency.
   final EnqueuerStrategy strategy;
   final Map<String, Set<Element>> _instanceMembersByName =
       new Map<String, Set<Element>>();
@@ -60,10 +56,12 @@
   bool queueIsClosed = false;
   final CompilerTask task;
   final native.NativeEnqueuer nativeEnqueuer;
+  final Backend _backend;
+  final CompilerOptions _options;
 
   WorldImpactVisitor _impactVisitor;
 
-  final Queue<WorkItem> queue = new Queue<WorkItem>();
+  final Queue<WorkItem> _queue = new Queue<WorkItem>();
   final Map<Element, js.Expression> generatedCode = <Element, js.Expression>{};
 
   final Set<Element> newlyEnqueuedElements;
@@ -75,24 +73,23 @@
   static const ImpactUseCase IMPACT_USE =
       const ImpactUseCase('CodegenEnqueuer');
 
-  CodegenEnqueuer(this.task, Compiler compiler, this.strategy)
-      : newlyEnqueuedElements = compiler.cacheStrategy.newSet(),
-        newlySeenSelectors = compiler.cacheStrategy.newSet(),
-        nativeEnqueuer = compiler.backend.nativeCodegenEnqueuer(),
-        this.name = 'codegen enqueuer',
-        this._compiler = compiler {
+  CodegenEnqueuer(this.task, CacheStrategy cacheStrategy, Backend backend,
+      this._options, this.strategy)
+      : newlyEnqueuedElements = cacheStrategy.newSet(),
+        newlySeenSelectors = cacheStrategy.newSet(),
+        nativeEnqueuer = backend.nativeCodegenEnqueuer(),
+        this._backend = backend,
+        this.name = 'codegen enqueuer' {
     _impactVisitor = new EnqueuerImplImpactVisitor(this);
   }
 
   CodegenWorldBuilder get universe => _universe;
 
-  Backend get _backend => _compiler.backend;
+  // TODO(johnniwinther): Remove these hacks:
+  ClosedWorld get _world => _backend.compiler.closedWorld;
+  DumpInfoTask get _dumpInfoTask => _backend.compiler.dumpInfoTask;
 
-  CompilerOptions get _options => _compiler.options;
-
-  ClosedWorld get _world => _compiler.closedWorld;
-
-  bool get queueIsEmpty => queue.isEmpty;
+  bool get queueIsEmpty => _queue.isEmpty;
 
   /// Returns [:true:] if this enqueuer is the resolution enqueuer.
   bool get isResolutionQueue => false;
@@ -124,11 +121,10 @@
       throw new SpannableAssertionFailure(
           element, "Codegen work list is closed. Trying to add $element");
     }
-    queue.add(new CodegenWorkItem(_backend, element));
+    _queue.add(new CodegenWorkItem(_backend, element));
     // TODO(sigmund): add other missing dependencies (internals, selectors
     // enqueued after allocations).
-    _compiler.dumpInfoTask
-        .registerDependency(_compiler.currentElement, element);
+    _dumpInfoTask.registerDependency(element);
   }
 
   void applyImpact(WorldImpact worldImpact, {Element impactSource}) {
@@ -350,7 +346,7 @@
     assert(invariant(element, element.isDeclaration,
         message: "Element ${element} is not the declaration."));
     _universe.registerStaticUse(staticUse);
-    applyImpact(_backend.registerStaticUse(element, forResolution: false));
+    applyImpact(_backend.registerUsedElement(element, forResolution: false));
     bool addElement = true;
     switch (staticUse.kind) {
       case StaticUseKind.STATIC_TEAR_OFF:
@@ -412,7 +408,7 @@
   }
 
   void _registerIsCheck(DartType type) {
-    type = _universe.registerIsCheck(type, _compiler.resolution);
+    type = _universe.registerIsCheck(type);
     // Even in checked mode, type annotations for return type and argument
     // types do not imply type checks, so there should never be a check
     // against the type variable of a typedef.
@@ -435,9 +431,9 @@
 
   void forEach(void f(WorkItem work)) {
     do {
-      while (queue.isNotEmpty) {
+      while (_queue.isNotEmpty) {
         // TODO(johnniwinther): Find an optimal process order.
-        WorkItem work = queue.removeLast();
+        WorkItem work = _queue.removeLast();
         if (!isProcessed(work.element)) {
           strategy.processWorkItem(f, work);
           // TODO(johnniwinther): Register the processed element here. This
@@ -447,7 +443,7 @@
       List recents = _recentClasses.toList(growable: false);
       _recentClasses.clear();
       if (!_onQueueEmpty(recents)) _recentClasses.addAll(recents);
-    } while (queue.isNotEmpty || _recentClasses.isNotEmpty);
+    } while (_queue.isNotEmpty || _recentClasses.isNotEmpty);
   }
 
   /// [_onQueueEmpty] is called whenever the queue is drained. [recentClasses]
@@ -467,13 +463,6 @@
 
   String toString() => 'Enqueuer($name)';
 
-  void _forgetElement(Element element) {
-    _universe.forgetElement(element, _compiler);
-    _processedClasses.remove(element);
-    _instanceMembersByName[element.name]?.remove(element);
-    _instanceFunctionsByName[element.name]?.remove(element);
-  }
-
   ImpactUseCase get impactUse => IMPACT_USE;
 
   bool isProcessed(Element member) =>
@@ -486,8 +475,11 @@
     }
   }
 
-  void forgetElement(Element element, Compiler compiler) {
-    _forgetElement(element);
+  void forgetEntity(Element element, Compiler compiler) {
+    _universe.forgetElement(element, compiler);
+    _processedClasses.remove(element);
+    _instanceMembersByName[element.name]?.remove(element);
+    _instanceFunctionsByName[element.name]?.remove(element);
     generatedCode.remove(element);
     if (element is MemberElement) {
       for (Element closure in element.nestedClosures) {
@@ -502,7 +494,7 @@
   Iterable<Entity> get processedEntities => generatedCode.keys;
 
   @override
-  Iterable<ClassElement> get processedClasses => _processedClasses;
+  Iterable<ClassEntity> get processedClasses => _processedClasses;
 }
 
 void removeFromSet(Map<String, Set<Element>> map, Element element) {
diff --git a/pkg/compiler/lib/src/js_backend/mirrors_analysis.dart b/pkg/compiler/lib/src/js_backend/mirrors_analysis.dart
index c66c8f1..5207421 100644
--- a/pkg/compiler/lib/src/js_backend/mirrors_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/mirrors_analysis.dart
@@ -8,6 +8,7 @@
 import '../common/resolution.dart';
 import '../diagnostics/diagnostic_listener.dart';
 import '../elements/elements.dart';
+import '../elements/entities.dart';
 import '../universe/selector.dart';
 import '../universe/use.dart';
 import '../universe/world_impact.dart';
@@ -24,8 +25,8 @@
   /// Compute the impact for elements that are matched by the mirrors used
   /// annotation or, in lack thereof, all elements.
   WorldImpact computeImpactForReflectiveElements(
-      Iterable<ClassElement> recents,
-      Iterable<ClassElement> processedClasses,
+      Iterable<ClassEntity> recents,
+      Iterable<ClassEntity> processedClasses,
       Iterable<LibraryElement> loadedLibraries,
       {bool forResolution}) {
     MirrorsHandler handler = forResolution ? resolutionHandler : codegenHandler;
@@ -135,7 +136,7 @@
   /// [enclosingWasIncluded] provides a hint whether the enclosing element was
   /// needed for reflection.
   void _enqueueReflectiveElementsInClass(
-      ClassElement cls, Iterable<ClassElement> recents,
+      ClassElement cls, Iterable<ClassEntity> recents,
       {bool enclosingWasIncluded}) {
     if (cls.library.isInternalLibrary || cls.isInjected) return;
     bool includeClass = _shouldIncludeElementDueToMirrors(cls,
@@ -184,7 +185,7 @@
   /// Enqeue all local members of the library [lib] if they are required for
   /// reflection.
   void _enqueueReflectiveElementsInLibrary(
-      LibraryElement lib, Iterable<ClassElement> recents) {
+      LibraryElement lib, Iterable<ClassEntity> recents) {
     bool includeLibrary =
         _shouldIncludeElementDueToMirrors(lib, includedEnclosing: false);
     lib.forEachLocalMember((Element member) {
@@ -207,8 +208,8 @@
   /// annotation or, in lack thereof, all elements.
   // TODO(johnniwinther): Compute [WorldImpact] instead of enqueuing directly.
   void enqueueReflectiveElements(
-      Iterable<ClassElement> recents,
-      Iterable<ClassElement> processedClasses,
+      Iterable<ClassEntity> recents,
+      Iterable<ClassEntity> processedClasses,
       Iterable<LibraryElement> loadedLibraries) {
     if (!hasEnqueuedReflectiveElements) {
       _logEnqueueReflectiveAction("!START enqueueAll");
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types.dart b/pkg/compiler/lib/src/js_backend/runtime_types.dart
index 23740b3..590e99f 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types.dart
@@ -181,7 +181,7 @@
         InterfaceType interface = type;
         do {
           for (DartType argument in interface.typeArguments) {
-            universe.registerIsCheck(argument, compiler.resolution);
+            universe.registerIsCheck(argument);
           }
           interface = interface.element.supertype;
         } while (interface != null && !instantiatedTypes.contains(interface));
@@ -204,7 +204,7 @@
             InterfaceType instance = current.asInstanceOf(cls);
             if (instance == null) break;
             for (DartType argument in instance.typeArguments) {
-              universe.registerIsCheck(argument, compiler.resolution);
+              universe.registerIsCheck(argument);
             }
             current = current.element.supertype;
           } while (current != null && !instantiatedTypes.contains(current));
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
index a5e7b4c..af5e764 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
@@ -1152,7 +1152,7 @@
         .add(new jsAst.FunctionDeclaration(constructorName, constructorAst));
 
     String fieldNamesProperty = FIELD_NAMES_PROPERTY_NAME;
-    bool hasIsolateSupport = compiler.resolverWorld.hasIsolateSupport;
+    bool hasIsolateSupport = backend.hasIsolateSupport;
     jsAst.Node fieldNamesArray;
     if (hasIsolateSupport) {
       fieldNamesArray =
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
index 95c7dc4..68c2451 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/setup_program_builder.dart
@@ -138,7 +138,7 @@
         js.quoteName(namer.runtimeTypeName(compiler.coreClasses.objectClass)),
     'needsStructuredMemberInfo': emitter.needsStructuredMemberInfo,
     'usesMangledNames': compiler.commonElements.mirrorsLibrary != null ||
-        compiler.hasFunctionApplySupport,
+        backend.hasFunctionApplySupport,
     'tearOffCode': buildTearOffCode(backend),
     'nativeInfoHandler': nativeInfoHandler,
     'operatorIsPrefix': js.string(namer.operatorIsPrefix),
diff --git a/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart
index 55824e8..d104cd4 100644
--- a/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart
@@ -28,7 +28,7 @@
   jsAst.Statement generateInvokeMain() {
     Element main = compiler.mainFunction;
     jsAst.Expression mainCallClosure = null;
-    if (compiler.resolverWorld.hasIsolateSupport) {
+    if (backend.hasIsolateSupport) {
       Element isolateMain =
           helpers.isolateHelperLibrary.find(BackendHelpers.START_ROOT_ISOLATE);
       mainCallClosure = _buildIsolateSetupClosure(main, isolateMain);
diff --git a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
index d918135..94b014a 100644
--- a/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
+++ b/pkg/compiler/lib/src/js_emitter/metadata_collector.dart
@@ -247,8 +247,8 @@
       int i = source.requiredParameterCount;
       for (ParameterElement element in source.orderedOptionalParameters) {
         if (i >= target.requiredParameterCount && i < target.parameterCount) {
-          map[element] = target.orderedOptionalParameters[
-              i - target.requiredParameterCount];
+          map[element] = target
+              .orderedOptionalParameters[i - target.requiredParameterCount];
         }
         ++i;
       }
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
index 3fac271..1ee47ed 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
@@ -184,7 +184,7 @@
         _buildTypeToInterceptorMap(), _task.metadataCollector, finalizers,
         needsNativeSupport: needsNativeSupport,
         outputContainsConstantList: collector.outputContainsConstantList,
-        hasIsolateSupport: _compiler.hasIsolateSupport);
+        hasIsolateSupport: backend.hasIsolateSupport);
   }
 
   void _markEagerClasses() {
@@ -675,7 +675,7 @@
   }
 
   bool _methodCanBeApplied(FunctionElement method) {
-    return _compiler.hasFunctionApplySupport &&
+    return backend.hasFunctionApplySupport &&
         _compiler.closedWorld.getMightBePassedToApply(method);
   }
 
diff --git a/pkg/compiler/lib/src/kernel/kernel_visitor.dart b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
index 37d813e..a58ec7f 100644
--- a/pkg/compiler/lib/src/kernel/kernel_visitor.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
@@ -1230,11 +1230,11 @@
   @override
   ir.Expression visitCompoundIndexSet(SendSet node, Node receiver, Node index,
       AssignmentOperator operator, Node rhs, _) {
-    // TODO(sra): Find binary operator.
-    return buildIndexAccessor(receiver, index).buildCompoundAssignment(
+    return buildCompoundAssignment(
+        node,
+        buildIndexAccessor(receiver, index),
         kernel.irName(operator.selectorName, currentElement),
-        visitForValue(rhs),
-        voidContext: isVoidContext);
+        visitForValue(rhs));
   }
 
   @override
@@ -1513,7 +1513,12 @@
   @override
   ir.Expression visitIfNotNullDynamicPropertyGet(
       Send node, Node receiver, Name name, _) {
-    return buildNullAwarePropertyAccessor(receiver, name).buildSimpleRead();
+    Accessor accessor = buildNullAwarePropertyAccessor(receiver, name);
+    ir.Expression result = accessor.buildSimpleRead();
+    if (accessor.builtGetter != null) {
+      kernel.nodeToAst[accessor.builtGetter] = node;
+    }
+    return result;
   }
 
   @override
@@ -1526,8 +1531,10 @@
         new ir.ConditionalExpression(
             buildIsNull(new ir.VariableGet(receiver)),
             new ir.NullLiteral(),
-            buildInvokeSelector(new ir.VariableGet(receiver), selector,
-                buildArguments(arguments)),
+            associateNode(
+                buildInvokeSelector(new ir.VariableGet(receiver), selector,
+                                    buildArguments(arguments)),
+                receiverNode),
             null));
   }
 
@@ -1583,26 +1590,30 @@
         buildIndexAccessor(receiver, index).buildSimpleRead(), node);
   }
 
-  ir.Expression buildIndexPostfix(Accessor accessor, IncDecOperator operator) {
+  ir.Expression buildIndexPostfix(
+      Send node, Accessor accessor, IncDecOperator operator) {
     ir.Name name = kernel.irName(operator.selectorName, currentElement);
-    return accessor.buildPostfixIncrement(name, voidContext: isVoidContext);
+    return buildPostfixIncrement(node, accessor, name);
   }
 
   @override
   ir.Expression visitIndexPostfix(
       Send node, Node receiver, Node index, IncDecOperator operator, _) {
-    return buildIndexPostfix(buildIndexAccessor(receiver, index), operator);
+    return buildIndexPostfix(
+        node, buildIndexAccessor(receiver, index), operator);
   }
 
-  ir.Expression buildIndexPrefix(Accessor accessor, IncDecOperator operator) {
+  ir.Expression buildIndexPrefix(
+      Send node, Accessor accessor, IncDecOperator operator) {
     ir.Name name = kernel.irName(operator.selectorName, currentElement);
-    return accessor.buildPrefixIncrement(name, voidContext: isVoidContext);
+    return buildPrefixIncrement(node, accessor, name);
   }
 
   @override
   ir.Expression visitIndexPrefix(
       Send node, Node receiver, Node index, IncDecOperator operator, _) {
-    return buildIndexPrefix(buildIndexAccessor(receiver, index), operator);
+    return buildIndexPrefix(
+        node, buildIndexAccessor(receiver, index), operator);
   }
 
   @override
@@ -1725,29 +1736,49 @@
   ir.Expression buildCompound(
       Accessor accessor, CompoundRhs rhs, SendSet node) {
     ir.Name name = kernel.irName(rhs.operator.selectorName, currentElement);
-    ir.Expression result;
     switch (rhs.kind) {
       case CompoundKind.POSTFIX:
-        result =
-            accessor.buildPostfixIncrement(name, voidContext: isVoidContext);
-        break;
+        return buildPostfixIncrement(node, accessor, name);
 
       case CompoundKind.PREFIX:
-        result =
-            accessor.buildPrefixIncrement(name, voidContext: isVoidContext);
-        break;
+        return buildPrefixIncrement(node, accessor, name);
 
       case CompoundKind.ASSIGNMENT:
-        result = accessor.buildCompoundAssignment(name, visitForValue(rhs.rhs),
-            voidContext: isVoidContext);
-        break;
+        return buildCompoundAssignment(
+            node, accessor, name, visitForValue(rhs.rhs));
     }
+  }
+
+  ir.Expression buildCompoundAssignment(
+      SendSet node, Accessor accessor, ir.Name name, ir.Expression rhs) {
+    ir.Expression result =
+        accessor.buildCompoundAssignment(name, rhs, voidContext: isVoidContext);
+    associateCompoundComponents(accessor, node);
+    return result;
+  }
+
+  ir.Expression buildPrefixIncrement(
+      SendSet node, Accessor accessor, ir.Name name) {
+    ir.Expression result =
+        accessor.buildPrefixIncrement(name, voidContext: isVoidContext);
+    associateCompoundComponents(accessor, node);
+    return result;
+  }
+
+  ir.Expression buildPostfixIncrement(
+      SendSet node, Accessor accessor, ir.Name name) {
+    ir.Expression result =
+        accessor.buildPostfixIncrement(name, voidContext: isVoidContext);
+    associateCompoundComponents(accessor, node);
+    return result;
+  }
+
+  void associateCompoundComponents(Accessor accessor, Node node) {
     assert(accessor.builtBinary != null);
     kernel.nodeToAstOperator[accessor.builtBinary] = node;
     if (accessor.builtGetter != null) {
       kernel.nodeToAst[accessor.builtGetter] = node;
     }
-    return result;
   }
 
   @override
@@ -2252,12 +2283,11 @@
       AssignmentOperator operator,
       Node rhs,
       _) {
-    // TODO(sra): Find binary operator.
-    return buildSuperIndexAccessor(index, getter, setter)
-        .buildCompoundAssignment(
-            kernel.irName(operator.selectorName, currentElement),
-            visitForValue(rhs),
-            voidContext: isVoidContext);
+    return buildCompoundAssignment(
+        node,
+        buildSuperIndexAccessor(index, getter, setter),
+        kernel.irName(operator.selectorName, currentElement),
+        visitForValue(rhs));
   }
 
   @override
@@ -2436,7 +2466,7 @@
       MethodElement indexSetFunction, Node index, IncDecOperator operator, _) {
     Accessor accessor =
         buildSuperIndexAccessor(index, indexFunction, indexSetFunction);
-    return buildIndexPostfix(accessor, operator);
+    return buildIndexPostfix(node, accessor, operator);
   }
 
   @override
@@ -2444,7 +2474,7 @@
       MethodElement indexSetFunction, Node index, IncDecOperator operator, _) {
     Accessor accessor =
         buildSuperIndexAccessor(index, indexFunction, indexSetFunction);
-    return buildIndexPrefix(accessor, operator);
+    return buildIndexPrefix(node, accessor, operator);
   }
 
   @override
diff --git a/pkg/compiler/lib/src/native/ssa.dart b/pkg/compiler/lib/src/native/ssa.dart
index f3134c3..945995d 100644
--- a/pkg/compiler/lib/src/native/ssa.dart
+++ b/pkg/compiler/lib/src/native/ssa.dart
@@ -101,7 +101,7 @@
         // be proportional to the number of native methods, which is bounded
         // by the dart: libraries.
         js.js.uncachedExpressionTemplate(nativeMethodCall),
-        backend.dynamicType,
+        builder.commonMasks.dynamicType,
         inputs,
         effects: new SideEffects()));
     // TODO(johnniwinther): Provide source information.
@@ -122,6 +122,6 @@
         <HInstruction>[],
         new SideEffects(),
         null,
-        backend.dynamicType));
+        builder.commonMasks.dynamicType));
   }
 }
diff --git a/pkg/compiler/lib/src/resolution/operators.dart b/pkg/compiler/lib/src/resolution/operators.dart
index 499192f..b5d83d9 100644
--- a/pkg/compiler/lib/src/resolution/operators.dart
+++ b/pkg/compiler/lib/src/resolution/operators.dart
@@ -8,7 +8,11 @@
 import '../universe/call_structure.dart' show CallStructure;
 import '../universe/selector.dart' show Selector, SelectorKind;
 
-enum UnaryOperatorKind { NOT, NEGATE, COMPLEMENT, }
+enum UnaryOperatorKind {
+  NOT,
+  NEGATE,
+  COMPLEMENT,
+}
 
 class UnaryOperator {
   final UnaryOperatorKind kind;
diff --git a/pkg/compiler/lib/src/resolution/resolution.dart b/pkg/compiler/lib/src/resolution/resolution.dart
index d5334f1..923952c 100644
--- a/pkg/compiler/lib/src/resolution/resolution.dart
+++ b/pkg/compiler/lib/src/resolution/resolution.dart
@@ -64,10 +64,8 @@
 class ResolverTask extends CompilerTask {
   final ConstantCompiler constantCompiler;
   final Resolution resolution;
-  final OpenWorld world;
 
-  ResolverTask(
-      this.resolution, this.constantCompiler, this.world, Measurer measurer)
+  ResolverTask(this.resolution, this.constantCompiler, Measurer measurer)
       : super(measurer);
 
   String get name => 'Resolver';
@@ -80,6 +78,7 @@
   ParsingContext get parsingContext => resolution.parsingContext;
   CompilerOptions get options => resolution.options;
   ResolutionEnqueuer get enqueuer => resolution.enqueuer;
+  OpenWorld get world => enqueuer.universe.openWorld;
 
   ResolutionImpact resolve(Element element) {
     return measure(() {
diff --git a/pkg/compiler/lib/src/resolution/resolution_result.dart b/pkg/compiler/lib/src/resolution/resolution_result.dart
index b034712..c3ba485 100644
--- a/pkg/compiler/lib/src/resolution/resolution_result.dart
+++ b/pkg/compiler/lib/src/resolution/resolution_result.dart
@@ -10,7 +10,14 @@
 import '../tree/tree.dart';
 import '../universe/call_structure.dart' show CallStructure;
 
-enum ResultKind { NONE, ELEMENT, TYPE, ASSERT, CONSTANT, PREFIX, }
+enum ResultKind {
+  NONE,
+  ELEMENT,
+  TYPE,
+  ASSERT,
+  CONSTANT,
+  PREFIX,
+}
 
 /// The result of resolving a node.
 abstract class ResolutionResult {
diff --git a/pkg/compiler/lib/src/resolution/send_structure.dart b/pkg/compiler/lib/src/resolution/send_structure.dart
index 52bf4dd..0d0de9f 100644
--- a/pkg/compiler/lib/src/resolution/send_structure.dart
+++ b/pkg/compiler/lib/src/resolution/send_structure.dart
@@ -2059,7 +2059,11 @@
   }
 }
 
-enum NewStructureKind { NEW_INVOKE, CONST_INVOKE, LATE_CONST, }
+enum NewStructureKind {
+  NEW_INVOKE,
+  CONST_INVOKE,
+  LATE_CONST,
+}
 
 /// The structure for a [NewExpression] of a new invocation.
 abstract class NewStructure<R, A> implements SemanticSendStructure<R, A> {
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 2fee721..d630c95 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -408,7 +408,7 @@
       List<HInstruction> providedArguments, ast.Node currentNode,
       {InterfaceType instanceType}) {
     registry
-        .addImpact(backend.registerStaticUse(element, forResolution: false));
+        .addImpact(backend.registerUsedElement(element, forResolution: false));
 
     if (backend.isJsInterop(element) && !element.isFactoryConstructor) {
       // We only inline factory JavaScript interop constructors.
@@ -441,8 +441,7 @@
           message: "Missing selector for inlining of $element."));
       if (selector != null) {
         if (!selector.applies(function)) return false;
-        if (mask != null &&
-            !mask.canHit(function, selector, compiler.closedWorld)) {
+        if (mask != null && !mask.canHit(function, selector, closedWorld)) {
           return false;
         }
       }
@@ -567,7 +566,7 @@
           !element.isGenerativeConstructorBody &&
           (mask == null || mask.isNullable)) {
         addWithPosition(
-            new HFieldGet(null, providedArguments[0], backend.dynamicType,
+            new HFieldGet(null, providedArguments[0], commonMasks.dynamicType,
                 isAssignable: false),
             currentNode);
       }
@@ -685,7 +684,7 @@
    */
   HGraph buildMethod(FunctionElement functionElement) {
     assert(invariant(functionElement, functionElement.isImplementation));
-    graph.calledInLoop = compiler.closedWorld.isCalledInLoop(functionElement);
+    graph.calledInLoop = closedWorld.isCalledInLoop(functionElement);
     ast.FunctionExpression function = resolvedAst.node;
     assert(function != null);
     assert(elements.getFunctionDefinition(function) != null);
@@ -711,7 +710,7 @@
             visitCondition: () {
               HParameterValue parameter = parameters.values.first;
               push(new HIdentity(parameter, graph.addConstantNull(compiler),
-                  null, backend.boolType));
+                  null, commonMasks.boolType));
             },
             visitThen: () {
               closeAndGotoExit(new HReturn(
@@ -744,7 +743,7 @@
   // TODO(sra): Figure out how to keep comment anchored without effects.
   void addComment(String text) {
     add(new HForeignCode(js.js.statementTemplateYielding(new js.Comment(text)),
-        backend.dynamicType, <HInstruction>[],
+        commonMasks.dynamicType, <HInstruction>[],
         isStatement: true));
   }
 
@@ -754,7 +753,8 @@
     HInstruction thisInstruction = localsHandler.readThis();
     // Use dynamic type because the type computed by the inferrer is
     // narrowed to the type annotation.
-    HInstruction parameter = new HParameterValue(field, backend.dynamicType);
+    HInstruction parameter =
+        new HParameterValue(field, commonMasks.dynamicType);
     // Add the parameter as the last instruction of the entry block.
     // If the method is intercepted, we want the actual receiver
     // to be the first parameter.
@@ -1284,8 +1284,8 @@
     }, includeSuperAndInjectedMembers: true);
 
     InterfaceType type = classElement.thisType;
-    TypeMask ssaType = new TypeMask.nonNullExact(
-        classElement.declaration, compiler.closedWorld);
+    TypeMask ssaType =
+        new TypeMask.nonNullExact(classElement.declaration, closedWorld);
     List<DartType> instantiatedTypes;
     addInlinedInstantiation(type);
     if (!currentInlinedInstantiations.isEmpty) {
@@ -1311,7 +1311,7 @@
             TypeInfoExpressionKind.INSTANCE,
             classElement.thisType,
             typeArguments,
-            backend.dynamicType);
+            commonMasks.dynamicType);
         add(typeInfo);
         constructorArguments.add(typeInfo);
       }
@@ -1331,7 +1331,7 @@
       // Null guard ensures an error if we are being called from an explicit
       // 'new' of the constructor instead of via an upgrade. It is optimized out
       // if there are field initializers.
-      add(new HFieldGet(null, newObject, backend.dynamicType,
+      add(new HFieldGet(null, newObject, commonMasks.dynamicType,
           isAssignable: false));
       for (int i = 0; i < fields.length; i++) {
         add(new HFieldSet(fields[i], newObject, constructorArguments[i]));
@@ -1398,9 +1398,8 @@
         pop();
       } else {
         HInvokeConstructorBody invoke = new HInvokeConstructorBody(
-            body.declaration, bodyCallInputs, backend.nonNullType);
-        invoke.sideEffects =
-            compiler.closedWorld.getSideEffectsOfElement(constructor);
+            body.declaration, bodyCallInputs, commonMasks.nonNullType);
+        invoke.sideEffects = closedWorld.getSideEffectsOfElement(constructor);
         add(invoke);
       }
     }
@@ -1437,7 +1436,7 @@
         backend.classNeedsRti(enclosing)) {
       enclosing.typeVariables.forEach((TypeVariableType typeVariable) {
         HParameterValue param =
-            addParameter(typeVariable.element, backend.nonNullType);
+            addParameter(typeVariable.element, commonMasks.nonNullType);
         localsHandler.directLocals[
             localsHandler.getTypeVariableAsLocal(typeVariable)] = param;
       });
@@ -1501,7 +1500,7 @@
           "${n(element)}";
       HConstant nameConstant = addConstantString(name);
       add(new HInvokeStatic(backend.helpers.traceHelper,
-          <HInstruction>[nameConstant], backend.dynamicType));
+          <HInstruction>[nameConstant], commonMasks.dynamicType));
     }
   }
 
@@ -1512,7 +1511,7 @@
       HConstant idConstant = graph.addConstantInt(element.hashCode, compiler);
       HConstant nameConstant = addConstantString(element.name);
       add(new HInvokeStatic(backend.helpers.traceHelper,
-          <HInstruction>[idConstant, nameConstant], backend.dynamicType));
+          <HInstruction>[idConstant, nameConstant], commonMasks.dynamicType));
     }
   }
 
@@ -1558,7 +1557,7 @@
           value, compiler.coreTypes.boolType,
           kind: HTypeConversion.BOOLEAN_CONVERSION_CHECK);
     }
-    HInstruction result = new HBoolify(value, backend.boolType);
+    HInstruction result = new HBoolify(value, commonMasks.boolType);
     add(result);
     return result;
   }
@@ -1871,8 +1870,7 @@
       capturedVariables.add(localsHandler.readLocal(capturedLocal));
     });
 
-    TypeMask type =
-        new TypeMask.nonNullExact(closureClassElement, compiler.closedWorld);
+    TypeMask type = new TypeMask.nonNullExact(closureClassElement, closedWorld);
     push(new HCreate(closureClassElement, capturedVariables, type)
       ..sourceInformation = sourceInformationBuilder.buildCreate(node));
 
@@ -1976,7 +1974,7 @@
     visit(expression);
     SourceInformation sourceInformation =
         sourceInformationBuilder.buildGeneric(node);
-    push(new HNot(popBoolified(), backend.boolType)
+    push(new HNot(popBoolified(), commonMasks.boolType)
       ..sourceInformation = sourceInformation);
   }
 
@@ -2021,7 +2019,8 @@
   @override
   void visitNotEquals(ast.Send node, ast.Node left, ast.Node right, _) {
     handleBinary(node, left, right);
-    pushWithPosition(new HNot(popBoolified(), backend.boolType), node.selector);
+    pushWithPosition(
+        new HNot(popBoolified(), commonMasks.boolType), node.selector);
   }
 
   void handleBinary(ast.Send node, ast.Node left, ast.Node right) {
@@ -2137,8 +2136,7 @@
     // handler in the case of lists, because the constant handler
     // does not look at elements in the list.
     TypeMask type = TypeMaskFactory.inferredTypeForElement(field, compiler);
-    if (!type.containsAll(compiler.closedWorld) &&
-        !instruction.isConstantNull()) {
+    if (!type.containsAll(closedWorld) && !instruction.isConstantNull()) {
       // TODO(13429): The inferrer should know that an element
       // cannot be null.
       instruction.instructionType = type.nonNullable();
@@ -2202,7 +2200,7 @@
     // creating an [HStatic].
     SourceInformation sourceInformation =
         sourceInformationBuilder.buildGet(node);
-    push(new HStatic(method, backend.nonNullType)
+    push(new HStatic(method, commonMasks.nonNullType)
       ..sourceInformation = sourceInformation);
   }
 
@@ -2376,13 +2374,14 @@
   }
 
   HInstruction invokeInterceptor(HInstruction receiver) {
-    HInterceptor interceptor = new HInterceptor(receiver, backend.nonNullType);
+    HInterceptor interceptor =
+        new HInterceptor(receiver, commonMasks.nonNullType);
     add(interceptor);
     return interceptor;
   }
 
   HLiteralList buildLiteralList(List<HInstruction> inputs) {
-    return new HLiteralList(inputs, backend.extendableArrayType);
+    return new HLiteralList(inputs, commonMasks.extendableArrayType);
   }
 
   @override
@@ -2417,7 +2416,7 @@
     HInstruction expressionInstruction = visitAndPop(expression);
     HInstruction instruction = buildIsNode(node, type, expressionInstruction);
     add(instruction);
-    push(new HNot(instruction, backend.boolType));
+    push(new HNot(instruction, commonMasks.boolType));
   }
 
   HInstruction buildIsNode(
@@ -2435,7 +2434,7 @@
       }
       generateTypeError(node, message);
       HInstruction call = pop();
-      return new HIs.compound(type, expression, call, backend.boolType);
+      return new HIs.compound(type, expression, call, commonMasks.boolType);
     } else if (type.isFunctionType) {
       List arguments = [buildFunctionType(type), expression];
       pushInvokeDynamic(
@@ -2444,15 +2443,15 @@
               CallStructure.ONE_ARG),
           null,
           arguments);
-      return new HIs.compound(type, expression, pop(), backend.boolType);
+      return new HIs.compound(type, expression, pop(), commonMasks.boolType);
     } else if (type.isTypeVariable) {
       HInstruction runtimeType =
           typeBuilder.addTypeVariableReference(type, sourceElement);
       Element helper = helpers.checkSubtypeOfRuntimeType;
       List<HInstruction> inputs = <HInstruction>[expression, runtimeType];
-      pushInvokeStatic(null, helper, inputs, typeMask: backend.boolType);
+      pushInvokeStatic(null, helper, inputs, typeMask: commonMasks.boolType);
       HInstruction call = pop();
-      return new HIs.variable(type, expression, call, backend.boolType);
+      return new HIs.variable(type, expression, call, commonMasks.boolType);
     } else if (RuntimeTypes.hasTypeArguments(type)) {
       ClassElement element = type.element;
       Element helper = helpers.checkSubtype;
@@ -2461,8 +2460,7 @@
       add(representations);
       js.Name operator = backend.namer.operatorIs(element);
       HInstruction isFieldName = addConstantStringFromName(operator);
-      HInstruction asFieldName = compiler.closedWorld
-              .hasAnyStrictSubtype(element)
+      HInstruction asFieldName = closedWorld.hasAnyStrictSubtype(element)
           ? addConstantStringFromName(backend.namer.substitutionName(element))
           : graph.addConstantNull(compiler);
       List<HInstruction> inputs = <HInstruction>[
@@ -2471,17 +2469,17 @@
         representations,
         asFieldName
       ];
-      pushInvokeStatic(node, helper, inputs, typeMask: backend.boolType);
+      pushInvokeStatic(node, helper, inputs, typeMask: commonMasks.boolType);
       HInstruction call = pop();
-      return new HIs.compound(type, expression, call, backend.boolType);
+      return new HIs.compound(type, expression, call, commonMasks.boolType);
     } else {
       if (backend.hasDirectCheckFor(type)) {
-        return new HIs.direct(type, expression, backend.boolType);
+        return new HIs.direct(type, expression, commonMasks.boolType);
       }
       // The interceptor is not always needed.  It is removed by optimization
       // when the receiver type or tested type permit.
-      return new HIs.raw(
-          type, expression, invokeInterceptor(expression), backend.boolType);
+      return new HIs.raw(type, expression, invokeInterceptor(expression),
+          commonMasks.boolType);
     }
   }
 
@@ -2698,7 +2696,7 @@
     if (inputs.length != 2) {
       reporter.internalError(node.argumentsNode, 'Two arguments expected.');
     }
-    push(new HStringConcat(inputs[0], inputs[1], backend.stringType));
+    push(new HStringConcat(inputs[0], inputs[1], commonMasks.stringType));
   }
 
   void handleForeignJsCurrentIsolateContext(ast.Send node) {
@@ -2707,12 +2705,12 @@
           node, 'Too many arguments to JS_CURRENT_ISOLATE_CONTEXT.');
     }
 
-    if (!compiler.hasIsolateSupport) {
+    if (!backend.hasIsolateSupport) {
       // If the isolate library is not used, we just generate code
       // to fetch the static state.
       String name = backend.namer.staticStateHolder;
       push(new HForeignCode(
-          js.js.parseForeignJS(name), backend.dynamicType, <HInstruction>[],
+          js.js.parseForeignJS(name), commonMasks.dynamicType, <HInstruction>[],
           nativeBehavior: native.NativeBehavior.DEPENDS_OTHER));
     } else {
       // Call a helper method from the isolate library. The isolate
@@ -2722,7 +2720,7 @@
       if (element == null) {
         reporter.internalError(node, 'Isolate library and compiler mismatch.');
       }
-      pushInvokeStatic(null, element, [], typeMask: backend.dynamicType);
+      pushInvokeStatic(null, element, [], typeMask: commonMasks.dynamicType);
     }
   }
 
@@ -2903,12 +2901,12 @@
 
   void handleForeignJsCallInIsolate(ast.Send node) {
     Link<ast.Node> link = node.arguments;
-    if (!compiler.hasIsolateSupport) {
+    if (!backend.hasIsolateSupport) {
       // If the isolate library is not used, we just invoke the
       // closure.
       visit(link.tail.head);
       push(new HInvokeClosure(new Selector.callClosure(0),
-          <HInstruction>[pop()], backend.dynamicType));
+          <HInstruction>[pop()], commonMasks.dynamicType));
     } else {
       // Call a helper method from the isolate library.
       Element element = helpers.callInIsolate;
@@ -2917,7 +2915,8 @@
       }
       List<HInstruction> inputs = <HInstruction>[];
       addGenericSendArgumentsToList(link, inputs);
-      pushInvokeStatic(node, element, inputs, typeMask: backend.dynamicType);
+      pushInvokeStatic(node, element, inputs,
+          typeMask: commonMasks.dynamicType);
     }
   }
 
@@ -2947,7 +2946,7 @@
     push(new HForeignCode(
         js.js.expressionTemplateYielding(
             backend.emitter.staticFunctionAccess(function)),
-        backend.dynamicType,
+        commonMasks.dynamicType,
         <HInstruction>[],
         nativeBehavior: native.NativeBehavior.PURE));
     return params;
@@ -2970,7 +2969,7 @@
     SideEffects sideEffects = new SideEffects.empty();
     sideEffects.setAllSideEffects();
     push(new HForeignCode(js.js.parseForeignJS("$isolateName = #"),
-        backend.dynamicType, <HInstruction>[pop()],
+        commonMasks.dynamicType, <HInstruction>[pop()],
         nativeBehavior: native.NativeBehavior.CHANGES_OTHER,
         effects: sideEffects));
   }
@@ -2980,7 +2979,7 @@
       reporter.internalError(node.argumentsNode, 'Too many arguments.');
     }
     push(new HForeignCode(js.js.parseForeignJS(backend.namer.staticStateHolder),
-        backend.dynamicType, <HInstruction>[],
+        commonMasks.dynamicType, <HInstruction>[],
         nativeBehavior: native.NativeBehavior.DEPENDS_OTHER));
   }
 
@@ -3030,7 +3029,7 @@
     var inputs = [
       graph.addConstantString(new ast.DartString.literal(loadId), compiler)
     ];
-    push(new HInvokeStatic(loadFunction, inputs, backend.nonNullType,
+    push(new HInvokeStatic(loadFunction, inputs, commonMasks.nonNullType,
         targetCanThrow: false)..sourceInformation = sourceInformation);
   }
 
@@ -3085,7 +3084,7 @@
           argumentsInstruction,
           argumentNamesInstruction
         ],
-        typeMask: backend.dynamicType);
+        typeMask: commonMasks.dynamicType);
 
     var inputs = <HInstruction>[pop()];
     push(buildInvokeSuper(Selectors.noSuchMethod_, element, inputs));
@@ -3233,7 +3232,8 @@
   void visitSuperNotEquals(
       ast.Send node, MethodElement method, ast.Node argument, _) {
     handleSuperMethodInvoke(node, method);
-    pushWithPosition(new HNot(popBoolified(), backend.boolType), node.selector);
+    pushWithPosition(
+        new HNot(popBoolified(), commonMasks.boolType), node.selector);
   }
 
   @override
@@ -3262,11 +3262,9 @@
   }
 
   bool needsSubstitutionForTypeVariableAccess(ClassElement cls) {
-    ClosedWorld closedWorld = compiler.closedWorld;
     if (closedWorld.isUsedAsMixin(cls)) return true;
 
-    return compiler.closedWorld.anyStrictSubclassOf(cls,
-        (ClassElement subclass) {
+    return closedWorld.anyStrictSubclassOf(cls, (ClassElement subclass) {
       return !rti.isTrivialSubstitution(subclass, cls);
     });
   }
@@ -3292,7 +3290,7 @@
     Element typeInfoSetterElement = helpers.setRuntimeTypeInfo;
     pushInvokeStatic(
         null, typeInfoSetterElement, <HInstruction>[newObject, typeInfo],
-        typeMask: backend.dynamicType,
+        typeMask: commonMasks.dynamicType,
         sourceInformation: newObject.sourceInformation);
 
     // The new object will now be referenced through the
@@ -3324,13 +3322,13 @@
               originalElement, send, compiler)) {
         isFixedList = true;
         TypeMask inferred = _inferredTypeOfNewList(send);
-        return inferred.containsAll(compiler.closedWorld)
-            ? backend.fixedArrayType
+        return inferred.containsAll(closedWorld)
+            ? commonMasks.fixedArrayType
             : inferred;
       } else if (isGrowableListConstructorCall) {
         TypeMask inferred = _inferredTypeOfNewList(send);
-        return inferred.containsAll(compiler.closedWorld)
-            ? backend.extendableArrayType
+        return inferred.containsAll(closedWorld)
+            ? commonMasks.extendableArrayType
             : inferred;
       } else if (Elements.isConstructorOfTypedArraySubclass(
           originalElement, compiler)) {
@@ -3338,9 +3336,8 @@
         TypeMask inferred = _inferredTypeOfNewList(send);
         ClassElement cls = element.enclosingClass;
         assert(backend.isNative(cls.thisType.element));
-        return inferred.containsAll(compiler.closedWorld)
-            ? new TypeMask.nonNullExact(
-                cls.thisType.element, compiler.closedWorld)
+        return inferred.containsAll(closedWorld)
+            ? new TypeMask.nonNullExact(cls.thisType.element, closedWorld)
             : inferred;
       } else if (element.isGenerativeConstructor) {
         ClassElement cls = element.enclosingClass;
@@ -3348,8 +3345,7 @@
           // An error will be thrown.
           return new TypeMask.nonNullEmpty();
         } else {
-          return new TypeMask.nonNullExact(
-              cls.thisType.element, compiler.closedWorld);
+          return new TypeMask.nonNullExact(cls.thisType.element, closedWorld);
         }
       } else {
         return TypeMaskFactory.inferredReturnTypeForElement(
@@ -3427,7 +3423,7 @@
       return;
     }
 
-    var inputs = <HInstruction>[];
+    List<HInstruction> inputs = <HInstruction>[];
     if (constructor.isGenerativeConstructor &&
         backend.isNativeOrExtendsNative(constructor.enclosingClass) &&
         !backend.isJsInterop(constructor)) {
@@ -3439,9 +3435,12 @@
 
     TypeMask elementType = computeType(constructor);
     if (isFixedListConstructorCall) {
-      if (!inputs[0].isNumber(compiler)) {
-        HTypeConversion conversion = new HTypeConversion(null,
-            HTypeConversion.ARGUMENT_TYPE_CHECK, backend.numType, inputs[0]);
+      if (!inputs[0].isNumber(closedWorld)) {
+        HTypeConversion conversion = new HTypeConversion(
+            null,
+            HTypeConversion.ARGUMENT_TYPE_CHECK,
+            commonMasks.numType,
+            inputs[0]);
         add(conversion);
         inputs[0] = conversion;
       }
@@ -3453,7 +3452,7 @@
       // TODO(sra): Array allocation should be an instruction so that canThrow
       // can depend on a length type discovered in optimization.
       bool canThrow = true;
-      if (inputs[0].isInteger(compiler) && inputs[0] is HConstant) {
+      if (inputs[0].isInteger(closedWorld) && inputs[0] is HConstant) {
         var constant = inputs[0];
         int value = constant.constant.primitiveValue;
         if (0 <= value && value < 0x100000000) canThrow = false;
@@ -3468,7 +3467,7 @@
         js.Template code = js.js.parseForeignJS(r'#.fixed$length = Array');
         // We set the instruction as [canThrow] to avoid it being dead code.
         // We need a finer grained side effect.
-        add(new HForeignCode(code, backend.nullType, [stack.last],
+        add(new HForeignCode(code, commonMasks.nullType, [stack.last],
             throwBehavior: native.NativeThrowBehavior.MAY));
       }
     } else if (isGrowableListConstructorCall) {
@@ -3593,7 +3592,8 @@
 
     if (function == compiler.commonElements.identicalFunction) {
       pushWithPosition(
-          new HIdentity(inputs[0], inputs[1], null, backend.boolType), node);
+          new HIdentity(inputs[0], inputs[1], null, commonMasks.boolType),
+          node);
       return;
     } else {
       pushInvokeStatic(node, function, inputs,
@@ -3798,7 +3798,7 @@
       HInstruction value = typeBuilder.analyzeTypeArgument(type, sourceElement,
           sourceInformation: sourceInformationBuilder.buildGet(node));
       pushInvokeStatic(node, helpers.runtimeTypeToString, [value],
-          typeMask: backend.stringType);
+          typeMask: commonMasks.stringType);
       pushInvokeStatic(node, helpers.createRuntimeType, [pop()]);
     }
   }
@@ -3821,7 +3821,7 @@
     List<HInstruction> inputs = <HInstruction>[target];
     addDynamicSendArgumentsToList(node, inputs);
     push(new HInvokeClosure(
-        new Selector.callClosureFrom(selector), inputs, backend.dynamicType)
+        new Selector.callClosureFrom(selector), inputs, commonMasks.dynamicType)
       ..sourceInformation = sourceInformation);
   }
 
@@ -3970,11 +3970,10 @@
     bool isOptimizableOperationOnIndexable(Selector selector, Element element) {
       bool isLength = selector.isGetter && selector.name == "length";
       if (isLength || selector.isIndex) {
-        return compiler.closedWorld.isSubtypeOf(
+        return closedWorld.isSubtypeOf(
             element.enclosingClass.declaration, helpers.jsIndexableClass);
       } else if (selector.isIndexSet) {
-        return compiler.closedWorld.isSubtypeOf(
-            element.enclosingClass.declaration,
+        return closedWorld.isSubtypeOf(element.enclosingClass.declaration,
             helpers.jsMutableIndexableClass);
       } else {
         return false;
@@ -3997,7 +3996,7 @@
       return false;
     }
 
-    Element element = compiler.closedWorld.locateSingleElement(selector, mask);
+    Element element = closedWorld.locateSingleElement(selector, mask);
     if (element != null &&
         !element.isField &&
         !(element.isGetter && selector.isCall) &&
@@ -4067,14 +4066,14 @@
         nativeBehavior.typesReturned.add(constructor.enclosingClass.thisType);
       }
       return new HForeignCode(
-          codeTemplate, backend.dynamicType, filteredArguments,
+          codeTemplate, commonMasks.dynamicType, filteredArguments,
           nativeBehavior: nativeBehavior)
         ..sourceInformation = sourceInformation;
     }
     var target = new HForeignCode(
         js.js.parseForeignJS("${backend.namer.fixedBackendPath(element)}."
             "${backend.nativeData.getFixedBackendName(element)}"),
-        backend.dynamicType,
+        commonMasks.dynamicType,
         <HInstruction>[]);
     add(target);
     // Strip off trailing arguments that were not specified.
@@ -4125,7 +4124,7 @@
     js.Template codeTemplate = js.js.parseForeignJS(code);
     nativeBehavior.codeTemplate = codeTemplate;
 
-    return new HForeignCode(codeTemplate, backend.dynamicType, inputs,
+    return new HForeignCode(codeTemplate, commonMasks.dynamicType, inputs,
         nativeBehavior: nativeBehavior)..sourceInformation = sourceInformation;
   }
 
@@ -4145,7 +4144,7 @@
       typeMask =
           TypeMaskFactory.inferredReturnTypeForElement(element, compiler);
     }
-    bool targetCanThrow = !compiler.closedWorld.getCannotThrow(element);
+    bool targetCanThrow = !closedWorld.getCannotThrow(element);
     // TODO(5346): Try to avoid the need for calling [declaration] before
     var instruction;
     if (backend.isJsInterop(element)) {
@@ -4160,8 +4159,7 @@
         instruction.instantiatedTypes =
             new List<DartType>.from(currentInlinedInstantiations);
       }
-      instruction.sideEffects =
-          compiler.closedWorld.getSideEffectsOfElement(element);
+      instruction.sideEffects = closedWorld.getSideEffectsOfElement(element);
     }
     if (location == null) {
       push(instruction);
@@ -4195,7 +4193,7 @@
         selector, inputs, type, sourceInformation,
         isSetter: selector.isSetter || selector.isIndexSet);
     instruction.sideEffects =
-        compiler.closedWorld.getSideEffectsOfSelector(selector, null);
+        closedWorld.getSideEffectsOfSelector(selector, null);
     return instruction;
   }
 
@@ -5199,8 +5197,8 @@
     visit(node.expression);
     HInstruction awaited = pop();
     // TODO(herhut): Improve this type.
-    push(new HAwait(awaited,
-        new TypeMask.subclass(coreClasses.objectClass, compiler.closedWorld)));
+    push(new HAwait(
+        awaited, new TypeMask.subclass(coreClasses.objectClass, closedWorld)));
   }
 
   visitTypeAnnotation(ast.TypeAnnotation node) {
@@ -5259,15 +5257,14 @@
     }
 
     TypeMask type = _inferredTypeOfNewList(node);
-    if (!type.containsAll(compiler.closedWorld)) {
+    if (!type.containsAll(closedWorld)) {
       instruction.instructionType = type;
     }
     stack.add(instruction);
   }
 
   _inferredTypeOfNewList(ast.Node node) =>
-      _resultOf(sourceElement).typeOfNewList(node) ??
-      compiler.closedWorld.commonMasks.dynamicType;
+      _resultOf(sourceElement).typeOfNewList(node) ?? commonMasks.dynamicType;
 
   visitConditional(ast.Conditional node) {
     SsaBranchBuilder brancher = new SsaBranchBuilder(this, compiler, node);
@@ -5366,9 +5363,7 @@
       pushInvokeDynamic(node, selector, mask, [streamIterator]);
       HInstruction future = pop();
       push(new HAwait(
-          future,
-          new TypeMask.subclass(
-              coreClasses.objectClass, compiler.closedWorld)));
+          future, new TypeMask.subclass(coreClasses.objectClass, closedWorld)));
       return popBoolified();
     }
 
@@ -5404,9 +5399,7 @@
     }, () {
       pushInvokeDynamic(node, Selectors.cancel, null, [streamIterator]);
       push(new HAwait(
-          pop(),
-          new TypeMask.subclass(
-              coreClasses.objectClass, compiler.closedWorld)));
+          pop(), new TypeMask.subclass(coreClasses.objectClass, closedWorld)));
       pop();
     });
   }
@@ -5424,7 +5417,6 @@
 
     TypeMask mask = elementInferenceResults.typeOfIterator(node);
 
-    ClosedWorld closedWorld = compiler.closedWorld;
     if (mask != null &&
         mask.satisfies(helpers.jsIndexableClass, closedWorld) &&
         // String is indexable but not iterable.
@@ -5503,7 +5495,7 @@
     //     }
     Element loopVariable = elements.getForInVariable(node);
     SyntheticLocal indexVariable = new SyntheticLocal('_i', loopVariable);
-    TypeMask boolType = backend.boolType;
+    TypeMask boolType = commonMasks.boolType;
 
     // These variables are shared by initializer, condition, body and update.
     HInstruction array; // Set in buildInitializer.
@@ -5513,7 +5505,7 @@
     HInstruction buildGetLength() {
       MemberElement lengthElement = helpers.jsIndexableLength;
       HFieldGet result = new HFieldGet(
-          lengthElement, array, backend.positiveIntType,
+          lengthElement, array, commonMasks.positiveIntType,
           isAssignable: !isFixed);
       add(result);
       return result;
@@ -5584,7 +5576,7 @@
       HInstruction index = localsHandler.readLocal(indexVariable);
       HInstruction one = graph.addConstantInt(1, compiler);
       HInstruction addInstruction =
-          new HAdd(index, one, null, backend.positiveIntType);
+          new HAdd(index, one, null, commonMasks.positiveIntType);
       add(addInstruction);
       localsHandler.updateLocal(indexVariable, addInstruction);
     }
@@ -5705,12 +5697,12 @@
     // The instruction type will always be a subtype of the mapLiteralClass, but
     // type inference might discover a more specific type, or find nothing (in
     // dart2js unit tests).
-    TypeMask mapType = new TypeMask.nonNullSubtype(
-        helpers.mapLiteralClass, compiler.closedWorld);
+    TypeMask mapType =
+        new TypeMask.nonNullSubtype(helpers.mapLiteralClass, closedWorld);
     TypeMask returnTypeMask =
         TypeMaskFactory.inferredReturnTypeForElement(constructor, compiler);
     TypeMask instructionType =
-        mapType.intersection(returnTypeMask, compiler.closedWorld);
+        mapType.intersection(returnTypeMask, closedWorld);
 
     addInlinedInstantiation(expectedType);
     pushInvokeStatic(node, constructor, inputs,
@@ -5946,7 +5938,7 @@
       void buildCondition() {
         js.Template code = js.js.parseForeignJS('#');
         push(new HForeignCode(
-            code, backend.boolType, [localsHandler.readLocal(switchTarget)],
+            code, commonMasks.boolType, [localsHandler.readLocal(switchTarget)],
             nativeBehavior: native.NativeBehavior.PURE));
       }
 
@@ -6228,7 +6220,7 @@
       // Note that the name of this local is irrelevant.
       SyntheticLocal local =
           new SyntheticLocal('exception', localsHandler.executableContext);
-      exception = new HLocalValue(local, backend.nonNullType);
+      exception = new HLocalValue(local, commonMasks.nonNullType);
       add(exception);
       HInstruction oldRethrowableException = rethrowableException;
       rethrowableException = exception;
@@ -6538,7 +6530,7 @@
     //      conversions.
     //   2. The value can be primitive, because the library stringifier has
     //      fast-path code for most primitives.
-    if (expression.canBePrimitive(compiler)) {
+    if (expression.canBePrimitive(builder.closedWorld)) {
       append(stringify(node, expression));
       return;
     }
@@ -6548,7 +6540,7 @@
     Selector selector = Selectors.toString_;
     TypeMask type = TypeMaskFactory.inferredTypeForSelector(
         selector, expression.instructionType, compiler);
-    if (type.containsOnlyString(compiler.closedWorld)) {
+    if (type.containsOnlyString(builder.closedWorld)) {
       builder.pushInvokeDynamic(node, selector, expression.instructionType,
           <HInstruction>[expression]);
       append(builder.pop());
@@ -6581,14 +6573,14 @@
 
   HInstruction concat(HInstruction left, HInstruction right) {
     HInstruction instruction =
-        new HStringConcat(left, right, builder.backend.stringType);
+        new HStringConcat(left, right, builder.commonMasks.stringType);
     builder.add(instruction);
     return instruction;
   }
 
   HInstruction stringify(ast.Node node, HInstruction expression) {
     HInstruction instruction =
-        new HStringify(expression, builder.backend.stringType);
+        new HStringify(expression, builder.commonMasks.stringType);
     builder.add(instruction);
     return instruction;
   }
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 44c1c55..f3e651b 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:kernel/ast.dart' as ir;
+import 'package:kernel/text/ast_to_text.dart' show debugNodeToString;
 
 import '../closure.dart';
 import '../common.dart';
@@ -31,6 +32,7 @@
 import '../universe/selector.dart';
 import '../universe/use.dart' show StaticUse, TypeUse;
 import '../universe/side_effects.dart' show SideEffects;
+import '../world.dart' show ClosedWorld;
 import 'graph_builder.dart';
 import 'kernel_ast_adapter.dart';
 import 'kernel_string_builder.dart';
@@ -57,7 +59,25 @@
       Kernel kernel = backend.kernelTask.kernel;
       KernelSsaBuilder builder = new KernelSsaBuilder(element, work.resolvedAst,
           backend.compiler, work.registry, sourceInformationFactory, kernel);
-      return builder.build();
+      HGraph graph = builder.build();
+
+      if (backend.compiler.tracer.isEnabled) {
+        String name;
+        if (element.isClassMember) {
+          String className = element.enclosingClass.name;
+          String memberName = element.name;
+          name = "$className.$memberName";
+          if (element.isGenerativeConstructorBody) {
+            name = "$name (body)";
+          }
+        } else {
+          name = "${element.name}";
+        }
+        backend.compiler.tracer.traceCompilation(name);
+        backend.compiler.tracer.traceGraph('builder', graph);
+      }
+
+      return graph;
     });
   }
 }
@@ -88,7 +108,6 @@
   @override
   TreeElements get elements => resolvedAst.elements;
 
-
   SourceInformationBuilder sourceInformationBuilder;
   KernelAstAdapter astAdapter;
   LoopHandler<ir.Node> loopHandler;
@@ -97,6 +116,10 @@
   final Map<ir.VariableDeclaration, HInstruction> letBindings =
       <ir.VariableDeclaration, HInstruction>{};
 
+  /// True if we are visiting the expression of a throw statement; we assume
+  /// this is a slow path.
+  bool _inExpressionOfThrow = false;
+
   KernelSsaBuilder(
       this.targetElement,
       this.resolvedAst,
@@ -162,6 +185,10 @@
     openFunction();
     if (field.initializer != null) {
       field.initializer.accept(this);
+      HInstruction fieldValue = pop();
+      HInstruction checkInstruction = typeBuilder.potentiallyCheckOrTrustType(
+          fieldValue, astAdapter.getDartType(field.type));
+      stack.add(checkInstruction);
     } else {
       stack.add(graph.addConstantNull(compiler));
     }
@@ -181,7 +208,7 @@
           value, compiler.coreTypes.boolType,
           kind: HTypeConversion.BOOLEAN_CONVERSION_CHECK);
     }
-    HInstruction result = new HBoolify(value, backend.boolType);
+    HInstruction result = new HBoolify(value, commonMasks.boolType);
     add(result);
     return result;
   }
@@ -218,8 +245,7 @@
         astAdapter.getClass(constructor.enclosingClass),
         constructorArguments,
         new TypeMask.nonNullExact(
-            astAdapter.getClass(constructor.enclosingClass),
-            compiler.closedWorld),
+            astAdapter.getClass(constructor.enclosingClass), closedWorld),
         instantiatedTypes: <DartType>[
           astAdapter.getClass(constructor.enclosingClass).thisType
         ],
@@ -400,19 +426,28 @@
 
   /// Pushes a boolean checking [expression] against null.
   pushCheckNull(HInstruction expression) {
-    push(new HIdentity(
-        expression, graph.addConstantNull(compiler), null, backend.boolType));
+    push(new HIdentity(expression, graph.addConstantNull(compiler), null,
+        commonMasks.boolType));
   }
 
   @override
   void defaultExpression(ir.Expression expression) {
     // TODO(het): This is only to get tests working.
-    String message = 'Unhandled ir.${expression.runtimeType}  $expression';
+    _trap('Unhandled ir.${expression.runtimeType}  $expression');
+  }
+
+  @override
+  void defaultStatement(ir.Statement statement) {
+    _trap('Unhandled ir.${statement.runtimeType}  $statement');
+    pop();
+  }
+
+  void _trap(String message) {
     HInstruction nullValue = graph.addConstantNull(compiler);
     HInstruction errorMessage =
         graph.addConstantString(new DartString.literal(message), compiler);
     HInstruction trap = new HForeignCode(js.js.parseForeignJS("#.#"),
-        backend.dynamicType, <HInstruction>[nullValue, errorMessage]);
+        commonMasks.dynamicType, <HInstruction>[nullValue, errorMessage]);
     trap.sideEffects
       ..setAllSideEffects()
       ..setDependsOnSomething();
@@ -448,9 +483,22 @@
   }
 
   @override
+  void visitEmptyStatement(ir.EmptyStatement statement) {
+    // Empty statement adds no instructions to current block.
+  }
+
+  @override
   void visitExpressionStatement(ir.ExpressionStatement exprStatement) {
-    exprStatement.expression.accept(this);
-    pop();
+    if (!isReachable) return;
+    ir.Expression expression = exprStatement.expression;
+    if (expression is ir.Throw) {
+      // TODO(sra): Prevent generating a statement when inlining.
+      _visitThrowExpression(expression.expression);
+      closeAndGotoExit(new HThrow(pop(), null));
+    } else {
+      expression.accept(this);
+      pop();
+    }
   }
 
   @override
@@ -461,8 +509,8 @@
     } else {
       assert(_targetFunction != null && _targetFunction is ir.FunctionNode);
       returnStatement.expression.accept(this);
-      value = typeBuilder.potentiallyCheckOrTrustType(pop(),
-          astAdapter.getFunctionReturnType(_targetFunction));
+      value = typeBuilder.potentiallyCheckOrTrustType(
+          pop(), astAdapter.getFunctionReturnType(_targetFunction));
     }
     // TODO(het): Add source information
     // TODO(het): Set a return value instead of closing the function when we
@@ -542,7 +590,7 @@
 
     HInstruction buildGetLength() {
       HFieldGet result = new HFieldGet(
-          astAdapter.jsIndexableLength, array, backend.positiveIntType,
+          astAdapter.jsIndexableLength, array, commonMasks.positiveIntType,
           isAssignable: !isFixed);
       add(result);
       return result;
@@ -556,7 +604,7 @@
       //     array.length == _end || throwConcurrentModificationError(array)
       //
       HInstruction length = buildGetLength();
-      push(new HIdentity(length, originalLength, null, backend.boolType));
+      push(new HIdentity(length, originalLength, null, commonMasks.boolType));
       _pushStaticInvocation(
           astAdapter.checkConcurrentModificationError,
           [pop(), array],
@@ -576,7 +624,8 @@
     HInstruction buildCondition() {
       HInstruction index = localsHandler.readLocal(indexVariable);
       HInstruction length = buildGetLength();
-      HInstruction compare = new HLess(index, length, null, backend.boolType);
+      HInstruction compare =
+          new HLess(index, length, null, commonMasks.boolType);
       add(compare);
       return compare;
     }
@@ -615,7 +664,7 @@
       HInstruction index = localsHandler.readLocal(indexVariable);
       HInstruction one = graph.addConstantInt(1, compiler);
       HInstruction addInstruction =
-          new HAdd(index, one, null, backend.positiveIntType);
+          new HAdd(index, one, null, commonMasks.positiveIntType);
       add(addInstruction);
       localsHandler.updateLocal(indexVariable, addInstruction);
     }
@@ -670,7 +719,7 @@
     ir.Procedure typeInfoSetterFn = astAdapter.setRuntimeTypeInfo;
     // TODO(efortuna): Insert source information in this static invocation.
     _pushStaticInvocation(typeInfoSetterFn, <HInstruction>[newObject, typeInfo],
-        backend.dynamicType);
+        commonMasks.dynamicType);
 
     // The new object will now be referenced through the
     // `setRuntimeTypeInfo` call. We therefore set the type of that
@@ -847,14 +896,15 @@
         element.accept(this);
         elements.add(pop());
       }
-      listInstruction = new HLiteralList(elements, backend.extendableArrayType);
+      listInstruction =
+          new HLiteralList(elements, commonMasks.extendableArrayType);
       add(listInstruction);
       listInstruction =
           setListRuntimeTypeInfoIfNeeded(listInstruction, listLiteral);
     }
 
     TypeMask type = astAdapter.typeOfListLiteral(targetElement, listLiteral);
-    if (!type.containsAll(compiler.closedWorld)) {
+    if (!type.containsAll(closedWorld)) {
       listInstruction.instructionType = type;
     }
     stack.add(listInstruction);
@@ -884,7 +934,7 @@
     } else {
       constructor = astAdapter.mapLiteralConstructor;
       HLiteralList argList =
-          new HLiteralList(constructorArgs, backend.extendableArrayType);
+          new HLiteralList(constructorArgs, commonMasks.extendableArrayType);
       add(argList);
       inputs.add(argList);
     }
@@ -925,12 +975,11 @@
     // type inference might discover a more specific type, or find nothing (in
     // dart2js unit tests).
     TypeMask mapType = new TypeMask.nonNullSubtype(
-        astAdapter.getElement(astAdapter.mapLiteralClass),
-        compiler.closedWorld);
+        astAdapter.getElement(astAdapter.mapLiteralClass), closedWorld);
     TypeMask returnTypeMask = TypeMaskFactory.inferredReturnTypeForElement(
         astAdapter.getElement(constructor), compiler);
     TypeMask instructionType =
-        mapType.intersection(returnTypeMask, compiler.closedWorld);
+        mapType.intersection(returnTypeMask, closedWorld);
 
     addImplicitInstantiation(type);
     _pushStaticInvocation(constructor, inputs, instructionType);
@@ -954,8 +1003,16 @@
       return;
     }
     if (type is ir.TypeParameterType) {
-      // TODO(27394): Load type parameter from current 'this' object.
-      defaultExpression(typeLiteral);
+      // TODO(sra): Convert the type logic here to use ir.DartType.
+      DartType dartType = astAdapter.getDartType(type);
+      dartType = localsHandler.substInContext(dartType);
+      HInstruction value = typeBuilder.analyzeTypeArgument(
+          dartType, sourceElement,
+          sourceInformation: null);
+      _pushStaticInvocation(astAdapter.runtimeTypeToString,
+          <HInstruction>[value], commonMasks.stringType);
+      _pushStaticInvocation(astAdapter.createRuntimeType, <HInstruction>[pop()],
+          astAdapter.createRuntimeTypeReturnType);
       return;
     }
     // TODO(27394): 'dynamic' and function types observed. Where are they from?
@@ -1060,7 +1117,6 @@
       HInstruction initialValue = graph.addConstantNull(compiler);
       localsHandler.updateLocal(local, initialValue);
     } else {
-      // TODO(het): handle case where the variable is top-level or static
       declaration.initializer.accept(this);
       HInstruction initialValue = pop();
 
@@ -1072,7 +1128,6 @@
   }
 
   void _visitLocalSetter(ir.VariableDeclaration variable, HInstruction value) {
-    // TODO(het): handle case where the variable is top-level or static
     LocalElement local = astAdapter.getElement(variable);
 
     // Give the value a name if it doesn't have one already.
@@ -1315,12 +1370,12 @@
       return;
     }
 
-    if (!compiler.hasIsolateSupport) {
+    if (!backend.hasIsolateSupport) {
       // If the isolate library is not used, we just generate code
       // to fetch the static state.
       String name = backend.namer.staticStateHolder;
       push(new HForeignCode(
-          js.js.parseForeignJS(name), backend.dynamicType, <HInstruction>[],
+          js.js.parseForeignJS(name), commonMasks.dynamicType, <HInstruction>[],
           nativeBehavior: native.NativeBehavior.DEPENDS_OTHER));
     } else {
       // Call a helper method from the isolate library. The isolate library uses
@@ -1331,7 +1386,7 @@
         compiler.reporter.internalError(astAdapter.getNode(invocation),
             'Isolate library and compiler mismatch.');
       }
-      _pushStaticInvocation(target, <HInstruction>[], backend.dynamicType);
+      _pushStaticInvocation(target, <HInstruction>[], commonMasks.dynamicType);
     }
   }
 
@@ -1343,11 +1398,11 @@
 
     List<HInstruction> inputs = _visitPositionalArguments(invocation.arguments);
 
-    if (!compiler.hasIsolateSupport) {
+    if (!backend.hasIsolateSupport) {
       // If the isolate library is not used, we ignore the isolate argument and
       // just invoke the closure.
       push(new HInvokeClosure(new Selector.callClosure(0),
-          <HInstruction>[inputs[1]], backend.dynamicType));
+          <HInstruction>[inputs[1]], commonMasks.dynamicType));
     } else {
       // Call a helper method from the isolate library.
       ir.Procedure callInIsolate = astAdapter.callInIsolate;
@@ -1355,7 +1410,7 @@
         compiler.reporter.internalError(astAdapter.getNode(invocation),
             'Isolate library and compiler mismatch.');
       }
-      _pushStaticInvocation(callInIsolate, inputs, backend.dynamicType);
+      _pushStaticInvocation(callInIsolate, inputs, commonMasks.dynamicType);
     }
   }
 
@@ -1389,7 +1444,7 @@
             push(new HForeignCode(
                 js.js.expressionTemplateYielding(backend.emitter
                     .staticFunctionAccess(astAdapter.getMember(staticTarget))),
-                backend.dynamicType,
+                commonMasks.dynamicType,
                 <HInstruction>[],
                 nativeBehavior: native.NativeBehavior.PURE));
             return;
@@ -1416,8 +1471,8 @@
     String isolateName = backend.namer.staticStateHolder;
     SideEffects sideEffects = new SideEffects.empty();
     sideEffects.setAllSideEffects();
-    push(new HForeignCode(
-        js.js.parseForeignJS("$isolateName = #"), backend.dynamicType, inputs,
+    push(new HForeignCode(js.js.parseForeignJS("$isolateName = #"),
+        commonMasks.dynamicType, inputs,
         nativeBehavior: native.NativeBehavior.CHANGES_OTHER,
         effects: sideEffects));
   }
@@ -1429,7 +1484,7 @@
     }
 
     push(new HForeignCode(js.js.parseForeignJS(backend.namer.staticStateHolder),
-        backend.dynamicType, <HInstruction>[],
+        commonMasks.dynamicType, <HInstruction>[],
         nativeBehavior: native.NativeBehavior.DEPENDS_OTHER));
   }
 
@@ -1616,7 +1671,7 @@
       return;
     }
     List<HInstruction> inputs = _visitPositionalArguments(invocation.arguments);
-    push(new HStringConcat(inputs[0], inputs[1], backend.stringType));
+    push(new HStringConcat(inputs[0], inputs[1], commonMasks.stringType));
   }
 
   void _pushStaticInvocation(
@@ -1682,8 +1737,7 @@
       capturedVariables.add(localsHandler.readLocal(capturedLocal));
     });
 
-    TypeMask type =
-        new TypeMask.nonNullExact(closureClassElement, compiler.closedWorld);
+    TypeMask type = new TypeMask.nonNullExact(closureClassElement, closedWorld);
     // TODO(efortuna): Add source information here.
     push(new HCreate(closureClassElement, capturedVariables, type));
 
@@ -1694,8 +1748,8 @@
   visitFunctionDeclaration(ir.FunctionDeclaration declaration) {
     assert(isReachable);
     declaration.function.accept(this);
-    LocalFunctionElement localFunction = astAdapter.getElement(
-        declaration.function);
+    LocalFunctionElement localFunction =
+        astAdapter.getElement(declaration.function);
     localsHandler.updateLocal(localFunction, pop());
   }
 
@@ -1744,7 +1798,7 @@
 
   HInterceptor _interceptorFor(HInstruction intercepted) {
     HInterceptor interceptor =
-        new HInterceptor(intercepted, backend.nonNullType);
+        new HInterceptor(intercepted, commonMasks.nonNullType);
     add(interceptor);
     return interceptor;
   }
@@ -1781,7 +1835,7 @@
         null,
         isSetter: selector.isSetter || selector.isIndexSet);
     instruction.sideEffects =
-        compiler.closedWorld.getSideEffectsOfSelector(selector, null);
+        closedWorld.getSideEffectsOfSelector(selector, null);
     push(instruction);
   }
 
@@ -1792,7 +1846,7 @@
     List<HInstruction> arguments =
         _visitArgumentsForStaticTarget(target.function, invocation.arguments);
     TypeMask typeMask = new TypeMask.nonNullExact(
-        astAdapter.getElement(target.enclosingClass), compiler.closedWorld);
+        astAdapter.getElement(target.enclosingClass), closedWorld);
     _pushStaticInvocation(target, arguments, typeMask);
   }
 
@@ -1814,17 +1868,17 @@
     if (type is MalformedType) {
       ErroneousElement element = type.element;
       generateTypeError(isExpression, element.message);
-      push(new HIs.compound(type, expression, pop(), backend.boolType));
+      push(new HIs.compound(type, expression, pop(), commonMasks.boolType));
       return;
     }
 
     if (type.isFunctionType) {
       List arguments = <HInstruction>[buildFunctionType(type), expression];
-      _pushDynamicInvocation(isExpression, backend.boolType, arguments,
+      _pushDynamicInvocation(isExpression, commonMasks.boolType, arguments,
           selector: new Selector.call(
               new PrivateName('_isTest', astAdapter.jsHelperLibrary),
               CallStructure.ONE_ARG));
-      push(new HIs.compound(type, expression, pop(), backend.boolType));
+      push(new HIs.compound(type, expression, pop(), commonMasks.boolType));
       return;
     }
 
@@ -1832,34 +1886,43 @@
       HInstruction runtimeType =
           typeBuilder.addTypeVariableReference(type, sourceElement);
       _pushStaticInvocation(astAdapter.checkSubtypeOfRuntimeType,
-          <HInstruction>[expression, runtimeType], backend.boolType);
-      push(new HIs.variable(type, expression, pop(), backend.boolType));
+          <HInstruction>[expression, runtimeType], commonMasks.boolType);
+      push(new HIs.variable(type, expression, pop(), commonMasks.boolType));
       return;
     }
 
     // TODO(sra): Type with type parameters.
 
     if (backend.hasDirectCheckFor(type)) {
-      push(new HIs.direct(type, expression, backend.boolType));
+      push(new HIs.direct(type, expression, commonMasks.boolType));
       return;
     }
 
     // The interceptor is not always needed.  It is removed by optimization
     // when the receiver type or tested type permit.
     HInterceptor interceptor = _interceptorFor(expression);
-    push(new HIs.raw(type, expression, interceptor, backend.boolType));
+    push(new HIs.raw(type, expression, interceptor, commonMasks.boolType));
   }
 
   @override
   void visitThrow(ir.Throw throwNode) {
-    throwNode.expression.accept(this);
-    HInstruction expression = pop();
+    _visitThrowExpression(throwNode.expression);
     if (isReachable) {
-      push(new HThrowExpression(expression, null));
+      push(new HThrowExpression(pop(), null));
       isReachable = false;
     }
   }
 
+  void _visitThrowExpression(ir.Expression expression) {
+    bool old = _inExpressionOfThrow;
+    try {
+      _inExpressionOfThrow = true;
+      expression.accept(this);
+    } finally {
+      _inExpressionOfThrow = old;
+    }
+  }
+
   @override
   void visitThisExpression(ir.ThisExpression thisExpression) {
     stack.add(localsHandler.readThis());
@@ -1868,7 +1931,7 @@
   @override
   void visitNot(ir.Not not) {
     not.operand.accept(this);
-    push(new HNot(popBoolified(), backend.boolType));
+    push(new HNot(popBoolified(), commonMasks.boolType));
   }
 
   @override
diff --git a/pkg/compiler/lib/src/ssa/codegen.dart b/pkg/compiler/lib/src/ssa/codegen.dart
index cd9d7c0..83a0f7f 100644
--- a/pkg/compiler/lib/src/ssa/codegen.dart
+++ b/pkg/compiler/lib/src/ssa/codegen.dart
@@ -179,6 +179,8 @@
 
   Compiler get compiler => backend.compiler;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   NativeEmitter get nativeEmitter => backend.emitter.nativeEmitter;
 
   CodegenRegistry get registry => work.registry;
@@ -261,8 +263,8 @@
     return MAX;
   }
 
-  bool requiresUintConversion(instruction) {
-    if (instruction.isUInt31(compiler)) return false;
+  bool requiresUintConversion(HInstruction instruction) {
+    if (instruction.isUInt31(closedWorld)) return false;
     if (bitWidth(instruction) <= 31) return false;
     // If the result of a bit-operation is only used by other bit
     // operations, we do not have to convert to an unsigned integer.
@@ -1381,11 +1383,11 @@
   visitShiftRight(HShiftRight node) => visitBitInvokeBinary(node, '>>>');
 
   visitTruncatingDivide(HTruncatingDivide node) {
-    assert(node.isUInt31(compiler));
+    assert(node.isUInt31(closedWorld));
     // TODO(karlklose): Enable this assertion again when type propagation is
     // fixed. Issue 23555.
 //    assert(node.left.isUInt32(compiler));
-    assert(node.right.isPositiveInteger(compiler));
+    assert(node.right.isPositiveInteger(closedWorld));
     use(node.left);
     js.Expression jsLeft = pop();
     use(node.right);
@@ -1709,22 +1711,20 @@
       // type because our optimizations might end up in a state where the
       // invoke dynamic knows more than the receiver.
       ClassElement enclosing = node.element.enclosingClass;
-      if (compiler.closedWorld.isInstantiated(enclosing)) {
-        return new TypeMask.nonNullExact(
-            enclosing.declaration, compiler.closedWorld);
+      if (closedWorld.isInstantiated(enclosing)) {
+        return new TypeMask.nonNullExact(enclosing.declaration, closedWorld);
       } else {
         // The element is mixed in so a non-null subtype mask is the most
         // precise we have.
-        assert(invariant(node, compiler.closedWorld.isUsedAsMixin(enclosing),
+        assert(invariant(node, closedWorld.isUsedAsMixin(enclosing),
             message: "Element ${node.element} from $enclosing expected "
                 "to be mixed in."));
-        return new TypeMask.nonNullSubtype(
-            enclosing.declaration, compiler.closedWorld);
+        return new TypeMask.nonNullSubtype(enclosing.declaration, closedWorld);
       }
     }
     // If [JSInvocationMirror._invokeOn] is enabled, and this call
     // might hit a `noSuchMethod`, we register an untyped selector.
-    return compiler.closedWorld.extendMaskIfReachesAll(selector, mask);
+    return closedWorld.extendMaskIfReachesAll(selector, mask);
   }
 
   void registerMethodInvoke(HInvokeDynamic node) {
@@ -2098,13 +2098,14 @@
 
       HInstruction left = relational.left;
       HInstruction right = relational.right;
-      if (left.isStringOrNull(compiler) && right.isStringOrNull(compiler)) {
+      if (left.isStringOrNull(closedWorld) &&
+          right.isStringOrNull(closedWorld)) {
         return true;
       }
 
       // This optimization doesn't work for NaN, so we only do it if the
       // type is known to be an integer.
-      return left.isInteger(compiler) && right.isInteger(compiler);
+      return left.isInteger(closedWorld) && right.isInteger(closedWorld);
     }
 
     bool handledBySpecialCase = false;
@@ -2240,13 +2241,13 @@
       js.Expression over;
       if (node.staticChecks != HBoundsCheck.ALWAYS_ABOVE_ZERO) {
         use(node.index);
-        if (node.index.isInteger(compiler)) {
+        if (node.index.isInteger(closedWorld)) {
           under = js.js("# < 0", pop());
         } else {
           js.Expression jsIndex = pop();
           under = js.js("# >>> 0 !== #", [jsIndex, jsIndex]);
         }
-      } else if (!node.index.isInteger(compiler)) {
+      } else if (!node.index.isInteger(closedWorld)) {
         checkInt(node.index, '!==');
         under = pop();
       }
@@ -2376,9 +2377,9 @@
 
   void visitStringify(HStringify node) {
     HInstruction input = node.inputs.first;
-    if (input.isString(compiler)) {
+    if (input.isString(closedWorld)) {
       use(input);
-    } else if (input.isInteger(compiler) || input.isBoolean(compiler)) {
+    } else if (input.isInteger(closedWorld) || input.isBoolean(closedWorld)) {
       // JavaScript's + operator with a string for the left operand will convert
       // the right operand to a string, and the conversion result is correct.
       use(input);
@@ -2761,8 +2762,8 @@
       } else if (type.isFunctionType) {
         checkType(input, interceptor, type, sourceInformation,
             negative: negative);
-      } else if ((input.canBePrimitive(compiler) &&
-              !input.canBePrimitiveArray(compiler)) ||
+      } else if ((input.canBePrimitive(closedWorld) &&
+              !input.canBePrimitiveArray(closedWorld)) ||
           input.canBeNull()) {
         checkObject(input, relation, node.sourceInformation);
         js.Expression objectTest = pop();
@@ -2787,14 +2788,13 @@
 
   js.Expression generateReceiverOrArgumentTypeTest(
       HInstruction input, TypeMask checkedType) {
-    ClosedWorld closedWorld = compiler.closedWorld;
     TypeMask inputType = input.instructionType;
     // Figure out if it is beneficial to turn this into a null check.
     // V8 generally prefers 'typeof' checks, but for integers and
     // indexable primitives we cannot compile this test into a single
     // typeof check so the null check is cheaper.
     bool isIntCheck = checkedType.containsOnlyInt(closedWorld);
-    bool turnIntoNumCheck = isIntCheck && input.isIntegerOrNull(compiler);
+    bool turnIntoNumCheck = isIntCheck && input.isIntegerOrNull(closedWorld);
     bool turnIntoNullCheck = !turnIntoNumCheck &&
         (checkedType.nullable() == inputType) &&
         (isIntCheck ||
@@ -2827,12 +2827,11 @@
 
   void visitTypeConversion(HTypeConversion node) {
     if (node.isArgumentTypeCheck || node.isReceiverTypeCheck) {
-      ClosedWorld closedWorld = compiler.closedWorld;
       // An int check if the input is not int or null, is not
       // sufficient for doing an argument or receiver check.
       assert(compiler.options.trustTypeAnnotations ||
           !node.checkedType.containsOnlyInt(closedWorld) ||
-          node.checkedInput.isIntegerOrNull(compiler));
+          node.checkedInput.isIntegerOrNull(closedWorld));
       js.Expression test = generateReceiverOrArgumentTypeTest(
           node.checkedInput, node.checkedType);
       js.Block oldContainer = currentContainer;
@@ -3010,7 +3009,6 @@
   bool typeVariableAccessNeedsSubstitution(
       TypeVariableElement element, TypeMask receiverMask) {
     ClassElement cls = element.enclosingClass;
-    ClosedWorld closedWorld = compiler.closedWorld;
 
     // See if the receiver type narrows the set of classes to ones that can be
     // indexed.
diff --git a/pkg/compiler/lib/src/ssa/codegen_helpers.dart b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
index 34d156b..04fdb11 100644
--- a/pkg/compiler/lib/src/ssa/codegen_helpers.dart
+++ b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
@@ -8,6 +8,7 @@
 import '../js_backend/js_backend.dart';
 import '../types/types.dart';
 import '../universe/selector.dart' show Selector;
+import '../world.dart' show ClosedWorld;
 import 'nodes.dart';
 
 /**
@@ -22,6 +23,8 @@
 
   JavaScriptBackend get backend => compiler.backend;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   void visitGraph(HGraph graph) {
     this.graph = graph;
     visitDominatorTree(graph);
@@ -67,7 +70,7 @@
       HInstruction interceptor = node.interceptor;
       if (interceptor != null) {
         return new HIsViaInterceptor(
-            node.typeExpression, interceptor, backend.boolType);
+            node.typeExpression, interceptor, closedWorld.commonMasks.boolType);
       }
     }
     return node;
@@ -86,7 +89,7 @@
     if (leftType.isNullable && rightType.isNullable) {
       if (left.isConstantNull() ||
           right.isConstantNull() ||
-          (left.isPrimitive(compiler) && leftType == rightType)) {
+          (left.isPrimitive(closedWorld) && leftType == rightType)) {
         return '==';
       }
       return null;
@@ -242,7 +245,7 @@
     HInstruction bitop(String assignOp) {
       // HBitAnd, HBitOr etc. are more difficult because HBitAnd(a.x, y)
       // sometimes needs to be forced to unsigned: a.x = (a.x & y) >>> 0.
-      if (op.isUInt31(compiler)) return simpleBinary(assignOp);
+      if (op.isUInt31(closedWorld)) return simpleBinary(assignOp);
       return noMatchingRead();
     }
 
diff --git a/pkg/compiler/lib/src/ssa/graph_builder.dart b/pkg/compiler/lib/src/ssa/graph_builder.dart
index e5dce33..c35e34f 100644
--- a/pkg/compiler/lib/src/ssa/graph_builder.dart
+++ b/pkg/compiler/lib/src/ssa/graph_builder.dart
@@ -42,6 +42,10 @@
 
   CodegenRegistry get registry;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
+  CommonMasks get commonMasks => closedWorld.commonMasks;
+
   /// Used to track the locals while building the graph.
   LocalsHandler localsHandler;
 
@@ -75,8 +79,8 @@
 
   /// Pushes a boolean checking [expression] against null.
   pushCheckNull(HInstruction expression) {
-    push(new HIdentity(
-        expression, graph.addConstantNull(compiler), null, backend.boolType));
+    push(new HIdentity(expression, graph.addConstantNull(compiler), null,
+        closedWorld.commonMasks.boolType));
   }
 
   void dup() {
@@ -225,7 +229,7 @@
         TypeInfoExpressionKind.INSTANCE,
         (type.element as ClassElement).thisType,
         rtiInputs,
-        backend.dynamicType);
+        closedWorld.commonMasks.dynamicType);
     add(typeInfo);
     return callSetRuntimeTypeInfo(typeInfo, newObject);
   }
diff --git a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
index 1716c7f..d35ee86 100644
--- a/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
+++ b/pkg/compiler/lib/src/ssa/interceptor_simplifier.dart
@@ -97,7 +97,7 @@
 
   bool canUseSelfForInterceptor(
       HInstruction receiver, Set<ClassElement> interceptedClasses) {
-    if (receiver.canBePrimitive(compiler)) {
+    if (receiver.canBePrimitive(closedWorld)) {
       // Primitives always need interceptors.
       return false;
     }
@@ -312,9 +312,9 @@
     if (receiver.canBeNull()) {
       if (!interceptedClasses.contains(helpers.jsNullClass)) {
         // Can use `(receiver && C)` only if receiver is either null or truthy.
-        if (!(receiver.canBePrimitiveNumber(compiler) ||
-            receiver.canBePrimitiveBoolean(compiler) ||
-            receiver.canBePrimitiveString(compiler))) {
+        if (!(receiver.canBePrimitiveNumber(closedWorld) ||
+            receiver.canBePrimitiveBoolean(closedWorld) ||
+            receiver.canBePrimitiveString(closedWorld))) {
           ClassElement interceptorClass = tryComputeConstantInterceptorFromType(
               receiver.instructionType.nonNullable(), interceptedClasses);
           if (interceptorClass != null) {
diff --git a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
index 63e3a26..e413748 100644
--- a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
+++ b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
@@ -24,13 +24,13 @@
   const InvokeDynamicSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     return TypeMaskFactory.inferredTypeForSelector(
         instruction.selector, instruction.mask, compiler);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     return null;
   }
 
@@ -85,9 +85,9 @@
   const IndexAssignSpecializer();
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (instruction.inputs[1].isMutableIndexable(compiler)) {
-      if (!instruction.inputs[2].isInteger(compiler) &&
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (instruction.inputs[1].isMutableIndexable(closedWorld)) {
+      if (!instruction.inputs[2].isInteger(closedWorld) &&
           compiler.options.enableTypeAssertions) {
         // We want the right checked mode error.
         return null;
@@ -103,9 +103,9 @@
   const IndexSpecializer();
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (!instruction.inputs[1].isIndexablePrimitive(compiler)) return null;
-    if (!instruction.inputs[2].isInteger(compiler) &&
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (!instruction.inputs[1].isIndexablePrimitive(closedWorld)) return null;
+    if (!instruction.inputs[2].isInteger(closedWorld) &&
         compiler.options.enableTypeAssertions) {
       // We want the right checked mode error.
       return null;
@@ -127,22 +127,21 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     // All bitwise operations on primitive types either produce an
     // integer or throw an error.
-    JavaScriptBackend backend = compiler.backend;
-    if (instruction.inputs[1].isPrimitiveOrNull(compiler)) {
-      return backend.uint32Type;
+    if (instruction.inputs[1].isPrimitiveOrNull(closedWorld)) {
+      return closedWorld.commonMasks.uint32Type;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction input = instruction.inputs[1];
-    if (input.isNumber(compiler)) {
+    if (input.isNumber(closedWorld)) {
       return new HBitNot(input, instruction.selector,
-          computeTypeFromInputTypes(instruction, compiler));
+          computeTypeFromInputTypes(instruction, compiler, closedWorld));
     }
     return null;
   }
@@ -156,16 +155,16 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     TypeMask operandType = instruction.inputs[1].instructionType;
-    if (instruction.inputs[1].isNumberOrNull(compiler)) return operandType;
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    if (instruction.inputs[1].isNumberOrNull(closedWorld)) return operandType;
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction input = instruction.inputs[1];
-    if (input.isNumber(compiler)) {
+    if (input.isNumber(closedWorld)) {
       return new HNegate(input, instruction.selector, input.instructionType);
     }
     return null;
@@ -176,31 +175,33 @@
   const BinaryArithmeticSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isIntegerOrNull(compiler) && right.isIntegerOrNull(compiler)) {
-      return backend.intType;
+    if (left.isIntegerOrNull(closedWorld) &&
+        right.isIntegerOrNull(closedWorld)) {
+      return closedWorld.commonMasks.intType;
     }
-    if (left.isNumberOrNull(compiler)) {
-      if (left.isDoubleOrNull(compiler) || right.isDoubleOrNull(compiler)) {
-        return backend.doubleType;
+    if (left.isNumberOrNull(closedWorld)) {
+      if (left.isDoubleOrNull(closedWorld) ||
+          right.isDoubleOrNull(closedWorld)) {
+        return closedWorld.commonMasks.doubleType;
       }
-      return backend.numType;
+      return closedWorld.commonMasks.numType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
-  bool isBuiltin(HInvokeDynamic instruction, Compiler compiler) {
-    return instruction.inputs[1].isNumber(compiler) &&
-        instruction.inputs[2].isNumber(compiler);
+  bool isBuiltin(HInvokeDynamic instruction, ClosedWorld closedWorld) {
+    return instruction.inputs[1].isNumber(closedWorld) &&
+        instruction.inputs[2].isNumber(closedWorld);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (isBuiltin(instruction, compiler)) {
-      HInstruction builtin = newBuiltinVariant(instruction, compiler);
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (isBuiltin(instruction, closedWorld)) {
+      HInstruction builtin =
+          newBuiltinVariant(instruction, compiler, closedWorld);
       if (builtin != null) return builtin;
       // Even if there is no builtin equivalent instruction, we know
       // the instruction does not have any side effect, and that it
@@ -210,20 +211,22 @@
     return null;
   }
 
-  bool inputsArePositiveIntegers(HInstruction instruction, Compiler compiler) {
+  bool inputsArePositiveIntegers(
+      HInstruction instruction, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    return left.isPositiveIntegerOrNull(compiler) &&
-        right.isPositiveIntegerOrNull(compiler);
+    return left.isPositiveIntegerOrNull(closedWorld) &&
+        right.isPositiveIntegerOrNull(closedWorld);
   }
 
-  bool inputsAreUInt31(HInstruction instruction, Compiler compiler) {
+  bool inputsAreUInt31(HInstruction instruction, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    return left.isUInt31(compiler) && right.isUInt31(compiler);
+    return left.isUInt31(closedWorld) && right.isUInt31(closedWorld);
   }
 
-  HInstruction newBuiltinVariant(HInvokeDynamic instruction, Compiler compiler);
+  HInstruction newBuiltinVariant(
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld);
 
   Selector renameToOptimizedSelector(
       String name, Selector selector, Compiler compiler) {
@@ -239,16 +242,14 @@
   const AddSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (inputsAreUInt31(instruction, compiler)) {
-      JavaScriptBackend backend = compiler.backend;
-      return backend.uint32Type;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (inputsAreUInt31(instruction, closedWorld)) {
+      return closedWorld.commonMasks.uint32Type;
     }
-    if (inputsArePositiveIntegers(instruction, compiler)) {
-      JavaScriptBackend backend = compiler.backend;
-      return backend.positiveIntType;
+    if (inputsArePositiveIntegers(instruction, closedWorld)) {
+      return closedWorld.commonMasks.positiveIntType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   BinaryOperation operation(ConstantSystem constantSystem) {
@@ -256,9 +257,12 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HAdd(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HAdd(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -270,20 +274,18 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInstruction instruction, Compiler compiler) {
+      HInstruction instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isNumberOrNull(compiler)) {
-      return backend.doubleType;
+    if (left.isNumberOrNull(closedWorld)) {
+      return closedWorld.commonMasks.doubleType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     return new HDivide(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.doubleType);
+        instruction.selector, closedWorld.commonMasks.doubleType);
   }
 }
 
@@ -291,12 +293,11 @@
   const ModuloSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (inputsArePositiveIntegers(instruction, compiler)) {
-      JavaScriptBackend backend = compiler.backend;
-      return backend.positiveIntType;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (inputsArePositiveIntegers(instruction, closedWorld)) {
+      return closedWorld.commonMasks.positiveIntType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   BinaryOperation operation(ConstantSystem constantSystem) {
@@ -304,7 +305,7 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     // Modulo cannot be mapped to the native operator (different semantics).
     // TODO(sra): For non-negative values we can use JavaScript's %.
     return null;
@@ -319,18 +320,20 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
-    if (inputsArePositiveIntegers(instruction, compiler)) {
-      JavaScriptBackend backend = compiler.backend;
-      return backend.positiveIntType;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (inputsArePositiveIntegers(instruction, closedWorld)) {
+      return closedWorld.commonMasks.positiveIntType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HMultiply(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HMultiply(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -342,9 +345,12 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HSubtract(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HSubtract(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -356,18 +362,17 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
-    if (hasUint31Result(instruction, compiler)) {
-      return backend.uint31Type;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (hasUint31Result(instruction, closedWorld)) {
+      return closedWorld.commonMasks.uint31Type;
     }
-    if (inputsArePositiveIntegers(instruction, compiler)) {
-      return backend.positiveIntType;
+    if (inputsArePositiveIntegers(instruction, closedWorld)) {
+      return closedWorld.commonMasks.positiveIntType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
-  bool isNotZero(HInstruction instruction, Compiler compiler) {
+  bool isNotZero(HInstruction instruction) {
     if (!instruction.isConstantInteger()) return false;
     HConstant rightConstant = instruction;
     IntConstantValue intConstant = rightConstant.constant;
@@ -375,7 +380,7 @@
     return count != 0;
   }
 
-  bool isTwoOrGreater(HInstruction instruction, Compiler compiler) {
+  bool isTwoOrGreater(HInstruction instruction) {
     if (!instruction.isConstantInteger()) return false;
     HConstant rightConstant = instruction;
     IntConstantValue intConstant = rightConstant.constant;
@@ -383,14 +388,14 @@
     return count >= 2;
   }
 
-  bool hasUint31Result(HInstruction instruction, Compiler compiler) {
+  bool hasUint31Result(HInstruction instruction, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    if (right.isPositiveInteger(compiler)) {
-      if (left.isUInt31(compiler) && isNotZero(right, compiler)) {
+    if (right.isPositiveInteger(closedWorld)) {
+      if (left.isUInt31(closedWorld) && isNotZero(right)) {
         return true;
       }
-      if (left.isUInt32(compiler) && isTwoOrGreater(right, compiler)) {
+      if (left.isUInt32(closedWorld) && isTwoOrGreater(right)) {
         return true;
       }
     }
@@ -398,12 +403,12 @@
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction right = instruction.inputs[2];
-    if (isBuiltin(instruction, compiler)) {
-      if (right.isPositiveInteger(compiler) && isNotZero(right, compiler)) {
-        if (hasUint31Result(instruction, compiler)) {
-          return newBuiltinVariant(instruction, compiler);
+    if (isBuiltin(instruction, closedWorld)) {
+      if (right.isPositiveInteger(closedWorld) && isNotZero(right)) {
+        if (hasUint31Result(instruction, closedWorld)) {
+          return newBuiltinVariant(instruction, compiler, closedWorld);
         }
         // We can call _tdivFast because the rhs is a 32bit integer
         // and not 0, nor -1.
@@ -416,9 +421,12 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HTruncatingDivide(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HTruncatingDivide(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -426,15 +434,14 @@
   const BinaryBitOpSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     // All bitwise operations on primitive types either produce an
     // integer or throw an error.
     HInstruction left = instruction.inputs[1];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isPrimitiveOrNull(compiler)) {
-      return backend.uint32Type;
+    if (left.isPrimitiveOrNull(closedWorld)) {
+      return closedWorld.commonMasks.uint32Type;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   bool argumentLessThan32(HInstruction instruction) {
@@ -445,10 +452,10 @@
     return count >= 0 && count <= 31;
   }
 
-  bool isPositive(HInstruction instruction, Compiler compiler) {
+  bool isPositive(HInstruction instruction, ClosedWorld closedWorld) {
     // TODO: We should use the value range analysis. Currently, ranges
     // are discarded just after the analysis.
-    return instruction.isPositiveInteger(compiler);
+    return instruction.isPositiveInteger(closedWorld);
   }
 }
 
@@ -460,18 +467,18 @@
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    if (left.isNumber(compiler)) {
+    if (left.isNumber(closedWorld)) {
       if (argumentLessThan32(right)) {
-        return newBuiltinVariant(instruction, compiler);
+        return newBuiltinVariant(instruction, compiler, closedWorld);
       }
       // Even if there is no builtin equivalent instruction, we know
       // the instruction does not have any side effect, and that it
       // can be GVN'ed.
       clearAllSideEffects(instruction);
-      if (isPositive(right, compiler)) {
+      if (isPositive(right, closedWorld)) {
         instruction.selector = renameToOptimizedSelector(
             '_shlPositive', instruction.selector, compiler);
       }
@@ -480,9 +487,12 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HShiftLeft(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HShiftLeft(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -490,31 +500,31 @@
   const ShiftRightSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
-    if (left.isUInt32(compiler)) return left.instructionType;
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    if (left.isUInt32(closedWorld)) return left.instructionType;
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    if (left.isNumber(compiler)) {
-      if (argumentLessThan32(right) && isPositive(left, compiler)) {
-        return newBuiltinVariant(instruction, compiler);
+    if (left.isNumber(closedWorld)) {
+      if (argumentLessThan32(right) && isPositive(left, closedWorld)) {
+        return newBuiltinVariant(instruction, compiler, closedWorld);
       }
       // Even if there is no builtin equivalent instruction, we know
       // the instruction does not have any side effect, and that it
       // can be GVN'ed.
       clearAllSideEffects(instruction);
-      if (isPositive(right, compiler) && isPositive(left, compiler)) {
+      if (isPositive(right, closedWorld) && isPositive(left, closedWorld)) {
         instruction.selector = renameToOptimizedSelector(
             '_shrBothPositive', instruction.selector, compiler);
-      } else if (isPositive(left, compiler) && right.isNumber(compiler)) {
+      } else if (isPositive(left, closedWorld) && right.isNumber(closedWorld)) {
         instruction.selector = renameToOptimizedSelector(
             '_shrReceiverPositive', instruction.selector, compiler);
-      } else if (isPositive(right, compiler)) {
+      } else if (isPositive(right, closedWorld)) {
         instruction.selector = renameToOptimizedSelector(
             '_shrOtherPositive', instruction.selector, compiler);
       }
@@ -523,9 +533,12 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HShiftRight(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HShiftRight(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 
   BinaryOperation operation(ConstantSystem constantSystem) {
@@ -541,20 +554,22 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isUInt31(compiler) && right.isUInt31(compiler)) {
-      return backend.uint31Type;
+    if (left.isUInt31(closedWorld) && right.isUInt31(closedWorld)) {
+      return closedWorld.commonMasks.uint31Type;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HBitOr(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HBitOr(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -566,21 +581,23 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isPrimitiveOrNull(compiler) &&
-        (left.isUInt31(compiler) || right.isUInt31(compiler))) {
-      return backend.uint31Type;
+    if (left.isPrimitiveOrNull(closedWorld) &&
+        (left.isUInt31(closedWorld) || right.isUInt31(closedWorld))) {
+      return closedWorld.commonMasks.uint31Type;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HBitAnd(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HBitAnd(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -592,20 +609,22 @@
   }
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    JavaScriptBackend backend = compiler.backend;
-    if (left.isUInt31(compiler) && right.isUInt31(compiler)) {
-      return backend.uint31Type;
+    if (left.isUInt31(closedWorld) && right.isUInt31(closedWorld)) {
+      return closedWorld.commonMasks.uint31Type;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    return new HBitXor(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, computeTypeFromInputTypes(instruction, compiler));
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    return new HBitXor(
+        instruction.inputs[1],
+        instruction.inputs[2],
+        instruction.selector,
+        computeTypeFromInputTypes(instruction, compiler, closedWorld));
   }
 }
 
@@ -613,47 +632,46 @@
   const RelationalSpecializer();
 
   TypeMask computeTypeFromInputTypes(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
-    if (instruction.inputs[1].isPrimitiveOrNull(compiler)) {
-      return backend.boolType;
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
+    if (instruction.inputs[1].isPrimitiveOrNull(closedWorld)) {
+      return closedWorld.commonMasks.boolType;
     }
-    return super.computeTypeFromInputTypes(instruction, compiler);
+    return super.computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
-    if (left.isNumber(compiler) && right.isNumber(compiler)) {
-      return newBuiltinVariant(instruction, compiler);
+    if (left.isNumber(closedWorld) && right.isNumber(closedWorld)) {
+      return newBuiltinVariant(instruction, closedWorld);
     }
     return null;
   }
 
-  HInstruction newBuiltinVariant(HInvokeDynamic instruction, Compiler compiler);
+  HInstruction newBuiltinVariant(
+      HInvokeDynamic instruction, ClosedWorld closedWorld);
 }
 
 class EqualsSpecializer extends RelationalSpecializer {
   const EqualsSpecializer();
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction left = instruction.inputs[1];
     HInstruction right = instruction.inputs[2];
     TypeMask instructionType = left.instructionType;
-    if (right.isConstantNull() || left.isPrimitiveOrNull(compiler)) {
-      return newBuiltinVariant(instruction, compiler);
+    if (right.isConstantNull() || left.isPrimitiveOrNull(closedWorld)) {
+      return newBuiltinVariant(instruction, closedWorld);
     }
-    ClosedWorld world = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
     Iterable<Element> matches =
-        world.allFunctions.filter(instruction.selector, instructionType);
+        closedWorld.allFunctions.filter(instruction.selector, instructionType);
     // This test relies the on `Object.==` and `Interceptor.==` always being
     // implemented because if the selector matches by subtype, it still will be
     // a regular object or an interceptor.
-    if (matches.every(backend.isDefaultEqualityImplementation)) {
-      return newBuiltinVariant(instruction, compiler);
+    if (matches
+        .every(closedWorld.backendClasses.isDefaultEqualityImplementation)) {
+      return newBuiltinVariant(instruction, closedWorld);
     }
     return null;
   }
@@ -663,10 +681,9 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, ClosedWorld closedWorld) {
     return new HIdentity(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.boolType);
+        instruction.selector, closedWorld.commonMasks.boolType);
   }
 }
 
@@ -678,10 +695,9 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, ClosedWorld closedWorld) {
     return new HLess(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.boolType);
+        instruction.selector, closedWorld.commonMasks.boolType);
   }
 }
 
@@ -693,10 +709,9 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, ClosedWorld closedWorld) {
     return new HGreater(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.boolType);
+        instruction.selector, closedWorld.commonMasks.boolType);
   }
 }
 
@@ -708,10 +723,9 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, ClosedWorld closedWorld) {
     return new HGreaterEqual(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.boolType);
+        instruction.selector, closedWorld.commonMasks.boolType);
   }
 }
 
@@ -723,10 +737,9 @@
   }
 
   HInstruction newBuiltinVariant(
-      HInvokeDynamic instruction, Compiler compiler) {
-    JavaScriptBackend backend = compiler.backend;
+      HInvokeDynamic instruction, ClosedWorld closedWorld) {
     return new HLessEqual(instruction.inputs[1], instruction.inputs[2],
-        instruction.selector, backend.boolType);
+        instruction.selector, closedWorld.commonMasks.boolType);
   }
 }
 
@@ -738,11 +751,11 @@
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     // TODO(sra): Implement a builtin HCodeUnitAt instruction and the same index
     // bounds checking optimizations as for HIndex.
     HInstruction receiver = instruction.getDartReceiver(compiler);
-    if (receiver.isStringOrNull(compiler)) {
+    if (receiver.isStringOrNull(closedWorld)) {
       // Even if there is no builtin equivalent instruction, we know
       // String.codeUnitAt does not have any side effect (other than throwing),
       // and that it can be GVN'ed.
@@ -760,9 +773,9 @@
   }
 
   HInstruction tryConvertToBuiltin(
-      HInvokeDynamic instruction, Compiler compiler) {
+      HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
     HInstruction receiver = instruction.getDartReceiver(compiler);
-    if (receiver.isNumberOrNull(compiler)) {
+    if (receiver.isNumberOrNull(closedWorld)) {
       // Even if there is no builtin equivalent instruction, we know the
       // instruction does not have any side effect, and that it can be GVN'ed.
       clearAllSideEffects(instruction);
diff --git a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
index 1343be0..4c2309e 100644
--- a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
+++ b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
@@ -67,6 +67,7 @@
   TreeElements get elements => _resolvedAst.elements;
   DiagnosticReporter get reporter => _compiler.reporter;
   Element get _target => _resolvedAst.element;
+  ClosedWorld get _closedWorld => _compiler.closedWorld;
 
   GlobalTypeInferenceElementResult _resultOf(Element e) =>
       _compiler.globalInference.results.resultOf(e);
@@ -127,7 +128,7 @@
 
   bool getCanThrow(ir.Node procedure) {
     FunctionElement function = getElement(procedure);
-    return !_compiler.closedWorld.getCannotThrow(function);
+    return !_closedWorld.getCannotThrow(function);
   }
 
   TypeMask returnTypeOf(ir.Member node) {
@@ -136,7 +137,7 @@
   }
 
   SideEffects getSideEffects(ir.Node node) {
-    return _compiler.closedWorld.getSideEffectsOfElement(getElement(node));
+    return _closedWorld.getSideEffectsOfElement(getElement(node));
   }
 
   CallStructure getCallStructure(ir.Arguments arguments) {
@@ -198,11 +199,14 @@
     return new Selector.setter(name);
   }
 
-  TypeMask typeOfInvocation(ir.Expression send) {
+  TypeMask typeOfInvocation(ir.MethodInvocation send) {
     ast.Node operatorNode = kernel.nodeToAstOperator[send];
     if (operatorNode != null) {
       return _resultOf(_target).typeOfOperator(operatorNode);
     }
+    if (send.name.name == '[]=') {
+      return _compiler.closedWorld.commonMasks.dynamicType;
+    }
     return _resultOf(_target).typeOfSend(getNode(send));
   }
 
@@ -211,7 +215,7 @@
   }
 
   TypeMask typeOfSet(ir.PropertySet setter) {
-    return _compiler.closedWorld.commonMasks.dynamicType;
+    return _closedWorld.commonMasks.dynamicType;
   }
 
   TypeMask typeOfSend(ir.Expression send) {
@@ -223,10 +227,10 @@
     ast.Node node = getNodeOrNull(listLiteral);
     if (node == null) {
       assertNodeIsSynthetic(listLiteral);
-      return _compiler.closedWorld.commonMasks.growableListType;
+      return _closedWorld.commonMasks.growableListType;
     }
     return _resultOf(owner).typeOfNewList(getNode(listLiteral)) ??
-        _compiler.closedWorld.commonMasks.dynamicType;
+        _closedWorld.commonMasks.dynamicType;
   }
 
   TypeMask typeOfIterator(ir.ForInStatement forInStatement) {
@@ -243,24 +247,24 @@
 
   bool isJsIndexableIterator(ir.ForInStatement forInStatement) {
     TypeMask mask = typeOfIterator(forInStatement);
-    ClosedWorld closedWorld = _compiler.closedWorld;
     return mask != null &&
-        mask.satisfies(_backend.helpers.jsIndexableClass, closedWorld) &&
+        mask.satisfies(_backend.helpers.jsIndexableClass, _closedWorld) &&
         // String is indexable but not iterable.
-        !mask.satisfies(_backend.helpers.jsStringClass, closedWorld);
+        !mask.satisfies(_backend.helpers.jsStringClass, _closedWorld);
   }
 
   bool isFixedLength(TypeMask mask) {
-    ClosedWorld closedWorld = _compiler.closedWorld;
     JavaScriptBackend backend = _compiler.backend;
     if (mask.isContainer && (mask as ContainerTypeMask).length != null) {
       // A container on which we have inferred the length.
       return true;
     }
     // TODO(sra): Recognize any combination of fixed length indexables.
-    if (mask.containsOnly(backend.helpers.jsFixedArrayClass) ||
-        mask.containsOnly(backend.helpers.jsUnmodifiableArrayClass) ||
-        mask.containsOnlyString(closedWorld) ||
+    if (mask.containsOnly(
+            _closedWorld.backendClasses.fixedListImplementation) ||
+        mask.containsOnly(
+            _closedWorld.backendClasses.constListImplementation) ||
+        mask.containsOnlyString(_closedWorld) ||
         backend.isTypedArray(mask)) {
       return true;
     }
@@ -386,6 +390,16 @@
   TypeMask get assertThrowReturnType => TypeMaskFactory
       .inferredReturnTypeForElement(_backend.helpers.assertThrow, _compiler);
 
+  ir.Procedure get runtimeTypeToString =>
+      kernel.functions[_backend.helpers.runtimeTypeToString];
+
+  ir.Procedure get createRuntimeType =>
+      kernel.functions[_backend.helpers.createRuntimeType];
+
+  TypeMask get createRuntimeTypeReturnType =>
+      TypeMaskFactory.inferredReturnTypeForElement(
+          _backend.helpers.createRuntimeType, _compiler);
+
   ir.Class get objectClass => kernel.classes[_compiler.coreClasses.objectClass];
 
   ir.Procedure get currentIsolate =>
diff --git a/pkg/compiler/lib/src/ssa/kernel_string_builder.dart b/pkg/compiler/lib/src/ssa/kernel_string_builder.dart
index 38a3f63..ddef20a 100644
--- a/pkg/compiler/lib/src/ssa/kernel_string_builder.dart
+++ b/pkg/compiler/lib/src/ssa/kernel_string_builder.dart
@@ -38,7 +38,7 @@
     //      conversions.
     //   2. The value can be primitive, because the library stringifier has
     //      fast-path code for most primitives.
-    if (expression.canBePrimitive(compiler)) {
+    if (expression.canBePrimitive(builder.closedWorld)) {
       append(stringify(expression));
       return;
     }
@@ -62,14 +62,14 @@
 
   HInstruction concat(HInstruction left, HInstruction right) {
     HInstruction instruction =
-        new HStringConcat(left, right, builder.backend.stringType);
+        new HStringConcat(left, right, builder.commonMasks.stringType);
     builder.add(instruction);
     return instruction;
   }
 
   HInstruction stringify(HInstruction expression) {
     HInstruction instruction =
-        new HStringify(expression, builder.backend.stringType);
+        new HStringify(expression, builder.commonMasks.stringType);
     builder.add(instruction);
     return instruction;
   }
diff --git a/pkg/compiler/lib/src/ssa/locals_handler.dart b/pkg/compiler/lib/src/ssa/locals_handler.dart
index 0eca03a..d6e6745 100644
--- a/pkg/compiler/lib/src/ssa/locals_handler.dart
+++ b/pkg/compiler/lib/src/ssa/locals_handler.dart
@@ -70,6 +70,10 @@
                 ? null
                 : instanceType;
 
+  ClosedWorld get closedWorld => builder.closedWorld;
+
+  CommonMasks get commonMasks => closedWorld.commonMasks;
+
   /// Substituted type variables occurring in [type] into the context of
   /// [contextClass].
   DartType substInContext(DartType type) {
@@ -111,9 +115,8 @@
   HInstruction createBox() {
     // TODO(floitsch): Clean up this hack. Should we create a box-object by
     // just creating an empty object literal?
-    JavaScriptBackend backend = _compiler.backend;
     HInstruction box = new HForeignCode(
-        js.js.parseForeignJS('{}'), backend.nonNullType, <HInstruction>[],
+        js.js.parseForeignJS('{}'), commonMasks.nonNullType, <HInstruction>[],
         nativeBehavior: native.NativeBehavior.PURE_ALLOCATION);
     builder.add(box);
     return box;
@@ -131,8 +134,7 @@
     if (element != null && element.isGenerativeConstructorBody) {
       // The box is passed as a parameter to a generative
       // constructor body.
-      JavaScriptBackend backend = _compiler.backend;
-      box = builder.addParameter(scopeData.boxElement, backend.nonNullType);
+      box = builder.addParameter(scopeData.boxElement, commonMasks.nonNullType);
     } else {
       box = createBox();
     }
@@ -222,7 +224,7 @@
     if (closureData.isClosure) {
       // Inside closure redirect references to itself to [:this:].
       HThis thisInstruction =
-          new HThis(closureData.thisLocal, backend.nonNullType);
+          new HThis(closureData.thisLocal, commonMasks.nonNullType);
       builder.graph.thisInstruction = thisInstruction;
       builder.graph.entry.addAtEntry(thisInstruction);
       updateLocal(closureData.closureElement, thisInstruction);
@@ -267,7 +269,6 @@
           new SyntheticLocal('receiver', executableContext);
       // Unlike `this`, receiver is nullable since direct calls to generative
       // constructor call the constructor with `null`.
-      ClosedWorld closedWorld = _compiler.closedWorld;
       HParameterValue value =
           new HParameterValue(parameter, new TypeMask.exact(cls, closedWorld));
       builder.graph.explicitReceiverParameter = value;
@@ -325,7 +326,7 @@
       ClosureFieldElement redirect = redirectionMapping[local];
       HInstruction receiver = readLocal(closureData.closureElement);
       TypeMask type = local is BoxLocal
-          ? (_compiler.backend as JavaScriptBackend).nonNullType
+          ? commonMasks.nonNullType
           : getTypeOfCapturedVariable(redirect);
       HInstruction fieldGet = new HFieldGet(redirect, receiver, type);
       builder.add(fieldGet);
@@ -346,10 +347,7 @@
       assert(isUsedInTryOrGenerator(local));
       HLocalValue localValue = getLocal(local);
       HInstruction instruction = new HLocalGet(
-          local,
-          localValue,
-          (_compiler.backend as JavaScriptBackend).dynamicType,
-          sourceInformation);
+          local, localValue, commonMasks.dynamicType, sourceInformation);
       builder.add(instruction);
       return instruction;
     }
@@ -377,8 +375,7 @@
     }
 
     return activationVariables.putIfAbsent(local, () {
-      JavaScriptBackend backend = _compiler.backend;
-      HLocalValue localValue = new HLocalValue(local, backend.nonNullType)
+      HLocalValue localValue = new HLocalValue(local, commonMasks.nonNullType)
         ..sourceInformation = sourceInformation;
       builder.graph.entry.addAtExit(localValue);
       return localValue;
@@ -489,7 +486,7 @@
         // We know 'this' cannot be modified.
         if (local != closureData.thisLocal) {
           HPhi phi =
-              new HPhi.singleInput(local, instruction, backend.dynamicType);
+              new HPhi.singleInput(local, instruction, commonMasks.dynamicType);
           loopEntry.addPhi(phi);
           directLocals[local] = phi;
         } else {
@@ -546,7 +543,6 @@
     // variable cannot be alive outside the block. Note: this is only
     // true for nodes where we do joins.
     Map<Local, HInstruction> joinedLocals = new Map<Local, HInstruction>();
-    JavaScriptBackend backend = _compiler.backend;
     otherLocals.directLocals.forEach((Local local, HInstruction instruction) {
       // We know 'this' cannot be modified.
       if (local == closureData.thisLocal) {
@@ -558,8 +554,8 @@
         if (identical(instruction, mine)) {
           joinedLocals[local] = instruction;
         } else {
-          HInstruction phi = new HPhi.manyInputs(
-              local, <HInstruction>[mine, instruction], backend.dynamicType);
+          HInstruction phi = new HPhi.manyInputs(local,
+              <HInstruction>[mine, instruction], commonMasks.dynamicType);
           joinBlock.addPhi(phi);
           joinedLocals[local] = phi;
         }
@@ -579,10 +575,9 @@
     if (localsHandlers.length == 1) return localsHandlers[0];
     Map<Local, HInstruction> joinedLocals = new Map<Local, HInstruction>();
     HInstruction thisValue = null;
-    JavaScriptBackend backend = _compiler.backend;
     directLocals.forEach((Local local, HInstruction instruction) {
       if (local != closureData.thisLocal) {
-        HPhi phi = new HPhi.noInputs(local, backend.dynamicType);
+        HPhi phi = new HPhi.noInputs(local, commonMasks.dynamicType);
         joinedLocals[local] = phi;
         joinBlock.addPhi(phi);
       } else {
@@ -625,17 +620,14 @@
     if (result == null) {
       ThisLocal local = closureData.thisLocal;
       ClassElement cls = local.enclosingClass;
-      ClosedWorld closedWorld = _compiler.closedWorld;
       if (closedWorld.isUsedAsMixin(cls)) {
         // If the enclosing class is used as a mixin, [:this:] can be
         // of the class that mixins the enclosing class. These two
         // classes do not have a subclass relationship, so, for
         // simplicity, we mark the type as an interface type.
-        result =
-            new TypeMask.nonNullSubtype(cls.declaration, _compiler.closedWorld);
+        result = new TypeMask.nonNullSubtype(cls.declaration, closedWorld);
       } else {
-        result = new TypeMask.nonNullSubclass(
-            cls.declaration, _compiler.closedWorld);
+        result = new TypeMask.nonNullSubclass(cls.declaration, closedWorld);
       }
       cachedTypeOfThis = result;
     }
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart
index 712ff29..bbd214c 100644
--- a/pkg/compiler/lib/src/ssa/nodes.dart
+++ b/pkg/compiler/lib/src/ssa/nodes.dart
@@ -4,6 +4,7 @@
 
 import '../closure.dart';
 import '../common.dart';
+import '../common/backend_api.dart' show BackendClasses;
 import '../compiler.dart' show Compiler;
 import '../constants/constant_system.dart';
 import '../constants/values.dart';
@@ -949,203 +950,168 @@
         typeMask.satisfies(cls, closedWorld);
   }
 
-  bool canBePrimitive(Compiler compiler) {
-    return canBePrimitiveNumber(compiler) ||
-        canBePrimitiveArray(compiler) ||
-        canBePrimitiveBoolean(compiler) ||
-        canBePrimitiveString(compiler) ||
+  bool canBePrimitive(ClosedWorld closedWorld) {
+    return canBePrimitiveNumber(closedWorld) ||
+        canBePrimitiveArray(closedWorld) ||
+        canBePrimitiveBoolean(closedWorld) ||
+        canBePrimitiveString(closedWorld) ||
         isNull();
   }
 
-  bool canBePrimitiveNumber(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool canBePrimitiveNumber(ClosedWorld closedWorld) {
+    BackendClasses backendClasses = closedWorld.backendClasses;
     // TODO(sra): It should be possible to test only jsDoubleClass and
     // jsUInt31Class, since all others are superclasses of these two.
-    return containsType(instructionType, helpers.jsNumberClass, closedWorld) ||
-        containsType(instructionType, helpers.jsIntClass, closedWorld) ||
+    return containsType(
+            instructionType, backendClasses.numImplementation, closedWorld) ||
         containsType(
-            instructionType, helpers.jsPositiveIntClass, closedWorld) ||
-        containsType(instructionType, helpers.jsUInt32Class, closedWorld) ||
-        containsType(instructionType, helpers.jsUInt31Class, closedWorld) ||
-        containsType(instructionType, helpers.jsDoubleClass, closedWorld);
+            instructionType, backendClasses.intImplementation, closedWorld) ||
+        containsType(instructionType, backendClasses.positiveIntImplementation,
+            closedWorld) ||
+        containsType(instructionType, backendClasses.uint32Implementation,
+            closedWorld) ||
+        containsType(instructionType, backendClasses.uint31Implementation,
+            closedWorld) ||
+        containsType(
+            instructionType, backendClasses.doubleImplementation, closedWorld);
   }
 
-  bool canBePrimitiveBoolean(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return containsType(instructionType, helpers.jsBoolClass, closedWorld);
+  bool canBePrimitiveBoolean(ClosedWorld closedWorld) {
+    return containsType(instructionType,
+        closedWorld.backendClasses.boolImplementation, closedWorld);
   }
 
-  bool canBePrimitiveArray(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return containsType(instructionType, helpers.jsArrayClass, closedWorld) ||
-        containsType(instructionType, helpers.jsFixedArrayClass, closedWorld) ||
-        containsType(
-            instructionType, helpers.jsExtendableArrayClass, closedWorld) ||
-        containsType(
-            instructionType, helpers.jsUnmodifiableArrayClass, closedWorld);
+  bool canBePrimitiveArray(ClosedWorld closedWorld) {
+    BackendClasses backendClasses = closedWorld.backendClasses;
+    return containsType(
+            instructionType, backendClasses.listImplementation, closedWorld) ||
+        containsType(instructionType, backendClasses.fixedListImplementation,
+            closedWorld) ||
+        containsType(instructionType, backendClasses.growableListImplementation,
+            closedWorld) ||
+        containsType(instructionType, backendClasses.constListImplementation,
+            closedWorld);
   }
 
-  bool isIndexablePrimitive(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool isIndexablePrimitive(ClosedWorld closedWorld) {
     return instructionType.containsOnlyString(closedWorld) ||
-        isInstanceOf(instructionType, helpers.jsIndexableClass, closedWorld);
+        isInstanceOf(instructionType,
+            closedWorld.backendClasses.indexableImplementation, closedWorld);
   }
 
-  bool isFixedArray(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool isFixedArray(ClosedWorld closedWorld) {
+    BackendClasses backendClasses = closedWorld.backendClasses;
     // TODO(sra): Recognize the union of these types as well.
-    return containsOnlyType(
-            instructionType, helpers.jsFixedArrayClass, closedWorld) ||
-        containsOnlyType(
-            instructionType, helpers.jsUnmodifiableArrayClass, closedWorld);
+    return containsOnlyType(instructionType,
+            backendClasses.fixedListImplementation, closedWorld) ||
+        containsOnlyType(instructionType,
+            backendClasses.constListImplementation, closedWorld);
   }
 
-  bool isExtendableArray(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return containsOnlyType(
-        instructionType, helpers.jsExtendableArrayClass, closedWorld);
+  bool isExtendableArray(ClosedWorld closedWorld) {
+    return containsOnlyType(instructionType,
+        closedWorld.backendClasses.growableListImplementation, closedWorld);
   }
 
-  bool isMutableArray(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return isInstanceOf(
-        instructionType, helpers.jsMutableArrayClass, closedWorld);
+  bool isMutableArray(ClosedWorld closedWorld) {
+    return isInstanceOf(instructionType,
+        closedWorld.backendClasses.mutableListImplementation, closedWorld);
   }
 
-  bool isReadableArray(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return isInstanceOf(instructionType, helpers.jsArrayClass, closedWorld);
+  bool isReadableArray(ClosedWorld closedWorld) {
+    return isInstanceOf(instructionType,
+        closedWorld.backendClasses.listImplementation, closedWorld);
   }
 
-  bool isMutableIndexable(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return isInstanceOf(
-        instructionType, helpers.jsMutableIndexableClass, closedWorld);
+  bool isMutableIndexable(ClosedWorld closedWorld) {
+    return isInstanceOf(instructionType,
+        closedWorld.backendClasses.mutableIndexableImplementation, closedWorld);
   }
 
-  bool isArray(Compiler compiler) => isReadableArray(compiler);
+  bool isArray(ClosedWorld closedWorld) => isReadableArray(closedWorld);
 
-  bool canBePrimitiveString(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return containsType(instructionType, helpers.jsStringClass, closedWorld);
+  bool canBePrimitiveString(ClosedWorld closedWorld) {
+    return containsType(instructionType,
+        closedWorld.backendClasses.stringImplementation, closedWorld);
   }
 
-  bool isInteger(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isInteger(ClosedWorld closedWorld) {
     return instructionType.containsOnlyInt(closedWorld) &&
         !instructionType.isNullable;
   }
 
-  bool isUInt32(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool isUInt32(ClosedWorld closedWorld) {
     return !instructionType.isNullable &&
-        isInstanceOf(instructionType, helpers.jsUInt32Class, closedWorld);
+        isInstanceOf(instructionType,
+            closedWorld.backendClasses.uint32Implementation, closedWorld);
   }
 
-  bool isUInt31(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool isUInt31(ClosedWorld closedWorld) {
     return !instructionType.isNullable &&
-        isInstanceOf(instructionType, helpers.jsUInt31Class, closedWorld);
+        isInstanceOf(instructionType,
+            closedWorld.backendClasses.uint31Implementation, closedWorld);
   }
 
-  bool isPositiveInteger(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
+  bool isPositiveInteger(ClosedWorld closedWorld) {
     return !instructionType.isNullable &&
-        isInstanceOf(instructionType, helpers.jsPositiveIntClass, closedWorld);
+        isInstanceOf(instructionType,
+            closedWorld.backendClasses.positiveIntImplementation, closedWorld);
   }
 
-  bool isPositiveIntegerOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
-    JavaScriptBackend backend = compiler.backend;
-    BackendHelpers helpers = backend.helpers;
-    return isInstanceOf(
-        instructionType, helpers.jsPositiveIntClass, closedWorld);
+  bool isPositiveIntegerOrNull(ClosedWorld closedWorld) {
+    return isInstanceOf(instructionType,
+        closedWorld.backendClasses.positiveIntImplementation, closedWorld);
   }
 
-  bool isIntegerOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isIntegerOrNull(ClosedWorld closedWorld) {
     return instructionType.containsOnlyInt(closedWorld);
   }
 
-  bool isNumber(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isNumber(ClosedWorld closedWorld) {
     return instructionType.containsOnlyNum(closedWorld) &&
         !instructionType.isNullable;
   }
 
-  bool isNumberOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isNumberOrNull(ClosedWorld closedWorld) {
     return instructionType.containsOnlyNum(closedWorld);
   }
 
-  bool isDouble(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isDouble(ClosedWorld closedWorld) {
     return instructionType.containsOnlyDouble(closedWorld) &&
         !instructionType.isNullable;
   }
 
-  bool isDoubleOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isDoubleOrNull(ClosedWorld closedWorld) {
     return instructionType.containsOnlyDouble(closedWorld);
   }
 
-  bool isBoolean(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isBoolean(ClosedWorld closedWorld) {
     return instructionType.containsOnlyBool(closedWorld) &&
         !instructionType.isNullable;
   }
 
-  bool isBooleanOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isBooleanOrNull(ClosedWorld closedWorld) {
     return instructionType.containsOnlyBool(closedWorld);
   }
 
-  bool isString(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isString(ClosedWorld closedWorld) {
     return instructionType.containsOnlyString(closedWorld) &&
         !instructionType.isNullable;
   }
 
-  bool isStringOrNull(Compiler compiler) {
-    ClosedWorld closedWorld = compiler.closedWorld;
+  bool isStringOrNull(ClosedWorld closedWorld) {
     return instructionType.containsOnlyString(closedWorld);
   }
 
-  bool isPrimitive(Compiler compiler) {
-    return (isPrimitiveOrNull(compiler) && !instructionType.isNullable) ||
+  bool isPrimitive(ClosedWorld closedWorld) {
+    return (isPrimitiveOrNull(closedWorld) && !instructionType.isNullable) ||
         isNull();
   }
 
-  bool isPrimitiveOrNull(Compiler compiler) {
-    return isIndexablePrimitive(compiler) ||
-        isNumberOrNull(compiler) ||
-        isBooleanOrNull(compiler) ||
+  bool isPrimitiveOrNull(ClosedWorld closedWorld) {
+    return isIndexablePrimitive(closedWorld) ||
+        isNumberOrNull(closedWorld) ||
+        isBooleanOrNull(closedWorld) ||
         isNull();
   }
 
@@ -1364,7 +1330,7 @@
     return false;
   }
 
-  HInstruction convertType(Compiler compiler, DartType type, int kind) {
+  HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
     if (type == null) return this;
     type = type.unaliased;
     // Only the builder knows how to create [HTypeConversion]
@@ -1374,19 +1340,20 @@
     assert(type.treatAsRaw || type.isFunctionType);
     if (type.isDynamic) return this;
     if (type.isObject) return this;
-    JavaScriptBackend backend = compiler.backend;
     if (type.isVoid || type.isFunctionType || type.isMalformed) {
-      return new HTypeConversion(type, kind, backend.dynamicType, this);
+      return new HTypeConversion(
+          type, kind, closedWorld.commonMasks.dynamicType, this);
     }
     assert(type.isInterfaceType);
     if (kind == HTypeConversion.BOOLEAN_CONVERSION_CHECK) {
       // Boolean conversion checks work on non-nullable booleans.
-      return new HTypeConversion(type, kind, backend.boolType, this);
+      return new HTypeConversion(
+          type, kind, closedWorld.commonMasks.boolType, this);
     } else if (kind == HTypeConversion.CHECKED_MODE_CHECK && !type.treatAsRaw) {
       throw 'creating compound check to $type (this = ${this})';
     } else {
       Entity cls = type.element;
-      TypeMask subtype = new TypeMask.subtype(cls, compiler.closedWorld);
+      TypeMask subtype = new TypeMask.subtype(cls, closedWorld);
       return new HTypeConversion(type, kind, subtype, this);
     }
   }
@@ -1412,8 +1379,8 @@
   HInstruction get value => inputs[0];
 
   @override
-  HInstruction convertType(Compiler compiler, DartType type, int kind) {
-    HInstruction converted = value.convertType(compiler, type, kind);
+  HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
+    HInstruction converted = value.convertType(closedWorld, type, kind);
     if (converted == value) return this;
     HTypeConversion conversion = converted;
     conversion.inputs[0] = this;
@@ -2862,7 +2829,7 @@
   HInstruction get checkedInput =>
       usesMethodOnType ? inputs[1] : super.checkedInput;
 
-  HInstruction convertType(Compiler compiler, DartType type, int kind) {
+  HInstruction convertType(ClosedWorld closedWorld, DartType type, int kind) {
     if (typeExpression == type) {
       // Don't omit a boolean conversion (which doesn't allow `null`) unless
       // this type conversion is already a boolean conversion.
@@ -2870,7 +2837,7 @@
         return this;
       }
     }
-    return super.convertType(compiler, type, kind);
+    return super.convertType(closedWorld, type, kind);
   }
 
   bool get isCheckedModeCheck {
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index de90a81..c528667 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -40,6 +40,7 @@
         super(backend.compiler.measurer);
   String get name => 'SSA optimizer';
   Compiler get compiler => backend.compiler;
+  ClosedWorld get closedWorld => compiler.closedWorld;
   Map<HInstruction, Range> ranges = <HInstruction, Range>{};
 
   void optimize(CodegenWorkItem work, HGraph graph) {
@@ -59,16 +60,18 @@
         // Run trivial instruction simplification first to optimize
         // some patterns useful for type conversion.
         new SsaInstructionSimplifier(constantSystem, backend, this, registry),
-        new SsaTypeConversionInserter(compiler),
+        new SsaTypeConversionInserter(closedWorld),
         new SsaRedundantPhiEliminator(),
         new SsaDeadPhiEliminator(),
         new SsaTypePropagator(compiler),
         // After type propagation, more instructions can be
         // simplified.
         new SsaInstructionSimplifier(constantSystem, backend, this, registry),
-        new SsaCheckInserter(trustPrimitives, backend, boundsChecked),
+        new SsaCheckInserter(
+            trustPrimitives, backend, closedWorld, boundsChecked),
         new SsaInstructionSimplifier(constantSystem, backend, this, registry),
-        new SsaCheckInserter(trustPrimitives, backend, boundsChecked),
+        new SsaCheckInserter(
+            trustPrimitives, backend, closedWorld, boundsChecked),
         new SsaTypePropagator(compiler),
         // Run a dead code eliminator before LICM because dead
         // interceptors are often in the way of LICM'able instructions.
@@ -86,7 +89,8 @@
         // Previous optimizations may have generated new
         // opportunities for instruction simplification.
         new SsaInstructionSimplifier(constantSystem, backend, this, registry),
-        new SsaCheckInserter(trustPrimitives, backend, boundsChecked),
+        new SsaCheckInserter(
+            trustPrimitives, backend, closedWorld, boundsChecked),
       ];
       phases.forEach(runPhase);
 
@@ -105,7 +109,8 @@
           new SsaCodeMotion(),
           new SsaValueRangeAnalyzer(compiler, constantSystem, this),
           new SsaInstructionSimplifier(constantSystem, backend, this, registry),
-          new SsaCheckInserter(trustPrimitives, backend, boundsChecked),
+          new SsaCheckInserter(
+              trustPrimitives, backend, closedWorld, boundsChecked),
           new SsaSimplifyInterceptors(compiler, constantSystem, work.element),
           new SsaDeadCodeEliminator(compiler, this),
         ];
@@ -167,6 +172,8 @@
 
   CoreClasses get coreClasses => compiler.coreClasses;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   BackendHelpers get helpers => backend.helpers;
 
   void visitGraph(HGraph visitee) {
@@ -187,12 +194,12 @@
         // might be that an operation thought to return double, can be
         // simplified to an int. For example:
         // `2.5 * 10`.
-        if (!(replacement.isNumberOrNull(compiler) &&
-            instruction.isNumberOrNull(compiler))) {
+        if (!(replacement.isNumberOrNull(closedWorld) &&
+            instruction.isNumberOrNull(closedWorld))) {
           // If we can replace [instruction] with [replacement], then
           // [replacement]'s type can be narrowed.
           TypeMask newType = replacement.instructionType
-              .intersection(instruction.instructionType, compiler.closedWorld);
+              .intersection(instruction.instructionType, closedWorld);
           replacement.instructionType = newType;
         }
 
@@ -275,7 +282,7 @@
     List<HInstruction> inputs = node.inputs;
     assert(inputs.length == 1);
     HInstruction input = inputs[0];
-    if (input.isBoolean(compiler)) return input;
+    if (input.isBoolean(closedWorld)) return input;
 
     // If the code is unreachable, remove the HBoolify.  This can happen when
     // there is a throw expression in a short-circuit conditional.  Removing the
@@ -285,7 +292,7 @@
 
     // All values that cannot be 'true' are boolified to false.
     TypeMask mask = input.instructionType;
-    if (!mask.contains(helpers.jsBoolClass, compiler.closedWorld)) {
+    if (!mask.contains(helpers.jsBoolClass, closedWorld)) {
       return graph.addConstantBool(false, compiler);
     }
     return node;
@@ -322,7 +329,7 @@
 
   HInstruction tryOptimizeLengthInterceptedGetter(HInvokeDynamic node) {
     HInstruction actualReceiver = node.inputs[1];
-    if (actualReceiver.isIndexablePrimitive(compiler)) {
+    if (actualReceiver.isIndexablePrimitive(closedWorld)) {
       if (actualReceiver.isConstantString()) {
         HConstant constantInput = actualReceiver;
         StringConstantValue constant = constantInput.constant;
@@ -335,15 +342,14 @@
       MemberElement element = helpers.jsIndexableLength;
       bool isFixed = isFixedLength(actualReceiver.instructionType, compiler);
       TypeMask actualType = node.instructionType;
-      ClosedWorld closedWorld = compiler.closedWorld;
-      TypeMask resultType = backend.positiveIntType;
+      TypeMask resultType = closedWorld.commonMasks.positiveIntType;
       // If we already have computed a more specific type, keep that type.
       if (HInstruction.isInstanceOf(
           actualType, helpers.jsUInt31Class, closedWorld)) {
-        resultType = backend.uint31Type;
+        resultType = closedWorld.commonMasks.uint31Type;
       } else if (HInstruction.isInstanceOf(
           actualType, helpers.jsUInt32Class, closedWorld)) {
-        resultType = backend.uint32Type;
+        resultType = closedWorld.commonMasks.uint32Type;
       }
       HFieldGet result = new HFieldGet(element, actualReceiver, resultType,
           isAssignable: !isFixed);
@@ -368,23 +374,21 @@
 
     // Try converting the instruction to a builtin instruction.
     HInstruction instruction =
-        node.specializer.tryConvertToBuiltin(node, compiler);
+        node.specializer.tryConvertToBuiltin(node, compiler, closedWorld);
     if (instruction != null) return instruction;
 
     Selector selector = node.selector;
     TypeMask mask = node.mask;
     HInstruction input = node.inputs[1];
 
-    ClosedWorld world = compiler.closedWorld;
-
     bool applies(Element element) {
       return selector.applies(element) &&
-          (mask == null || mask.canHit(element, selector, world));
+          (mask == null || mask.canHit(element, selector, closedWorld));
     }
 
     if (selector.isCall || selector.isOperator) {
       MethodElement target;
-      if (input.isExtendableArray(compiler)) {
+      if (input.isExtendableArray(closedWorld)) {
         if (applies(helpers.jsArrayRemoveLast)) {
           target = helpers.jsArrayRemoveLast;
         } else if (applies(helpers.jsArrayAdd)) {
@@ -394,10 +398,10 @@
             target = helpers.jsArrayAdd;
           }
         }
-      } else if (input.isStringOrNull(compiler)) {
+      } else if (input.isStringOrNull(closedWorld)) {
         if (applies(helpers.jsStringSplit)) {
           HInstruction argument = node.inputs[2];
-          if (argument.isString(compiler)) {
+          if (argument.isString(closedWorld)) {
             target = helpers.jsStringSplit;
           }
         } else if (applies(helpers.jsStringOperatorAdd)) {
@@ -405,7 +409,7 @@
           // make sure the receiver and the argument are not null.
           // TODO(sra): Do this via [node.specializer].
           HInstruction argument = node.inputs[2];
-          if (argument.isString(compiler) && !input.canBeNull()) {
+          if (argument.isString(closedWorld) && !input.canBeNull()) {
             return new HStringConcat(input, argument, node.instructionType);
           }
         } else if (applies(helpers.jsStringToString) && !input.canBeNull()) {
@@ -559,7 +563,7 @@
 
   HInstruction visitBoundsCheck(HBoundsCheck node) {
     HInstruction index = node.index;
-    if (index.isInteger(compiler)) return node;
+    if (index.isInteger(closedWorld)) return node;
     if (index.isConstant()) {
       HConstant constantInstruction = index;
       assert(!constantInstruction.constant.isInt);
@@ -587,7 +591,7 @@
     HInstruction right = node.right;
     // We can only perform this rewriting on Integer, as it is not
     // valid for -0.0.
-    if (left.isInteger(compiler) && right.isInteger(compiler)) {
+    if (left.isInteger(closedWorld) && right.isInteger(closedWorld)) {
       if (left is HConstant && left.constant.isZero) return right;
       if (right is HConstant && right.constant.isZero) return left;
     }
@@ -597,7 +601,7 @@
   HInstruction visitMultiply(HMultiply node) {
     HInstruction left = node.left;
     HInstruction right = node.right;
-    if (left.isNumber(compiler) && right.isNumber(compiler)) {
+    if (left.isNumber(closedWorld) && right.isNumber(closedWorld)) {
       if (left is HConstant && left.constant.isOne) return right;
       if (right is HConstant && right.constant.isOne) return left;
     }
@@ -643,8 +647,9 @@
 
     // Intersection of int and double return conflicting, so
     // we don't optimize on numbers to preserve the runtime semantics.
-    if (!(left.isNumberOrNull(compiler) && right.isNumberOrNull(compiler))) {
-      if (leftType.isDisjoint(rightType, compiler.closedWorld)) {
+    if (!(left.isNumberOrNull(closedWorld) &&
+        right.isNumberOrNull(closedWorld))) {
+      if (leftType.isDisjoint(rightType, closedWorld)) {
         return makeFalse();
       }
     }
@@ -657,15 +662,15 @@
       if (constant.constant.isTrue) {
         return input;
       } else {
-        return new HNot(input, backend.boolType);
+        return new HNot(input, closedWorld.commonMasks.boolType);
       }
     }
 
-    if (left.isConstantBoolean() && right.isBoolean(compiler)) {
+    if (left.isConstantBoolean() && right.isBoolean(closedWorld)) {
       return compareConstant(left, right);
     }
 
-    if (right.isConstantBoolean() && left.isBoolean(compiler)) {
+    if (right.isConstantBoolean() && left.isBoolean(closedWorld)) {
       return compareConstant(right, left);
     }
 
@@ -674,8 +679,8 @@
       // dart2js runtime has not always been consistent with the Dart
       // specification (section 16.0.1), which makes distinctions on NaNs and
       // -0.0 that are hard to implement efficiently.
-      if (left.isIntegerOrNull(compiler)) return makeTrue();
-      if (!left.canBePrimitiveNumber(compiler)) return makeTrue();
+      if (left.isIntegerOrNull(closedWorld)) return makeTrue();
+      if (!left.canBePrimitiveNumber(closedWorld)) return makeTrue();
     }
 
     return null;
@@ -735,9 +740,8 @@
       return graph.addConstantBool(true, compiler);
     }
 
-    ClosedWorld closedWorld = compiler.closedWorld;
     HInstruction expression = node.expression;
-    if (expression.isInteger(compiler)) {
+    if (expression.isInteger(closedWorld)) {
       if (element == coreClasses.intClass ||
           element == coreClasses.numClass ||
           Elements.isNumberOrStringSupertype(element, compiler)) {
@@ -749,7 +753,7 @@
       } else {
         return graph.addConstantBool(false, compiler);
       }
-    } else if (expression.isDouble(compiler)) {
+    } else if (expression.isDouble(closedWorld)) {
       if (element == coreClasses.doubleClass ||
           element == coreClasses.numClass ||
           Elements.isNumberOrStringSupertype(element, compiler)) {
@@ -762,14 +766,14 @@
       } else {
         return graph.addConstantBool(false, compiler);
       }
-    } else if (expression.isNumber(compiler)) {
+    } else if (expression.isNumber(closedWorld)) {
       if (element == coreClasses.numClass) {
         return graph.addConstantBool(true, compiler);
       } else {
         // We cannot just return false, because the expression may be of
         // type int or double.
       }
-    } else if (expression.canBePrimitiveNumber(compiler) &&
+    } else if (expression.canBePrimitiveNumber(closedWorld) &&
         element == coreClasses.intClass) {
       // We let the JS semantics decide for that check.
       return node;
@@ -785,7 +789,7 @@
           : new TypeMask.nonNullSubtype(element, closedWorld);
       if (expressionMask.union(typeMask, closedWorld) == typeMask) {
         return graph.addConstantBool(true, compiler);
-      } else if (expressionMask.isDisjoint(typeMask, compiler.closedWorld)) {
+      } else if (expressionMask.isDisjoint(typeMask, closedWorld)) {
         return graph.addConstantBool(false, compiler);
       }
     }
@@ -830,7 +834,6 @@
   }
 
   HInstruction removeIfCheckAlwaysSucceeds(HCheck node, TypeMask checkedType) {
-    ClosedWorld closedWorld = compiler.closedWorld;
     if (checkedType.containsAll(closedWorld)) return node;
     HInstruction input = node.checkedInput;
     TypeMask inputType = input.instructionType;
@@ -854,7 +857,7 @@
         // should not be necessary but it currently makes it easier for
         // other optimizations to reason about a fixed length constructor
         // that we know takes an int.
-        if (receiver.inputs[0].isInteger(compiler)) {
+        if (receiver.inputs[0].isInteger(closedWorld)) {
           return receiver.inputs[0];
         }
       } else if (receiver.isConstantList() || receiver.isConstantString()) {
@@ -919,8 +922,8 @@
     if (field != null) return directFieldGet(receiver, field);
 
     if (node.element == null) {
-      MemberElement element = compiler.closedWorld
-          .locateSingleElement(node.selector, receiver.instructionType);
+      MemberElement element = closedWorld.locateSingleElement(
+          node.selector, receiver.instructionType);
       if (element != null && element.name == node.selector.name) {
         node.element = element;
         if (element.isFunction) {
@@ -935,7 +938,7 @@
   }
 
   HInstruction directFieldGet(HInstruction receiver, FieldElement field) {
-    bool isAssignable = !compiler.closedWorld.fieldNeverChanges(field);
+    bool isAssignable = !closedWorld.fieldNeverChanges(field);
 
     TypeMask type;
     if (backend.isNative(field.enclosingClass)) {
@@ -972,8 +975,8 @@
         // can skip the test an generate the HFieldSet.
         return node;
       }
-      HInstruction other =
-          value.convertType(compiler, type, HTypeConversion.CHECKED_MODE_CHECK);
+      HInstruction other = value.convertType(
+          closedWorld, type, HTypeConversion.CHECKED_MODE_CHECK);
       if (other != value) {
         node.block.addBefore(node, other);
         value = other;
@@ -997,17 +1000,17 @@
     } else if (element == backend.helpers.checkInt) {
       if (node.inputs.length == 1) {
         HInstruction argument = node.inputs[0];
-        if (argument.isInteger(compiler)) return argument;
+        if (argument.isInteger(closedWorld)) return argument;
       }
     } else if (element == backend.helpers.checkNum) {
       if (node.inputs.length == 1) {
         HInstruction argument = node.inputs[0];
-        if (argument.isNumber(compiler)) return argument;
+        if (argument.isNumber(closedWorld)) return argument;
       }
     } else if (element == backend.helpers.checkString) {
       if (node.inputs.length == 1) {
         HInstruction argument = node.inputs[0];
-        if (argument.isString(compiler)) return argument;
+        if (argument.isString(closedWorld)) return argument;
       }
     }
     return node;
@@ -1057,12 +1060,13 @@
             leftString.primitiveValue, rightString.primitiveValue)),
         compiler);
     if (prefix == null) return folded;
-    return new HStringConcat(prefix, folded, backend.stringType);
+    return new HStringConcat(
+        prefix, folded, closedWorld.commonMasks.stringType);
   }
 
   HInstruction visitStringify(HStringify node) {
     HInstruction input = node.inputs[0];
-    if (input.isString(compiler)) return input;
+    if (input.isString(closedWorld)) return input;
 
     HInstruction tryConstant() {
       if (!input.isConstant()) return null;
@@ -1086,12 +1090,11 @@
       // it directly. Keep the stringifier for primitives (since they have fast
       // path code in the stringifier) and for classes requiring interceptors
       // (since SsaInstructionSimplifier runs after SsaSimplifyInterceptors).
-      if (input.canBePrimitive(compiler)) return null;
+      if (input.canBePrimitive(closedWorld)) return null;
       if (input.canBeNull()) return null;
       Selector selector = Selectors.toString_;
       TypeMask toStringType = TypeMaskFactory.inferredTypeForSelector(
           selector, input.instructionType, compiler);
-      ClosedWorld closedWorld = compiler.closedWorld;
       if (!toStringType.containsOnlyString(closedWorld)) return null;
       // All intercepted classes extend `Interceptor`, so if the receiver can't
       // be a class extending `Interceptor` then it can be called directly.
@@ -1116,7 +1119,6 @@
   }
 
   bool needsSubstitutionForTypeVariableAccess(ClassElement cls) {
-    ClosedWorld closedWorld = compiler.closedWorld;
     if (closedWorld.isUsedAsMixin(cls)) return true;
 
     return closedWorld.anyStrictSubclassOf(cls, (ClassElement subclass) {
@@ -1169,7 +1171,7 @@
       }
 
       if (source == null) return null;
-      return new HTypeInfoReadRaw(source, backend.dynamicType);
+      return new HTypeInfoReadRaw(source, closedWorld.commonMasks.dynamicType);
     }
 
     // TODO(sra): Consider fusing type expression trees with no type variables,
@@ -1192,7 +1194,7 @@
             TypeInfoExpressionKind.COMPLETE,
             typeArgument,
             const <HInstruction>[],
-            backend.dynamicType);
+            closedWorld.commonMasks.dynamicType);
         return replacement;
       }
       return node;
@@ -1222,7 +1224,7 @@
           TypeInfoExpressionKind.COMPLETE,
           type,
           arguments,
-          backend.dynamicType);
+          closedWorld.commonMasks.dynamicType);
       return replacement;
     }
 
@@ -1289,10 +1291,12 @@
   final Set<HInstruction> boundsChecked;
   final bool trustPrimitives;
   final JavaScriptBackend backend;
+  final ClosedWorld closedWorld;
   final String name = "SsaCheckInserter";
   HGraph graph;
 
-  SsaCheckInserter(this.trustPrimitives, this.backend, this.boundsChecked);
+  SsaCheckInserter(
+      this.trustPrimitives, this.backend, this.closedWorld, this.boundsChecked);
 
   BackendHelpers get helpers => backend.helpers;
 
@@ -1319,14 +1323,14 @@
   HBoundsCheck insertBoundsCheck(
       HInstruction indexNode, HInstruction array, HInstruction indexArgument) {
     Compiler compiler = backend.compiler;
-    HFieldGet length = new HFieldGet(
-        helpers.jsIndexableLength, array, backend.positiveIntType,
+    HFieldGet length = new HFieldGet(helpers.jsIndexableLength, array,
+        closedWorld.commonMasks.positiveIntType,
         isAssignable: !isFixedLength(array.instructionType, compiler));
     indexNode.block.addBefore(indexNode, length);
 
-    TypeMask type = indexArgument.isPositiveInteger(compiler)
+    TypeMask type = indexArgument.isPositiveInteger(closedWorld)
         ? indexArgument.instructionType
-        : backend.positiveIntType;
+        : closedWorld.commonMasks.positiveIntType;
     HBoundsCheck check = new HBoundsCheck(indexArgument, length, array, type);
     indexNode.block.addBefore(indexNode, check);
     // If the index input to the bounds check was not known to be an integer
@@ -1336,7 +1340,7 @@
     // the index eg. if it is a constant.  The range information from the
     // BoundsCheck instruction is attached to the input directly by
     // visitBoundsCheck in the SsaValueRangeAnalyzer.
-    if (!indexArgument.isInteger(compiler)) {
+    if (!indexArgument.isInteger(closedWorld)) {
       indexArgument.replaceAllUsersDominatedBy(indexNode, check);
     }
     boundsChecked.add(indexNode);
@@ -1382,6 +1386,8 @@
 
   SsaDeadCodeEliminator(this.compiler, this.optimizer);
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   HInstruction zapInstructionCache;
   HInstruction get zapInstruction {
     if (zapInstructionCache == null) {
@@ -1512,7 +1518,7 @@
   }
 
   void visitGraph(HGraph graph) {
-    analyzer = new SsaLiveBlockAnalyzer(graph, compiler, optimizer);
+    analyzer = new SsaLiveBlockAnalyzer(graph, closedWorld, optimizer);
     analyzer.analyze();
     visitPostDominatorTree(graph);
     cleanPhis(graph);
@@ -1600,9 +1606,9 @@
   final Set<HBasicBlock> live = new Set<HBasicBlock>();
   final List<HBasicBlock> worklist = <HBasicBlock>[];
   final SsaOptimizerTask optimizer;
-  final Compiler compiler;
+  final ClosedWorld closedWorld;
 
-  SsaLiveBlockAnalyzer(this.graph, this.compiler, this.optimizer);
+  SsaLiveBlockAnalyzer(this.graph, this.closedWorld, this.optimizer);
 
   Map<HInstruction, Range> get ranges => optimizer.ranges;
 
@@ -1641,7 +1647,7 @@
   }
 
   void visitSwitch(HSwitch node) {
-    if (node.expression.isInteger(compiler)) {
+    if (node.expression.isInteger(closedWorld)) {
       Range switchRange = ranges[node.expression];
       if (switchRange != null &&
           switchRange.lower is IntValue &&
@@ -2095,9 +2101,9 @@
 class SsaTypeConversionInserter extends HBaseVisitor
     implements OptimizationPhase {
   final String name = "SsaTypeconversionInserter";
-  final Compiler compiler;
+  final ClosedWorld closedWorld;
 
-  SsaTypeConversionInserter(this.compiler);
+  SsaTypeConversionInserter(this.closedWorld);
 
   void visitGraph(HGraph graph) {
     visitDominatorTree(graph);
@@ -2135,8 +2141,7 @@
 
     if (trueTargets.isEmpty && falseTargets.isEmpty) return;
 
-    TypeMask convertedType =
-        new TypeMask.nonNullSubtype(element, compiler.closedWorld);
+    TypeMask convertedType = new TypeMask.nonNullSubtype(element, closedWorld);
     HInstruction input = instruction.expression;
 
     for (HBasicBlock block in trueTargets) {
diff --git a/pkg/compiler/lib/src/ssa/ssa_branch_builder.dart b/pkg/compiler/lib/src/ssa/ssa_branch_builder.dart
index c0dfa0b..b34552c 100644
--- a/pkg/compiler/lib/src/ssa/ssa_branch_builder.dart
+++ b/pkg/compiler/lib/src/ssa/ssa_branch_builder.dart
@@ -161,8 +161,7 @@
       boolifiedLeft = builder.popBoolified();
       builder.stack.add(boolifiedLeft);
       if (!isAnd) {
-        JavaScriptBackend backend = compiler.backend;
-        builder.push(new HNot(builder.pop(), backend.boolType));
+        builder.push(new HNot(builder.pop(), builder.commonMasks.boolType));
       }
     }
 
@@ -173,9 +172,10 @@
 
     handleIf(visitCondition, visitThen, null);
     HConstant notIsAnd = builder.graph.addConstantBool(!isAnd, compiler);
-    JavaScriptBackend backend = compiler.backend;
     HPhi result = new HPhi.manyInputs(
-        null, <HInstruction>[boolifiedRight, notIsAnd], backend.dynamicType);
+        null,
+        <HInstruction>[boolifiedRight, notIsAnd],
+        builder.commonMasks.dynamicType);
     builder.current.addPhi(result);
     builder.stack.add(result);
   }
@@ -200,9 +200,8 @@
 
     if (isExpression) {
       assert(thenValue != null && elseValue != null);
-      JavaScriptBackend backend = compiler.backend;
-      HPhi phi = new HPhi.manyInputs(
-          null, <HInstruction>[thenValue, elseValue], backend.dynamicType);
+      HPhi phi = new HPhi.manyInputs(null, <HInstruction>[thenValue, elseValue],
+          builder.commonMasks.dynamicType);
       joinBranch.block.addPhi(phi);
       builder.stack.add(phi);
     }
diff --git a/pkg/compiler/lib/src/ssa/ssa_tracer.dart b/pkg/compiler/lib/src/ssa/ssa_tracer.dart
index 6c1d543..ce13448 100644
--- a/pkg/compiler/lib/src/ssa/ssa_tracer.dart
+++ b/pkg/compiler/lib/src/ssa/ssa_tracer.dart
@@ -10,6 +10,7 @@
 import '../diagnostics/invariant.dart' show DEBUG_MODE;
 import '../js_backend/js_backend.dart';
 import '../tracer.dart';
+import '../world.dart' show ClosedWorld;
 import 'nodes.dart';
 
 /**
@@ -117,6 +118,8 @@
 
   HInstructionStringifier(this.currentBlock, this.compiler);
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   visit(HInstruction node) => '${node.accept(this)} ${node.instructionType}';
 
   String temporaryId(HInstruction instruction) {
@@ -125,27 +128,27 @@
       prefix = 'u';
     } else if (instruction.isConflicting()) {
       prefix = 'c';
-    } else if (instruction.isExtendableArray(compiler)) {
+    } else if (instruction.isExtendableArray(closedWorld)) {
       prefix = 'e';
-    } else if (instruction.isFixedArray(compiler)) {
+    } else if (instruction.isFixedArray(closedWorld)) {
       prefix = 'f';
-    } else if (instruction.isMutableArray(compiler)) {
+    } else if (instruction.isMutableArray(closedWorld)) {
       prefix = 'm';
-    } else if (instruction.isReadableArray(compiler)) {
+    } else if (instruction.isReadableArray(closedWorld)) {
       prefix = 'a';
-    } else if (instruction.isString(compiler)) {
+    } else if (instruction.isString(closedWorld)) {
       prefix = 's';
-    } else if (instruction.isIndexablePrimitive(compiler)) {
+    } else if (instruction.isIndexablePrimitive(closedWorld)) {
       prefix = 'r';
-    } else if (instruction.isBoolean(compiler)) {
+    } else if (instruction.isBoolean(closedWorld)) {
       prefix = 'b';
-    } else if (instruction.isInteger(compiler)) {
+    } else if (instruction.isInteger(closedWorld)) {
       prefix = 'i';
-    } else if (instruction.isDouble(compiler)) {
+    } else if (instruction.isDouble(closedWorld)) {
       prefix = 'd';
-    } else if (instruction.isNumber(compiler)) {
+    } else if (instruction.isNumber(closedWorld)) {
       prefix = 'n';
-    } else if (instruction.instructionType.containsAll(compiler.closedWorld)) {
+    } else if (instruction.instructionType.containsAll(closedWorld)) {
       prefix = 'v';
     } else {
       prefix = 'U';
diff --git a/pkg/compiler/lib/src/ssa/type_builder.dart b/pkg/compiler/lib/src/ssa/type_builder.dart
index 605678b..c04d415 100644
--- a/pkg/compiler/lib/src/ssa/type_builder.dart
+++ b/pkg/compiler/lib/src/ssa/type_builder.dart
@@ -30,7 +30,7 @@
     if (type.isObject) return original;
     // The type element is either a class or the void element.
     Element element = type.element;
-    TypeMask mask = new TypeMask.subtype(element, builder.compiler.closedWorld);
+    TypeMask mask = new TypeMask.subtype(element, builder.closedWorld);
     return new HTypeKnown.pinned(mask, original);
   }
 
@@ -133,9 +133,9 @@
     assert(member.isInstanceMember);
     assert(variable is! MethodTypeVariableType);
     HInstruction target = builder.localsHandler.readThis();
-    builder.push(
-        new HTypeInfoReadVariable(variable, target, builder.backend.dynamicType)
-          ..sourceInformation = sourceInformation);
+    builder.push(new HTypeInfoReadVariable(
+        variable, target, builder.commonMasks.dynamicType)
+      ..sourceInformation = sourceInformation);
     return builder.pop();
   }
 
@@ -154,7 +154,7 @@
         TypeInfoExpressionKind.INSTANCE,
         interface.element.thisType,
         inputs,
-        builder.backend.dynamicType);
+        builder.commonMasks.dynamicType);
     return representation;
   }
 
@@ -195,7 +195,7 @@
         TypeInfoExpressionKind.COMPLETE,
         argument,
         inputs,
-        builder.backend.dynamicType)..sourceInformation = sourceInformation;
+        builder.commonMasks.dynamicType)..sourceInformation = sourceInformation;
     builder.add(result);
     return result;
   }
@@ -246,7 +246,7 @@
     } else if (type.isFunctionType) {
       return builder.buildFunctionTypeConversion(original, type, kind);
     } else {
-      return original.convertType(builder.compiler, type, kind);
+      return original.convertType(builder.closedWorld, type, kind);
     }
   }
 }
diff --git a/pkg/compiler/lib/src/ssa/types_propagation.dart b/pkg/compiler/lib/src/ssa/types_propagation.dart
index 63da628..b02072d 100644
--- a/pkg/compiler/lib/src/ssa/types_propagation.dart
+++ b/pkg/compiler/lib/src/ssa/types_propagation.dart
@@ -109,18 +109,21 @@
   TypeMask visitBinaryArithmetic(HBinaryArithmetic instruction) {
     HInstruction left = instruction.left;
     HInstruction right = instruction.right;
-    if (left.isInteger(compiler) && right.isInteger(compiler)) {
-      return backend.intType;
+    if (left.isInteger(closedWorld) && right.isInteger(closedWorld)) {
+      return closedWorld.commonMasks.intType;
     }
-    if (left.isDouble(compiler)) return backend.doubleType;
-    return backend.numType;
+    if (left.isDouble(closedWorld)) {
+      return closedWorld.commonMasks.doubleType;
+    }
+    return closedWorld.commonMasks.numType;
   }
 
   TypeMask checkPositiveInteger(HBinaryArithmetic instruction) {
     HInstruction left = instruction.left;
     HInstruction right = instruction.right;
-    if (left.isPositiveInteger(compiler) && right.isPositiveInteger(compiler)) {
-      return backend.positiveIntType;
+    if (left.isPositiveInteger(closedWorld) &&
+        right.isPositiveInteger(closedWorld)) {
+      return closedWorld.commonMasks.positiveIntType;
     }
     return visitBinaryArithmetic(instruction);
   }
@@ -147,7 +150,9 @@
     HInstruction operand = instruction.operand;
     // We have integer subclasses that represent ranges, so widen any int
     // subclass to full integer.
-    if (operand.isInteger(compiler)) return backend.intType;
+    if (operand.isInteger(closedWorld)) {
+      return closedWorld.commonMasks.intType;
+    }
     return instruction.operand.instructionType;
   }
 
@@ -157,7 +162,7 @@
   }
 
   TypeMask visitPhi(HPhi phi) {
-    TypeMask candidateType = backend.emptyType;
+    TypeMask candidateType = closedWorld.commonMasks.emptyType;
     for (int i = 0, length = phi.inputs.length; i < length; i++) {
       TypeMask inputType = phi.inputs[i].instructionType;
       candidateType = candidateType.union(inputType, closedWorld);
@@ -175,11 +180,11 @@
       // We only do an int check if the input is integer or null.
       if (checkedType.containsOnlyNum(closedWorld) &&
           !checkedType.containsOnlyDouble(closedWorld) &&
-          input.isIntegerOrNull(compiler)) {
-        instruction.checkedType = backend.intType;
+          input.isIntegerOrNull(closedWorld)) {
+        instruction.checkedType = closedWorld.commonMasks.intType;
       } else if (checkedType.containsOnlyInt(closedWorld) &&
-          !input.isIntegerOrNull(compiler)) {
-        instruction.checkedType = backend.numType;
+          !input.isIntegerOrNull(closedWorld)) {
+        instruction.checkedType = closedWorld.commonMasks.numType;
       }
     }
 
@@ -193,9 +198,9 @@
       if (inputType.containsOnlyInt(closedWorld) &&
           checkedType.containsOnlyDouble(closedWorld)) {
         if (inputType.isNullable && checkedType.isNullable) {
-          outputType = backend.doubleType.nullable();
+          outputType = closedWorld.commonMasks.doubleType.nullable();
         } else {
-          outputType = backend.doubleType;
+          outputType = closedWorld.commonMasks.doubleType;
         }
       }
     }
@@ -248,7 +253,7 @@
       // If the instruction's type is integer or null, the codegen
       // will emit a null check, which is enough to know if it will
       // hit a noSuchMethod.
-      return instruction.isIntegerOrNull(compiler);
+      return instruction.isIntegerOrNull(closedWorld);
     }
     return true;
   }
@@ -259,8 +264,8 @@
   bool checkReceiver(HInvokeDynamic instruction) {
     assert(instruction.isInterceptedCall);
     HInstruction receiver = instruction.inputs[1];
-    if (receiver.isNumber(compiler)) return false;
-    if (receiver.isNumberOrNull(compiler)) {
+    if (receiver.isNumber(closedWorld)) return false;
+    if (receiver.isNumberOrNull(closedWorld)) {
       convertInput(
           instruction,
           receiver,
@@ -268,7 +273,7 @@
           HTypeConversion.RECEIVER_TYPE_CHECK);
       return true;
     } else if (instruction.element == null) {
-      Iterable<Element> targets = compiler.closedWorld.allFunctions
+      Iterable<Element> targets = closedWorld.allFunctions
           .filter(instruction.selector, instruction.mask);
       if (targets.length == 1) {
         MemberElement target = targets.first;
@@ -302,11 +307,11 @@
     HInstruction right = instruction.inputs[2];
 
     Selector selector = instruction.selector;
-    if (selector.isOperator && left.isNumber(compiler)) {
-      if (right.isNumber(compiler)) return false;
-      TypeMask type = right.isIntegerOrNull(compiler)
+    if (selector.isOperator && left.isNumber(closedWorld)) {
+      if (right.isNumber(closedWorld)) return false;
+      TypeMask type = right.isIntegerOrNull(closedWorld)
           ? right.instructionType.nonNullable()
-          : backend.numType;
+          : closedWorld.commonMasks.numType;
       // TODO(ngeoffray): Some number operations don't have a builtin
       // variant and will do the check in their method anyway. We
       // still add a check because it allows to GVN these operations,
@@ -371,7 +376,7 @@
     if (!instruction.selector.isClosureCall) {
       TypeMask newType;
       TypeMask computeNewType() {
-        newType = compiler.closedWorld.allFunctions
+        newType = closedWorld.allFunctions
             .receiverType(instruction.selector, instruction.mask);
         newType = newType.intersection(receiverType, closedWorld);
         return newType;
@@ -406,6 +411,6 @@
     }
 
     return instruction.specializer
-        .computeTypeFromInputTypes(instruction, compiler);
+        .computeTypeFromInputTypes(instruction, compiler, closedWorld);
   }
 }
diff --git a/pkg/compiler/lib/src/ssa/value_range_analyzer.dart b/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
index 1882fc6..67e861e 100644
--- a/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
+++ b/pkg/compiler/lib/src/ssa/value_range_analyzer.dart
@@ -7,6 +7,7 @@
 import '../constants/constant_system.dart';
 import '../constants/values.dart';
 import '../js_backend/js_backend.dart';
+import '../world.dart' show ClosedWorld;
 import 'nodes.dart';
 import 'optimize.dart';
 
@@ -611,6 +612,8 @@
       : info = new ValueRangeInfo(constantSystem),
         this.constantSystem = constantSystem;
 
+  ClosedWorld get closedWorld => compiler.closedWorld;
+
   void visitGraph(HGraph graph) {
     this.graph = graph;
     visitDominatorTree(graph);
@@ -632,7 +635,7 @@
   void visitBasicBlock(HBasicBlock block) {
     void visit(HInstruction instruction) {
       Range range = instruction.accept(this);
-      if (instruction.isInteger(compiler)) {
+      if (instruction.isInteger(closedWorld)) {
         assert(range != null);
         ranges[instruction] = range;
       }
@@ -643,10 +646,10 @@
   }
 
   Range visitInstruction(HInstruction instruction) {
-    if (instruction.isPositiveInteger(compiler)) {
+    if (instruction.isPositiveInteger(closedWorld)) {
       return info.newNormalizedRange(
           info.intZero, info.newPositiveValue(instruction));
-    } else if (instruction.isInteger(compiler)) {
+    } else if (instruction.isInteger(closedWorld)) {
       InstructionValue value = info.newInstructionValue(instruction);
       return info.newNormalizedRange(value, value);
     } else {
@@ -655,16 +658,17 @@
   }
 
   Range visitPhi(HPhi phi) {
-    if (!phi.isInteger(compiler)) return info.newUnboundRange();
+    if (!phi.isInteger(closedWorld)) return info.newUnboundRange();
     // Some phases may replace instructions that change the inputs of
     // this phi. Only the [SsaTypesPropagation] phase will update the
     // phi type. Play it safe by assuming the [SsaTypesPropagation]
     // phase is not necessarily run before the [ValueRangeAnalyzer].
-    if (phi.inputs.any((i) => !i.isInteger(compiler))) {
+    if (phi.inputs.any((i) => !i.isInteger(closedWorld))) {
       return info.newUnboundRange();
     }
     if (phi.block.isLoopHeader()) {
-      Range range = new LoopUpdateRecognizer(compiler, ranges, info).run(phi);
+      Range range =
+          new LoopUpdateRecognizer(closedWorld, ranges, info).run(phi);
       if (range == null) return info.newUnboundRange();
       return range;
     }
@@ -677,7 +681,7 @@
   }
 
   Range visitConstant(HConstant hConstant) {
-    if (!hConstant.isInteger(compiler)) return info.newUnboundRange();
+    if (!hConstant.isInteger(closedWorld)) return info.newUnboundRange();
     ConstantValue constant = hConstant.constant;
     NumConstantValue constantNum;
     if (constant is DeferredConstantValue) {
@@ -694,8 +698,8 @@
   }
 
   Range visitFieldGet(HFieldGet fieldGet) {
-    if (!fieldGet.isInteger(compiler)) return info.newUnboundRange();
-    if (!fieldGet.receiver.isIndexablePrimitive(compiler)) {
+    if (!fieldGet.isInteger(closedWorld)) return info.newUnboundRange();
+    if (!fieldGet.receiver.isIndexablePrimitive(closedWorld)) {
       return visitInstruction(fieldGet);
     }
     JavaScriptBackend backend = compiler.backend;
@@ -715,7 +719,7 @@
     Range lengthRange = ranges[check.length];
     if (indexRange == null) {
       indexRange = info.newUnboundRange();
-      assert(!check.index.isInteger(compiler));
+      assert(!check.index.isInteger(closedWorld));
     }
     if (lengthRange == null) {
       // We might have lost the length range due to a type conversion that
@@ -723,7 +727,7 @@
       // get to this point anyway, so no need to try and refine ranges.
       return indexRange;
     }
-    assert(check.length.isInteger(compiler));
+    assert(check.length.isInteger(closedWorld));
 
     // Check if the index is strictly below the upper bound of the length
     // range.
@@ -776,8 +780,8 @@
   Range visitRelational(HRelational relational) {
     HInstruction right = relational.right;
     HInstruction left = relational.left;
-    if (!left.isInteger(compiler)) return info.newUnboundRange();
-    if (!right.isInteger(compiler)) return info.newUnboundRange();
+    if (!left.isInteger(closedWorld)) return info.newUnboundRange();
+    if (!right.isInteger(closedWorld)) return info.newUnboundRange();
     BinaryOperation operation = relational.operation(constantSystem);
     Range rightRange = ranges[relational.right];
     Range leftRange = ranges[relational.left];
@@ -812,7 +816,7 @@
     if (divisor != null) {
       // For Integer values we can be precise in the upper bound,
       // so special case those.
-      if (left.isInteger(compiler) && right.isInteger(compiler)) {
+      if (left.isInteger(closedWorld) && right.isInteger(closedWorld)) {
         if (divisor.isPositive) {
           return info.newNormalizedRange(
               info.intZero, divisor.upper - info.intOne);
@@ -820,7 +824,7 @@
           return info.newNormalizedRange(
               info.intZero, info.newNegateValue(divisor.lower) - info.intOne);
         }
-      } else if (left.isNumber(compiler) && right.isNumber(compiler)) {
+      } else if (left.isNumber(closedWorld) && right.isNumber(closedWorld)) {
         if (divisor.isPositive) {
           return info.newNormalizedRange(info.intZero, divisor.upper);
         } else if (divisor.isNegative) {
@@ -839,7 +843,7 @@
   }
 
   Range handleBinaryOperation(HBinaryArithmetic instruction) {
-    if (!instruction.isInteger(compiler)) return info.newUnboundRange();
+    if (!instruction.isInteger(closedWorld)) return info.newUnboundRange();
     return instruction
         .operation(constantSystem)
         .apply(ranges[instruction.left], ranges[instruction.right]);
@@ -854,10 +858,10 @@
   }
 
   Range visitBitAnd(HBitAnd node) {
-    if (!node.isInteger(compiler)) return info.newUnboundRange();
+    if (!node.isInteger(closedWorld)) return info.newUnboundRange();
     HInstruction right = node.right;
     HInstruction left = node.left;
-    if (left.isInteger(compiler) && right.isInteger(compiler)) {
+    if (left.isInteger(closedWorld) && right.isInteger(closedWorld)) {
       return ranges[left] & ranges[right];
     }
 
@@ -871,9 +875,9 @@
       return info.newUnboundRange();
     }
 
-    if (left.isInteger(compiler)) {
+    if (left.isInteger(closedWorld)) {
       return tryComputeRange(left);
-    } else if (right.isInteger(compiler)) {
+    } else if (right.isInteger(closedWorld)) {
       return tryComputeRange(right);
     }
     return info.newUnboundRange();
@@ -888,9 +892,8 @@
 
   HInstruction createRangeConversion(
       HInstruction cursor, HInstruction instruction) {
-    JavaScriptBackend backend = compiler.backend;
     HRangeConversion newInstruction =
-        new HRangeConversion(instruction, backend.intType);
+        new HRangeConversion(instruction, closedWorld.commonMasks.intType);
     conversions.add(newInstruction);
     cursor.block.addBefore(cursor, newInstruction);
     // Update the users of the instruction dominated by [cursor] to
@@ -953,8 +956,8 @@
     if (condition is HIdentity) return info.newUnboundRange();
     HInstruction right = condition.right;
     HInstruction left = condition.left;
-    if (!left.isInteger(compiler)) return info.newUnboundRange();
-    if (!right.isInteger(compiler)) return info.newUnboundRange();
+    if (!left.isInteger(closedWorld)) return info.newUnboundRange();
+    if (!right.isInteger(closedWorld)) return info.newUnboundRange();
 
     Range rightRange = ranges[right];
     Range leftRange = ranges[left];
@@ -1016,10 +1019,10 @@
  * Tries to find a range for the update instruction of a loop phi.
  */
 class LoopUpdateRecognizer extends HBaseVisitor {
-  final Compiler compiler;
+  final ClosedWorld closedWorld;
   final Map<HInstruction, Range> ranges;
   final ValueRangeInfo info;
-  LoopUpdateRecognizer(this.compiler, this.ranges, this.info);
+  LoopUpdateRecognizer(this.closedWorld, this.ranges, this.info);
 
   Range run(HPhi loopPhi) {
     // Create a marker range for the loop phi, so that if the update
@@ -1044,7 +1047,7 @@
   }
 
   Range visit(HInstruction instruction) {
-    if (!instruction.isInteger(compiler)) return null;
+    if (!instruction.isInteger(closedWorld)) return null;
     if (ranges[instruction] != null) return ranges[instruction];
     return instruction.accept(this);
   }
diff --git a/pkg/compiler/lib/src/types/masks.dart b/pkg/compiler/lib/src/types/masks.dart
index 5cbc4c0..43e0600 100644
--- a/pkg/compiler/lib/src/types/masks.dart
+++ b/pkg/compiler/lib/src/types/masks.dart
@@ -61,6 +61,12 @@
   TypeMask _syncStarIterableType;
   TypeMask _asyncFutureType;
   TypeMask _asyncStarStreamType;
+  TypeMask _indexablePrimitiveType;
+  TypeMask _readableArrayType;
+  TypeMask _mutableArrayType;
+  TypeMask _fixedArrayType;
+  TypeMask _extendableArrayType;
+  TypeMask _unmodifiableArrayType;
 
   TypeMask get dynamicType => _dynamicType ??=
       new TypeMask.subclass(closedWorld.coreClasses.objectClass, closedWorld);
@@ -132,4 +138,29 @@
 
   // TODO(johnniwinther): Assert that the null type has been resolved.
   TypeMask get nullType => _nullType ??= const TypeMask.empty();
+
+  TypeMask get emptyType => const TypeMask.nonNullEmpty();
+
+  TypeMask get indexablePrimitiveType =>
+      _indexablePrimitiveType ??= new TypeMask.nonNullSubtype(
+          backendClasses.indexableImplementation, closedWorld);
+
+  TypeMask get readableArrayType =>
+      _readableArrayType ??= new TypeMask.nonNullSubclass(
+          backendClasses.listImplementation, closedWorld);
+
+  TypeMask get mutableArrayType =>
+      _mutableArrayType ??= new TypeMask.nonNullSubclass(
+          backendClasses.mutableListImplementation, closedWorld);
+
+  TypeMask get fixedArrayType => _fixedArrayType ??= new TypeMask.nonNullExact(
+      backendClasses.fixedListImplementation, closedWorld);
+
+  TypeMask get extendableArrayType =>
+      _extendableArrayType ??= new TypeMask.nonNullExact(
+          backendClasses.growableListImplementation, closedWorld);
+
+  TypeMask get unmodifiableArrayType =>
+      _unmodifiableArrayType ??= new TypeMask.nonNullExact(
+          backendClasses.constListImplementation, closedWorld);
 }
diff --git a/pkg/compiler/lib/src/types/types.dart b/pkg/compiler/lib/src/types/types.dart
index d2831c0..e36e700 100644
--- a/pkg/compiler/lib/src/types/types.dart
+++ b/pkg/compiler/lib/src/types/types.dart
@@ -14,6 +14,7 @@
 import '../tree/tree.dart';
 import '../universe/selector.dart' show Selector;
 import '../util/util.dart' show Maplet;
+import '../world.dart' show ClosedWorld, ClosedWorldRefiner;
 
 import 'masks.dart';
 export 'masks.dart';
@@ -245,14 +246,15 @@
         super(compiler.measurer);
 
   /// Runs the global type-inference algorithm once.
-  void runGlobalTypeInference(Element mainElement) {
+  void runGlobalTypeInference(Element mainElement, ClosedWorld closedWorld,
+      ClosedWorldRefiner closedWorldRefiner) {
     measure(() {
-      CommonMasks masks = compiler.closedWorld.commonMasks;
-      typesInferrerInternal ??= new TypeGraphInferrer(compiler, masks);
+      typesInferrerInternal ??=
+          new TypeGraphInferrer(compiler, closedWorld, closedWorldRefiner);
       typesInferrerInternal.analyzeMain(mainElement);
       typesInferrerInternal.clear();
       results = new GlobalTypeInferenceResults(typesInferrerInternal, compiler,
-          masks, typesInferrerInternal.inferrer.types);
+          closedWorld.commonMasks, typesInferrerInternal.inferrer.types);
     });
   }
 }
diff --git a/pkg/compiler/lib/src/universe/use.dart b/pkg/compiler/lib/src/universe/use.dart
index f399509..148c6f4 100644
--- a/pkg/compiler/lib/src/universe/use.dart
+++ b/pkg/compiler/lib/src/universe/use.dart
@@ -26,7 +26,11 @@
 import 'selector.dart' show Selector;
 import 'world_builder.dart' show ReceiverConstraint;
 
-enum DynamicUseKind { INVOKE, GET, SET, }
+enum DynamicUseKind {
+  INVOKE,
+  GET,
+  SET,
+}
 
 /// The use of a dynamic property. [selector] defined the name and kind of the
 /// property and [mask] defines the known constraint for the object on which
diff --git a/pkg/compiler/lib/src/universe/world_builder.dart b/pkg/compiler/lib/src/universe/world_builder.dart
index bd07cc8..23855be 100644
--- a/pkg/compiler/lib/src/universe/world_builder.dart
+++ b/pkg/compiler/lib/src/universe/world_builder.dart
@@ -9,9 +9,9 @@
 import '../cache_strategy.dart';
 import '../common.dart';
 import '../common/backend_api.dart' show Backend;
+import '../common/names.dart' show Identifiers;
 import '../common/resolution.dart' show Resolution;
 import '../compiler.dart' show Compiler;
-import '../core_types.dart' show CoreClasses;
 import '../dart_types.dart';
 import '../elements/elements.dart';
 import '../elements/entities.dart';
@@ -125,7 +125,7 @@
 
   /// Registers that [type] is checked in this universe. The unaliased type is
   /// returned.
-  DartType registerIsCheck(DartType type, Resolution resolution);
+  DartType registerIsCheck(DartType type);
 
   /// All directly instantiated types, that is, the types of the directly
   /// instantiated classes.
@@ -169,15 +169,6 @@
   /// Returns `true` if [member] is invoked as a setter.
   bool hasInvokedSetter(Element member);
 
-  /// `true` of `Object.runtimeType` is supported.
-  bool get hasRuntimeTypeSupport;
-
-  /// `true` of use of the `dart:isolate` library is supported.
-  bool get hasIsolateSupport;
-
-  /// `true` of `Function.apply` is supported.
-  bool get hasFunctionApplySupport;
-
   /// The [OpenWorld] being created by this world builder.
   // TODO(johnniwinther): Merge this with [ResolutionWorldBuilder].
   OpenWorld get openWorld;
@@ -375,7 +366,11 @@
   final Map<ClassElement, _ClassUsage> _processedClasses =
       <ClassElement, _ClassUsage>{};
 
-  /// Map of registers usage of instance members of live classes.
+  /// Map of registered usage of static members of live classes.
+  final Map<Entity, _StaticMemberUsage> _staticMemberUsage =
+      <Entity, _StaticMemberUsage>{};
+
+  /// Map of registered usage of instance members of live classes.
   final Map<MemberEntity, _MemberUsage> _instanceMemberUsage =
       <MemberEntity, _MemberUsage>{};
 
@@ -496,7 +491,8 @@
   // TODO(johnniwinther): Fully enforce the separation between exact, through
   // subclass and through subtype instantiated types/classes.
   // TODO(johnniwinther): Support unknown type arguments for generic types.
-  void registerTypeInstantiation(InterfaceType type, ClassUsed classUsed,
+  void registerTypeInstantiation(
+      InterfaceType type, ClassUsedCallback classUsed,
       {ConstructorElement constructor,
       bool byMirrors: false,
       bool isRedirection: false}) {
@@ -619,7 +615,8 @@
     return _hasMatchingSelector(_invokedSetters[member.name], member);
   }
 
-  void registerDynamicUse(DynamicUse dynamicUse, MemberUsed memberUsed) {
+  void registerDynamicUse(
+      DynamicUse dynamicUse, MemberUsedCallback memberUsed) {
     Selector selector = dynamicUse.selector;
     String methodName = selector.name;
     switch (dynamicUse.kind) {
@@ -680,8 +677,8 @@
     return constraints.addReceiverConstraint(mask);
   }
 
-  DartType registerIsCheck(DartType type, Resolution resolution) {
-    type.computeUnaliased(resolution);
+  DartType registerIsCheck(DartType type) {
+    type.computeUnaliased(_resolution);
     type = type.unaliased;
     // Even in checked mode, type annotations for return type and argument
     // types do not imply type checks, so there should never be a check
@@ -690,53 +687,83 @@
     return type;
   }
 
-  void registerStaticUse(StaticUse staticUse) {
+  void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) {
     Element element = staticUse.element;
+    assert(invariant(element, element.isDeclaration,
+        message: "Element ${element} is not the declaration."));
+    _StaticMemberUsage usage = _staticMemberUsage.putIfAbsent(element, () {
+      if ((element.isStatic || element.isTopLevel) && element.isFunction) {
+        return new _StaticFunctionUsage(element);
+      } else {
+        return new _GeneralStaticMemberUsage(element);
+      }
+    });
+    EnumSet<MemberUse> useSet = new EnumSet<MemberUse>();
+
     if (Elements.isStaticOrTopLevel(element) && element.isField) {
       allReferencedStaticFields.add(element);
     }
+    // TODO(johnniwinther): Avoid this. Currently [FIELD_GET] and
+    // [FIELD_SET] contains [BoxFieldElement]s which we cannot enqueue.
+    // Also [CLOSURE] contains [LocalFunctionElement] which we cannot
+    // enqueue.
     switch (staticUse.kind) {
-      case StaticUseKind.SUPER_FIELD_SET:
+      case StaticUseKind.FIELD_GET:
+        break;
       case StaticUseKind.FIELD_SET:
         fieldSetters.add(element);
         break;
+      case StaticUseKind.CLOSURE:
+        LocalFunctionElement closure = staticUse.element;
+        if (closure.type.containsTypeVariables) {
+          closuresWithFreeTypeVariables.add(closure);
+        }
+        allClosures.add(element);
+        break;
       case StaticUseKind.SUPER_TEAR_OFF:
+        useSet.addAll(usage.tearOff());
         methodsNeedingSuperGetter.add(element);
         break;
+      case StaticUseKind.SUPER_FIELD_SET:
+        fieldSetters.add(element);
+        useSet.addAll(usage.normalUse());
+        break;
+      case StaticUseKind.STATIC_TEAR_OFF:
+        useSet.addAll(usage.tearOff());
+        break;
       case StaticUseKind.GENERAL:
       case StaticUseKind.DIRECT_USE:
-      case StaticUseKind.STATIC_TEAR_OFF:
-      case StaticUseKind.FIELD_GET:
       case StaticUseKind.CONSTRUCTOR_INVOKE:
       case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
       case StaticUseKind.REDIRECTION:
-        break;
-      case StaticUseKind.CLOSURE:
-        allClosures.add(element);
+        useSet.addAll(usage.normalUse());
         break;
       case StaticUseKind.DIRECT_INVOKE:
         invariant(
             element, 'Direct static use is not supported for resolution.');
         break;
     }
+    if (useSet.isNotEmpty) {
+      memberUsed(usage.entity, useSet);
+    }
   }
 
-  void forgetElement(Element element, Compiler compiler) {
-    allClosures.remove(element);
-    slowDirectlyNestedClosures(element).forEach(compiler.forgetElement);
-    closurizedMembers.remove(element);
-    fieldSetters.remove(element);
-    _instantiationInfo.remove(element);
+  void forgetEntity(Entity entity, Compiler compiler) {
+    allClosures.remove(entity);
+    slowDirectlyNestedClosures(entity).forEach(compiler.forgetElement);
+    closurizedMembers.remove(entity);
+    fieldSetters.remove(entity);
+    _instantiationInfo.remove(entity);
 
-    void removeUsage(Set<_MemberUsage> set, Element element) {
+    void removeUsage(Set<_MemberUsage> set, Entity entity) {
       if (set == null) return;
       set.removeAll(
-          set.where((_MemberUsage usage) => usage.entity == element).toList());
+          set.where((_MemberUsage usage) => usage.entity == entity).toList());
     }
 
-    _processedClasses.remove(element);
-    removeUsage(_instanceMembersByName[element.name], element);
-    removeUsage(_instanceFunctionsByName[element.name], element);
+    _processedClasses.remove(entity);
+    removeUsage(_instanceMembersByName[entity.name], entity);
+    removeUsage(_instanceFunctionsByName[entity.name], entity);
   }
 
   // TODO(ahe): Replace this method with something that is O(1), for example,
@@ -760,7 +787,8 @@
   }
 
   /// Register [cls] and all its superclasses as instantiated.
-  void _processInstantiatedClass(ClassElement cls, ClassUsed classUsed) {
+  void _processInstantiatedClass(
+      ClassElement cls, ClassUsedCallback classUsed) {
     // Registers [superclass] as instantiated. Returns `true` if it wasn't
     // already instantiated and we therefore have to process its superclass as
     // well.
@@ -780,7 +808,7 @@
 
   /// Computes usage for all members declared by [cls]. Calls [membersUsed] with
   /// the usage changes for each member.
-  void processClassMembers(ClassElement cls, MemberUsed memberUsed) {
+  void processClassMembers(ClassElement cls, MemberUsedCallback memberUsed) {
     cls.implementation.forEachMember((ClassElement cls, MemberElement member) {
       _processInstantiatedClassMember(cls, member, memberUsed);
     });
@@ -808,12 +836,13 @@
     _processSet(_instanceMembersByName, name, updateUsage);
   }
 
-  void _processInstanceFunctions(String name, bool updateUsage(_MemberUsage e)) {
+  void _processInstanceFunctions(
+      String name, bool updateUsage(_MemberUsage e)) {
     _processSet(_instanceFunctionsByName, name, updateUsage);
   }
 
   void _processInstantiatedClassMember(
-      ClassElement cls, MemberElement member, MemberUsed memberUsed) {
+      ClassElement cls, MemberElement member, MemberUsedCallback memberUsed) {
     assert(invariant(member, member.isDeclaration));
     if (!member.isInstanceMember) return;
     String memberName = member.name;
@@ -833,6 +862,11 @@
       if (member.isField && isNative) {
         _openWorld.registerUsedElement(member);
       }
+      if (member.isFunction &&
+          member.name == Identifiers.call &&
+          !cls.typeVariables.isEmpty) {
+        callMethodsWithFreeTypeVariables.add(member);
+      }
 
       if (_hasInvokedGetter(member)) {
         useSet.addAll(usage.read());
@@ -851,7 +885,7 @@
             .putIfAbsent(memberName, () => new Set<_MemberUsage>())
             .add(usage);
       }
-      if (usage.pendingUse.contains(MemberUse.CLOSURIZE)) {
+      if (usage.pendingUse.contains(MemberUse.CLOSURIZE_INSTANCE)) {
         // Store the member in [instanceFunctionsByName] to catch
         // getters on the function.
         _instanceFunctionsByName
@@ -1084,7 +1118,7 @@
     _invokedSetters.forEach(f);
   }
 
-  DartType registerIsCheck(DartType type, Resolution resolution) {
+  DartType registerIsCheck(DartType type) {
     type = type.unaliased;
     // Even in checked mode, type annotations for return type and argument
     // types do not imply type checks, so there should never be a check
@@ -1306,7 +1340,7 @@
 
   _FunctionUsage(FunctionEntity function) : super.internal(function);
 
-  EnumSet<MemberUse> get _originalUse => MemberUses.ALL;
+  EnumSet<MemberUse> get _originalUse => MemberUses.ALL_INSTANCE;
 
   @override
   EnumSet<MemberUse> read() => fullyUse();
@@ -1328,13 +1362,13 @@
         return MemberUses.NONE;
       }
       hasRead = true;
-      return _pendingUse.removeAll(MemberUses.CLOSURIZE_ONLY);
+      return _pendingUse.removeAll(MemberUses.CLOSURIZE_INSTANCE_ONLY);
     } else if (hasRead) {
       hasInvoke = true;
       return _pendingUse.removeAll(MemberUses.NORMAL_ONLY);
     } else {
       hasRead = hasInvoke = true;
-      return _pendingUse.removeAll(MemberUses.ALL);
+      return _pendingUse.removeAll(MemberUses.ALL_INSTANCE);
     }
   }
 
@@ -1388,19 +1422,24 @@
 }
 
 /// Enum class for the possible kind of use of [MemberEntity] objects.
-enum MemberUse { NORMAL, CLOSURIZE }
+enum MemberUse { NORMAL, CLOSURIZE_INSTANCE, CLOSURIZE_STATIC }
 
 /// Common [EnumSet]s used for [MemberUse].
 class MemberUses {
   static const EnumSet<MemberUse> NONE = const EnumSet<MemberUse>.fixed(0);
   static const EnumSet<MemberUse> NORMAL_ONLY =
       const EnumSet<MemberUse>.fixed(1);
-  static const EnumSet<MemberUse> CLOSURIZE_ONLY =
+  static const EnumSet<MemberUse> CLOSURIZE_INSTANCE_ONLY =
       const EnumSet<MemberUse>.fixed(2);
-  static const EnumSet<MemberUse> ALL = const EnumSet<MemberUse>.fixed(3);
+  static const EnumSet<MemberUse> CLOSURIZE_STATIC_ONLY =
+      const EnumSet<MemberUse>.fixed(4);
+  static const EnumSet<MemberUse> ALL_INSTANCE =
+      const EnumSet<MemberUse>.fixed(3);
+  static const EnumSet<MemberUse> ALL_STATIC =
+      const EnumSet<MemberUse>.fixed(5);
 }
 
-typedef void MemberUsed(MemberEntity member, EnumSet<MemberUse> useSet);
+typedef void MemberUsedCallback(MemberEntity member, EnumSet<MemberUse> useSet);
 
 /// Registry for the observed use of a class [entity] in the open world.
 // TODO(johnniwinther): Merge this with [InstantiationInfo].
@@ -1447,4 +1486,52 @@
   static const EnumSet<ClassUse> ALL = const EnumSet<ClassUse>.fixed(3);
 }
 
-typedef void ClassUsed(ClassEntity cls, EnumSet<ClassUse> useSet);
+typedef void ClassUsedCallback(ClassEntity cls, EnumSet<ClassUse> useSet);
+
+// TODO(johnniwinther): Merge this with [_MemberUsage].
+abstract class _StaticMemberUsage extends _AbstractUsage<MemberUse> {
+  final Entity entity;
+
+  bool hasNormalUse = false;
+  bool get hasClosurization => false;
+
+  _StaticMemberUsage.internal(this.entity);
+
+  EnumSet<MemberUse> normalUse() {
+    if (hasNormalUse) {
+      return MemberUses.NONE;
+    }
+    hasNormalUse = true;
+    return _pendingUse.removeAll(MemberUses.NORMAL_ONLY);
+  }
+
+  EnumSet<MemberUse> tearOff();
+
+  @override
+  EnumSet<MemberUse> get _originalUse => MemberUses.NORMAL_ONLY;
+
+  String toString() => entity.toString();
+}
+
+class _GeneralStaticMemberUsage extends _StaticMemberUsage {
+  _GeneralStaticMemberUsage(Entity entity) : super.internal(entity);
+
+  EnumSet<MemberUse> tearOff() => normalUse();
+}
+
+class _StaticFunctionUsage extends _StaticMemberUsage {
+  bool hasClosurization = false;
+
+  _StaticFunctionUsage(Entity entity) : super.internal(entity);
+
+  EnumSet<MemberUse> tearOff() {
+    if (hasClosurization) {
+      return MemberUses.NONE;
+    }
+    hasNormalUse = hasClosurization = true;
+    return _pendingUse.removeAll(MemberUses.ALL_STATIC);
+  }
+
+  @override
+  EnumSet<MemberUse> get _originalUse => MemberUses.ALL_STATIC;
+}
diff --git a/pkg/compiler/lib/src/universe/world_impact.dart b/pkg/compiler/lib/src/universe/world_impact.dart
index 2a1afb8..4d4f3f9 100644
--- a/pkg/compiler/lib/src/universe/world_impact.dart
+++ b/pkg/compiler/lib/src/universe/world_impact.dart
@@ -261,8 +261,8 @@
 class ImpactStrategy {
   const ImpactStrategy();
 
-  /// Applies [impact] to [visitor] for the [impactUseCase] of [element].
-  void visitImpact(Element element, WorldImpact impact,
+  /// Applies [impact] to [visitor] for the [impactUseCase] of [impactSource].
+  void visitImpact(var impactSource, WorldImpact impact,
       WorldImpactVisitor visitor, ImpactUseCase impactUseCase) {
     // Apply unconditionally.
     impact.apply(visitor);
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart
index 2ddfbd8..41ceb0f 100644
--- a/pkg/compiler/lib/src/world.dart
+++ b/pkg/compiler/lib/src/world.dart
@@ -8,7 +8,7 @@
 import 'closure.dart' show SynthesizedCallMethodElementX;
 import 'common/backend_api.dart' show BackendClasses;
 import 'common.dart';
-import 'core_types.dart' show CoreClasses;
+import 'core_types.dart' show CoreClasses, CommonElements;
 import 'dart_types.dart';
 import 'elements/elements.dart'
     show
@@ -47,6 +47,8 @@
   /// Access to core classes used in the Dart language.
   CoreClasses get coreClasses;
 
+  CommonElements get commonElements;
+
   CommonMasks get commonMasks;
 
   /// Returns `true` if [cls] is either directly or indirectly instantiated.
@@ -874,7 +876,7 @@
 
   CommonMasks _commonMasks;
 
-  final CoreClasses coreClasses;
+  final CommonElements commonElements;
 
   final CacheStrategy cacheStrategy;
 
@@ -886,7 +888,7 @@
     return _typesImplementedBySubclasses[cls.declaration];
   }
 
-  WorldImpl(this.resolverWorld, this._backend, this.coreClasses,
+  WorldImpl(this.resolverWorld, this._backend, this.commonElements,
       CacheStrategy cacheStrategy)
       : this.cacheStrategy = cacheStrategy,
         alreadyPopulated = cacheStrategy.newSet() {
@@ -900,6 +902,8 @@
     return _commonMasks;
   }
 
+  CoreClasses get coreClasses => commonElements;
+
   /// Called to add [cls] to the set of known classes.
   ///
   /// This ensures that class hierarchy queries can be performed on [cls] and
diff --git a/pkg/dev_compiler/lib/js/amd/dart_sdk.js b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
index 41eef01..d6063de 100644
--- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
@@ -8896,13 +8896,14 @@
           f(a, e);
         };
       })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
-      self.onmessage = func;
-      self.dartPrint = self.dartPrint || (function(serialize) {
+      _isolate_helper.global.onmessage = func;
+      _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
         return function(object) {
-          if (self.console && self.console.log) {
-            self.console.log(object);
+          var _self = _isolate_helper.global;
+          if (_self.console && _self.console.log) {
+            _self.console.log(object);
           } else {
-            self.postMessage(serialize(object));
+            _self.postMessage(serialize(object));
           }
         };
       })(_isolate_helper._Manager._serializePrintMessage);
@@ -9053,8 +9054,8 @@
         if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
           return;
         }
-        if (self.console && self.console.error) {
-          self.console.error(error, stackTrace);
+        if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
+          _isolate_helper.global.console.error(error, stackTrace);
         } else {
           core.print(error);
           if (stackTrace != null) core.print(stackTrace);
@@ -9341,13 +9342,13 @@
     methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
   });
   dart.defineLazy(_isolate_helper, {
-    get _global() {
+    get global() {
       return typeof global == 'undefined' ? self : global;
     }
   });
   _isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
     postMessage(msg) {
-      _isolate_helper._global.postMessage(msg);
+      _isolate_helper.global.postMessage(msg);
     }
   };
   dart.setSignature(_isolate_helper._MainManagerStub, {
@@ -9357,17 +9358,17 @@
   _isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
   dart.copyProperties(_isolate_helper, {
     get globalWindow() {
-      return _isolate_helper._global.window;
+      return _isolate_helper.global.window;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalWorker() {
-      return _isolate_helper._global.Worker;
+      return _isolate_helper.global.Worker;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalPostMessageDefined() {
-      return !!_isolate_helper._global.postMessage;
+      return !!_isolate_helper.global.postMessage;
     }
   });
   _isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
@@ -9501,7 +9502,7 @@
       }
     }
     static _consoleLog(msg) {
-      self.console.log(msg);
+      _isolate_helper.global.console.log(msg);
     }
     static _getJSFunctionFromName(functionName) {
       let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
@@ -10661,7 +10662,7 @@
         }).bind(this);
         dart.fn(internalCallback, VoidTovoid$());
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setTimeout(internalCallback, milliseconds);
+        this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
       } else {
         dart.assert(dart.notNull(milliseconds) > 0);
         dart.throw(new core.UnsupportedError("Timer greater than 0."));
@@ -10673,7 +10674,7 @@
       this[_handle] = null;
       if (dart.test(_isolate_helper.hasTimer())) {
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setInterval(dart.fn(() => {
+        this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
         }, VoidTodynamic$()), milliseconds);
       } else {
@@ -10688,9 +10689,9 @@
         if (this[_handle] == null) return;
         _isolate_helper.leaveJsAsync();
         if (dart.test(this[_once])) {
-          self.clearTimeout(this[_handle]);
+          _isolate_helper.global.clearTimeout(this[_handle]);
         } else {
-          self.clearInterval(this[_handle]);
+          _isolate_helper.global.clearInterval(this[_handle]);
         }
         this[_handle] = null;
       } else {
@@ -10717,7 +10718,7 @@
     methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
   });
   _isolate_helper.hasTimer = function() {
-    return self.setTimeout != null;
+    return _isolate_helper.global.setTimeout != null;
   };
   dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
   _isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
@@ -19639,12 +19640,12 @@
       async._AsyncRun._scheduleImmediateClosure(callback);
     }
     static _initializeScheduleImmediate() {
-      if (self.scheduleImmediate != null) {
+      if (_isolate_helper.global.scheduleImmediate != null) {
         return async._AsyncRun._scheduleImmediateJsOverride;
       }
-      if (self.MutationObserver != null && self.document != null) {
-        let div = self.document.createElement("div");
-        let span = self.document.createElement("span");
+      if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
+        let div = _isolate_helper.global.document.createElement("div");
+        let span = _isolate_helper.global.document.createElement("span");
         let storedCallback = null;
         function internalCallback(_) {
           _isolate_helper.leaveJsAsync();
@@ -19654,7 +19655,7 @@
         }
         dart.fn(internalCallback, dynamicTodynamic$());
         ;
-        let observer = new self.MutationObserver(internalCallback);
+        let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
         return dart.fn(callback => {
           dart.assert(storedCallback == null);
@@ -19662,7 +19663,7 @@
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
         }, _AsyncCallbackTovoid());
-      } else if (self.setImmediate != null) {
+      } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
       return async._AsyncRun._scheduleImmediateWithTimer;
@@ -19675,7 +19676,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.scheduleImmediate(internalCallback);
+      _isolate_helper.global.scheduleImmediate(internalCallback);
     }
     static _scheduleImmediateWithSetImmediate(callback) {
       function internalCallback() {
@@ -19685,7 +19686,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.setImmediate(internalCallback);
+      _isolate_helper.global.setImmediate(internalCallback);
     }
     static _scheduleImmediateWithTimer(callback) {
       async.Timer._createTimer(core.Duration.ZERO, callback);
diff --git a/pkg/dev_compiler/lib/js/common/dart_sdk.js b/pkg/dev_compiler/lib/js/common/dart_sdk.js
index e3d4b45..7d85feb 100644
--- a/pkg/dev_compiler/lib/js/common/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/common/dart_sdk.js
@@ -8896,13 +8896,14 @@
           f(a, e);
         };
       })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
-      self.onmessage = func;
-      self.dartPrint = self.dartPrint || (function(serialize) {
+      _isolate_helper.global.onmessage = func;
+      _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
         return function(object) {
-          if (self.console && self.console.log) {
-            self.console.log(object);
+          var _self = _isolate_helper.global;
+          if (_self.console && _self.console.log) {
+            _self.console.log(object);
           } else {
-            self.postMessage(serialize(object));
+            _self.postMessage(serialize(object));
           }
         };
       })(_isolate_helper._Manager._serializePrintMessage);
@@ -9053,8 +9054,8 @@
         if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
           return;
         }
-        if (self.console && self.console.error) {
-          self.console.error(error, stackTrace);
+        if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
+          _isolate_helper.global.console.error(error, stackTrace);
         } else {
           core.print(error);
           if (stackTrace != null) core.print(stackTrace);
@@ -9341,13 +9342,13 @@
     methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
   });
   dart.defineLazy(_isolate_helper, {
-    get _global() {
+    get global() {
       return typeof global == 'undefined' ? self : global;
     }
   });
   _isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
     postMessage(msg) {
-      _isolate_helper._global.postMessage(msg);
+      _isolate_helper.global.postMessage(msg);
     }
   };
   dart.setSignature(_isolate_helper._MainManagerStub, {
@@ -9357,17 +9358,17 @@
   _isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
   dart.copyProperties(_isolate_helper, {
     get globalWindow() {
-      return _isolate_helper._global.window;
+      return _isolate_helper.global.window;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalWorker() {
-      return _isolate_helper._global.Worker;
+      return _isolate_helper.global.Worker;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalPostMessageDefined() {
-      return !!_isolate_helper._global.postMessage;
+      return !!_isolate_helper.global.postMessage;
     }
   });
   _isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
@@ -9501,7 +9502,7 @@
       }
     }
     static _consoleLog(msg) {
-      self.console.log(msg);
+      _isolate_helper.global.console.log(msg);
     }
     static _getJSFunctionFromName(functionName) {
       let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
@@ -10661,7 +10662,7 @@
         }).bind(this);
         dart.fn(internalCallback, VoidTovoid$());
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setTimeout(internalCallback, milliseconds);
+        this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
       } else {
         dart.assert(dart.notNull(milliseconds) > 0);
         dart.throw(new core.UnsupportedError("Timer greater than 0."));
@@ -10673,7 +10674,7 @@
       this[_handle] = null;
       if (dart.test(_isolate_helper.hasTimer())) {
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setInterval(dart.fn(() => {
+        this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
         }, VoidTodynamic$()), milliseconds);
       } else {
@@ -10688,9 +10689,9 @@
         if (this[_handle] == null) return;
         _isolate_helper.leaveJsAsync();
         if (dart.test(this[_once])) {
-          self.clearTimeout(this[_handle]);
+          _isolate_helper.global.clearTimeout(this[_handle]);
         } else {
-          self.clearInterval(this[_handle]);
+          _isolate_helper.global.clearInterval(this[_handle]);
         }
         this[_handle] = null;
       } else {
@@ -10717,7 +10718,7 @@
     methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
   });
   _isolate_helper.hasTimer = function() {
-    return self.setTimeout != null;
+    return _isolate_helper.global.setTimeout != null;
   };
   dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
   _isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
@@ -19639,12 +19640,12 @@
       async._AsyncRun._scheduleImmediateClosure(callback);
     }
     static _initializeScheduleImmediate() {
-      if (self.scheduleImmediate != null) {
+      if (_isolate_helper.global.scheduleImmediate != null) {
         return async._AsyncRun._scheduleImmediateJsOverride;
       }
-      if (self.MutationObserver != null && self.document != null) {
-        let div = self.document.createElement("div");
-        let span = self.document.createElement("span");
+      if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
+        let div = _isolate_helper.global.document.createElement("div");
+        let span = _isolate_helper.global.document.createElement("span");
         let storedCallback = null;
         function internalCallback(_) {
           _isolate_helper.leaveJsAsync();
@@ -19654,7 +19655,7 @@
         }
         dart.fn(internalCallback, dynamicTodynamic$());
         ;
-        let observer = new self.MutationObserver(internalCallback);
+        let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
         return dart.fn(callback => {
           dart.assert(storedCallback == null);
@@ -19662,7 +19663,7 @@
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
         }, _AsyncCallbackTovoid());
-      } else if (self.setImmediate != null) {
+      } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
       return async._AsyncRun._scheduleImmediateWithTimer;
@@ -19675,7 +19676,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.scheduleImmediate(internalCallback);
+      _isolate_helper.global.scheduleImmediate(internalCallback);
     }
     static _scheduleImmediateWithSetImmediate(callback) {
       function internalCallback() {
@@ -19685,7 +19686,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.setImmediate(internalCallback);
+      _isolate_helper.global.setImmediate(internalCallback);
     }
     static _scheduleImmediateWithTimer(callback) {
       async.Timer._createTimer(core.Duration.ZERO, callback);
diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
index 9583195..18df163 100644
--- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
@@ -8894,13 +8894,14 @@
         f(a, e);
       };
     })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
-    self.onmessage = func;
-    self.dartPrint = self.dartPrint || (function(serialize) {
+    _isolate_helper.global.onmessage = func;
+    _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
       return function(object) {
-        if (self.console && self.console.log) {
-          self.console.log(object);
+        var _self = _isolate_helper.global;
+        if (_self.console && _self.console.log) {
+          _self.console.log(object);
         } else {
-          self.postMessage(serialize(object));
+          _self.postMessage(serialize(object));
         }
       };
     })(_isolate_helper._Manager._serializePrintMessage);
@@ -9051,8 +9052,8 @@
       if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
         return;
       }
-      if (self.console && self.console.error) {
-        self.console.error(error, stackTrace);
+      if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
+        _isolate_helper.global.console.error(error, stackTrace);
       } else {
         core.print(error);
         if (stackTrace != null) core.print(stackTrace);
@@ -9339,13 +9340,13 @@
   methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
 });
 dart.defineLazy(_isolate_helper, {
-  get _global() {
+  get global() {
     return typeof global == 'undefined' ? self : global;
   }
 });
 _isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
   postMessage(msg) {
-    _isolate_helper._global.postMessage(msg);
+    _isolate_helper.global.postMessage(msg);
   }
 };
 dart.setSignature(_isolate_helper._MainManagerStub, {
@@ -9355,17 +9356,17 @@
 _isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
 dart.copyProperties(_isolate_helper, {
   get globalWindow() {
-    return _isolate_helper._global.window;
+    return _isolate_helper.global.window;
   }
 });
 dart.copyProperties(_isolate_helper, {
   get globalWorker() {
-    return _isolate_helper._global.Worker;
+    return _isolate_helper.global.Worker;
   }
 });
 dart.copyProperties(_isolate_helper, {
   get globalPostMessageDefined() {
-    return !!_isolate_helper._global.postMessage;
+    return !!_isolate_helper.global.postMessage;
   }
 });
 _isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
@@ -9499,7 +9500,7 @@
     }
   }
   static _consoleLog(msg) {
-    self.console.log(msg);
+    _isolate_helper.global.console.log(msg);
   }
   static _getJSFunctionFromName(functionName) {
     let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
@@ -10659,7 +10660,7 @@
       }).bind(this);
       dart.fn(internalCallback, VoidTovoid());
       _isolate_helper.enterJsAsync();
-      this[_handle] = self.setTimeout(internalCallback, milliseconds);
+      this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
     } else {
       dart.assert(dart.notNull(milliseconds) > 0);
       dart.throw(new core.UnsupportedError("Timer greater than 0."));
@@ -10671,7 +10672,7 @@
     this[_handle] = null;
     if (dart.test(_isolate_helper.hasTimer())) {
       _isolate_helper.enterJsAsync();
-      this[_handle] = self.setInterval(dart.fn(() => {
+      this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
         callback(this);
       }, VoidTodynamic()), milliseconds);
     } else {
@@ -10686,9 +10687,9 @@
       if (this[_handle] == null) return;
       _isolate_helper.leaveJsAsync();
       if (dart.test(this[_once])) {
-        self.clearTimeout(this[_handle]);
+        _isolate_helper.global.clearTimeout(this[_handle]);
       } else {
-        self.clearInterval(this[_handle]);
+        _isolate_helper.global.clearInterval(this[_handle]);
       }
       this[_handle] = null;
     } else {
@@ -10715,7 +10716,7 @@
   methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
 });
 _isolate_helper.hasTimer = function() {
-  return self.setTimeout != null;
+  return _isolate_helper.global.setTimeout != null;
 };
 dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
 _isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
@@ -19637,12 +19638,12 @@
     async._AsyncRun._scheduleImmediateClosure(callback);
   }
   static _initializeScheduleImmediate() {
-    if (self.scheduleImmediate != null) {
+    if (_isolate_helper.global.scheduleImmediate != null) {
       return async._AsyncRun._scheduleImmediateJsOverride;
     }
-    if (self.MutationObserver != null && self.document != null) {
-      let div = self.document.createElement("div");
-      let span = self.document.createElement("span");
+    if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
+      let div = _isolate_helper.global.document.createElement("div");
+      let span = _isolate_helper.global.document.createElement("span");
       let storedCallback = null;
       function internalCallback(_) {
         _isolate_helper.leaveJsAsync();
@@ -19652,7 +19653,7 @@
       }
       dart.fn(internalCallback, dynamicTodynamic());
       ;
-      let observer = new self.MutationObserver(internalCallback);
+      let observer = new _isolate_helper.global.MutationObserver(internalCallback);
       observer.observe(div, {childList: true});
       return dart.fn(callback => {
         dart.assert(storedCallback == null);
@@ -19660,7 +19661,7 @@
         storedCallback = callback;
         div.firstChild ? div.removeChild(span) : div.appendChild(span);
       }, _AsyncCallbackTovoid());
-    } else if (self.setImmediate != null) {
+    } else if (_isolate_helper.global.setImmediate != null) {
       return async._AsyncRun._scheduleImmediateWithSetImmediate;
     }
     return async._AsyncRun._scheduleImmediateWithTimer;
@@ -19673,7 +19674,7 @@
     dart.fn(internalCallback, VoidTodynamic());
     ;
     _isolate_helper.enterJsAsync();
-    self.scheduleImmediate(internalCallback);
+    _isolate_helper.global.scheduleImmediate(internalCallback);
   }
   static _scheduleImmediateWithSetImmediate(callback) {
     function internalCallback() {
@@ -19683,7 +19684,7 @@
     dart.fn(internalCallback, VoidTodynamic());
     ;
     _isolate_helper.enterJsAsync();
-    self.setImmediate(internalCallback);
+    _isolate_helper.global.setImmediate(internalCallback);
   }
   static _scheduleImmediateWithTimer(callback) {
     async.Timer._createTimer(core.Duration.ZERO, callback);
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
index 49d9cf7..150f440 100644
--- a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
@@ -8897,13 +8897,14 @@
           f(a, e);
         };
       })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
-      self.onmessage = func;
-      self.dartPrint = self.dartPrint || (function(serialize) {
+      _isolate_helper.global.onmessage = func;
+      _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
         return function(object) {
-          if (self.console && self.console.log) {
-            self.console.log(object);
+          var _self = _isolate_helper.global;
+          if (_self.console && _self.console.log) {
+            _self.console.log(object);
           } else {
-            self.postMessage(serialize(object));
+            _self.postMessage(serialize(object));
           }
         };
       })(_isolate_helper._Manager._serializePrintMessage);
@@ -9054,8 +9055,8 @@
         if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
           return;
         }
-        if (self.console && self.console.error) {
-          self.console.error(error, stackTrace);
+        if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
+          _isolate_helper.global.console.error(error, stackTrace);
         } else {
           core.print(error);
           if (stackTrace != null) core.print(stackTrace);
@@ -9342,13 +9343,13 @@
     methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
   });
   dart.defineLazy(_isolate_helper, {
-    get _global() {
+    get global() {
       return typeof global == 'undefined' ? self : global;
     }
   });
   _isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
     postMessage(msg) {
-      _isolate_helper._global.postMessage(msg);
+      _isolate_helper.global.postMessage(msg);
     }
   };
   dart.setSignature(_isolate_helper._MainManagerStub, {
@@ -9358,17 +9359,17 @@
   _isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
   dart.copyProperties(_isolate_helper, {
     get globalWindow() {
-      return _isolate_helper._global.window;
+      return _isolate_helper.global.window;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalWorker() {
-      return _isolate_helper._global.Worker;
+      return _isolate_helper.global.Worker;
     }
   });
   dart.copyProperties(_isolate_helper, {
     get globalPostMessageDefined() {
-      return !!_isolate_helper._global.postMessage;
+      return !!_isolate_helper.global.postMessage;
     }
   });
   _isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
@@ -9502,7 +9503,7 @@
       }
     }
     static _consoleLog(msg) {
-      self.console.log(msg);
+      _isolate_helper.global.console.log(msg);
     }
     static _getJSFunctionFromName(functionName) {
       let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
@@ -10662,7 +10663,7 @@
         }).bind(this);
         dart.fn(internalCallback, VoidTovoid$());
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setTimeout(internalCallback, milliseconds);
+        this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
       } else {
         dart.assert(dart.notNull(milliseconds) > 0);
         dart.throw(new core.UnsupportedError("Timer greater than 0."));
@@ -10674,7 +10675,7 @@
       this[_handle] = null;
       if (dart.test(_isolate_helper.hasTimer())) {
         _isolate_helper.enterJsAsync();
-        this[_handle] = self.setInterval(dart.fn(() => {
+        this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
         }, VoidTodynamic$()), milliseconds);
       } else {
@@ -10689,9 +10690,9 @@
         if (this[_handle] == null) return;
         _isolate_helper.leaveJsAsync();
         if (dart.test(this[_once])) {
-          self.clearTimeout(this[_handle]);
+          _isolate_helper.global.clearTimeout(this[_handle]);
         } else {
-          self.clearInterval(this[_handle]);
+          _isolate_helper.global.clearInterval(this[_handle]);
         }
         this[_handle] = null;
       } else {
@@ -10718,7 +10719,7 @@
     methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
   });
   _isolate_helper.hasTimer = function() {
-    return self.setTimeout != null;
+    return _isolate_helper.global.setTimeout != null;
   };
   dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
   _isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
@@ -19640,12 +19641,12 @@
       async._AsyncRun._scheduleImmediateClosure(callback);
     }
     static _initializeScheduleImmediate() {
-      if (self.scheduleImmediate != null) {
+      if (_isolate_helper.global.scheduleImmediate != null) {
         return async._AsyncRun._scheduleImmediateJsOverride;
       }
-      if (self.MutationObserver != null && self.document != null) {
-        let div = self.document.createElement("div");
-        let span = self.document.createElement("span");
+      if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
+        let div = _isolate_helper.global.document.createElement("div");
+        let span = _isolate_helper.global.document.createElement("span");
         let storedCallback = null;
         function internalCallback(_) {
           _isolate_helper.leaveJsAsync();
@@ -19655,7 +19656,7 @@
         }
         dart.fn(internalCallback, dynamicTodynamic$());
         ;
-        let observer = new self.MutationObserver(internalCallback);
+        let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
         return dart.fn(callback => {
           dart.assert(storedCallback == null);
@@ -19663,7 +19664,7 @@
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
         }, _AsyncCallbackTovoid());
-      } else if (self.setImmediate != null) {
+      } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
       return async._AsyncRun._scheduleImmediateWithTimer;
@@ -19676,7 +19677,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.scheduleImmediate(internalCallback);
+      _isolate_helper.global.scheduleImmediate(internalCallback);
     }
     static _scheduleImmediateWithSetImmediate(callback) {
       function internalCallback() {
@@ -19686,7 +19687,7 @@
       dart.fn(internalCallback, VoidTodynamic$());
       ;
       _isolate_helper.enterJsAsync();
-      self.setImmediate(internalCallback);
+      _isolate_helper.global.setImmediate(internalCallback);
     }
     static _scheduleImmediateWithTimer(callback) {
       async.Timer._createTimer(core.Duration.ZERO, callback);
diff --git a/pkg/dev_compiler/lib/sdk/ddc_sdk.sum b/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
index 3eb77ba..8f5fe06 100644
--- a/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
+++ b/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
Binary files differ
diff --git a/pkg/dev_compiler/lib/src/compiler/code_generator.dart b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
index d973207..b2f28d0 100644
--- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
@@ -10,6 +10,7 @@
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
 import 'package:analyzer/dart/ast/token.dart' show Token, TokenType;
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/ast/token.dart' show StringToken;
@@ -192,7 +193,10 @@
   List<int> _summarizeModule(List<CompilationUnit> units) {
     if (!options.summarizeApi) return null;
 
-    if (!units.any((u) => u.element.librarySource.isInSystemLibrary)) {
+    if (!units.any((u) => resolutionMap
+        .elementDeclaredByCompilationUnit(u)
+        .librarySource
+        .isInSystemLibrary)) {
       var sdk = context.sourceFactory.dartSdk;
       summaryData.addBundle(
           null,
@@ -234,7 +238,8 @@
     // Transform the AST to make coercions explicit.
     compilationUnits = CoercionReifier.reify(compilationUnits);
 
-    if (compilationUnits.any((u) => _isDartRuntime(u.element.library))) {
+    if (compilationUnits.any((u) => _isDartRuntime(
+        resolutionMap.elementDeclaredByCompilationUnit(u).library))) {
       // Don't allow these to be renamed when we're building the SDK.
       // There is JS code in dart:* that depends on their names.
       _runtimeModule = new JS.Identifier('dart');
@@ -249,7 +254,8 @@
     // Initialize our library variables.
     var items = <JS.ModuleItem>[];
     for (var unit in compilationUnits) {
-      var library = unit.element.library;
+      var library =
+          resolutionMap.elementDeclaredByCompilationUnit(unit).library;
       if (unit.element != library.definingCompilationUnit) continue;
 
       var libraryTemp = _isDartRuntime(library)
@@ -272,15 +278,19 @@
     var nodes = new HashMap<Element, AstNode>.identity();
     var sdkBootstrappingFns = new List<FunctionElement>();
     for (var unit in compilationUnits) {
-      if (_isDartRuntime(unit.element.library)) {
-        sdkBootstrappingFns.addAll(unit.element.functions);
+      if (_isDartRuntime(
+          resolutionMap.elementDeclaredByCompilationUnit(unit).library)) {
+        sdkBootstrappingFns.addAll(
+            resolutionMap.elementDeclaredByCompilationUnit(unit).functions);
       }
       _collectElements(unit, nodes);
     }
     _loader = new ElementLoader(nodes);
     if (compilationUnits.isNotEmpty) {
       _constants = new ConstFieldVisitor(context,
-          dummySource: compilationUnits.first.element.source);
+          dummySource: resolutionMap
+              .elementDeclaredByCompilationUnit(compilationUnits.first)
+              .source);
     }
 
     // Add implicit dart:core dependency so it is first.
@@ -728,7 +738,7 @@
 
   @override
   JS.Statement visitClassDeclaration(ClassDeclaration node) {
-    var classElem = node.element;
+    var classElem = resolutionMap.elementDeclaredByClassDeclaration(node);
 
     // If this class is annotated with `@JS`, then there is nothing to emit.
     if (findAnnotation(classElem, isPublicJSAnnotation) != null) return null;
@@ -742,7 +752,8 @@
     var staticFields = <FieldDeclaration>[];
     var methods = <MethodDeclaration>[];
 
-    // True if a "call" method or getter exists.
+    // True if a "call" method or getter exists directly on this class.
+    // If so, we need to install a Function prototype.
     bool isCallable = false;
     for (var member in node.members) {
       if (member is ConstructorDeclaration) {
@@ -770,6 +781,16 @@
       }
     }
 
+    // True if a "call" method or getter exists directly or indirectly on this
+    // class.  If so, we need special constructor handling.
+    bool isCallableTransitive =
+        classElem.lookUpMethod('call', currentLibrary) != null;
+    if (!isCallableTransitive) {
+      var callGetter = classElem.lookUpGetter('call', currentLibrary);
+      isCallableTransitive =
+          callGetter != null && callGetter.returnType is FunctionType;
+    }
+
     JS.Expression className;
     if (classElem.typeParameters.isNotEmpty) {
       // Generic classes will be defined inside a function that closes over the
@@ -806,7 +827,7 @@
 
     _emitClassTypeTests(classElem, className, body);
 
-    _defineNamedConstructors(ctors, body, className, isCallable);
+    _defineNamedConstructors(ctors, body, className, isCallableTransitive);
     body.addAll(virtualFieldSymbols);
     _emitClassSignature(
         methods, allFields, classElem, ctors, extensions, className, body);
@@ -1110,14 +1131,16 @@
                 new JS.Identifier(
                     // TODO(ochafik): use a refactored _emitMemberName instead.
                     decl.name.name,
-                    type: emitTypeRef(decl.element.type)),
+                    type: emitTypeRef(resolutionMap
+                        .elementDeclaredByVariableDeclaration(decl)
+                        .type)),
                 null))
             .toList(growable: false));
   }
 
   @override
   JS.Statement visitEnumDeclaration(EnumDeclaration node) {
-    var element = node.element;
+    var element = resolutionMap.elementDeclaredByEnumDeclaration(node);
     var type = element.type;
 
     // Generate a class per section 13 of the spec.
@@ -1288,7 +1311,7 @@
       List<FieldDeclaration> fields,
       List<ClassElement> superclasses,
       Map<FieldElement, JS.TemporaryId> virtualFields) {
-    var element = node.element;
+    var element = resolutionMap.elementDeclaredByClassDeclaration(node);
     var type = element.type;
     var isObject = type.isObject;
 
@@ -1768,7 +1791,7 @@
     var sNames = <JS.Expression>[];
     for (MethodDeclaration node in methods) {
       var name = node.name.name;
-      var element = node.element;
+      var element = resolutionMap.elementDeclaredByMethodDeclaration(node);
       // TODO(vsm): Clean up all the nasty duplication.
       if (node.isAbstract) {
         continue;
@@ -1823,7 +1846,7 @@
     var tCtors = <JS.Property>[];
     for (ConstructorDeclaration node in ctors) {
       var memberName = _constructorName(node.element);
-      var element = node.element;
+      var element = resolutionMap.elementDeclaredByConstructorDeclaration(node);
       var type = _emitAnnotatedFunctionType(element.type, node.metadata,
           parameters: node.parameters.parameters,
           nameType: options.hoistSignatureTypes,
@@ -1895,7 +1918,9 @@
     if (_extensionTypes.hasNativeSubtype(classElem.type)) {
       var dartxNames = <JS.Expression>[];
       for (var m in methods) {
-        if (!m.isAbstract && !m.isStatic && m.element.isPublic) {
+        if (!m.isAbstract &&
+            !m.isStatic &&
+            resolutionMap.elementDeclaredByMethodDeclaration(m).isPublic) {
           dartxNames.add(_declareMemberName(m.element, useExtension: false));
         }
       }
@@ -1957,7 +1982,9 @@
     if (superCall != null) {
       body.add(superCall);
     }
-    var name = _constructorName(node.element.unnamedConstructor);
+    var name = _constructorName(resolutionMap
+        .elementDeclaredByClassDeclaration(node)
+        .unnamedConstructor);
     return annotate(
         new JS.Method(name, js.call('function() { #; }', [body]) as JS.Fun),
         node,
@@ -1973,12 +2000,18 @@
     if (_externalOrNative(node)) return null;
 
     var name = _constructorName(node.element);
-    var returnType = emitTypeRef(node.element.enclosingElement.type);
+    var returnType = emitTypeRef(resolutionMap
+        .elementDeclaredByConstructorDeclaration(node)
+        .enclosingElement
+        .type);
 
     // Wacky factory redirecting constructors: factory Foo.q(x, y) = Bar.baz;
     var redirect = node.redirectedConstructor;
     if (redirect != null) {
-      var newKeyword = redirect.staticElement.isFactory ? '' : 'new';
+      var newKeyword =
+          resolutionMap.staticElementForConstructorReference(redirect).isFactory
+              ? ''
+              : 'new';
       // Pass along all arguments verbatim, and let the callee handle them.
       // TODO(jmesserly): we'll need something different once we have
       // rest/spread support, but this should work for now.
@@ -2087,7 +2120,7 @@
   @override
   JS.Statement visitRedirectingConstructorInvocation(
       RedirectingConstructorInvocation node) {
-    var ctor = node.staticElement;
+    var ctor = resolutionMap.staticElementForConstructorReference(node);
     var cls = ctor.enclosingElement;
     // We can't dispatch to the constructor with `this.new` as that might hit a
     // derived class constructor with the same name.
@@ -2264,9 +2297,11 @@
 
       // TODO(jmesserly): various problems here, see:
       // https://github.com/dart-lang/dev_compiler/issues/116
-      var paramType = param.element.type;
+      var paramType =
+          resolutionMap.elementDeclaredByFormalParameter(param).type;
       if (node is MethodDeclaration &&
-          (param.element.isCovariant || _unsoundCovariant(paramType, true)) &&
+          (resolutionMap.elementDeclaredByFormalParameter(param).isCovariant ||
+              _unsoundCovariant(paramType, true)) &&
           !_inWhitelistCode(node)) {
         var castType = _emitType(paramType,
             nameType: options.nameTypeTests || options.hoistTypeTests,
@@ -2411,7 +2446,7 @@
       fn = _simplifyPassThroughArrowFunCallBody(fn);
     }
 
-    var element = node.element;
+    var element = resolutionMap.elementDeclaredByFunctionDeclaration(node);
     var nameExpr = _emitTopLevelName(element);
     body.add(annotate(js.statement('# = #', [nameExpr, fn]), node, element));
     if (!_isDartRuntime(element.library)) {
@@ -2679,7 +2714,9 @@
 
     return new JS.Block([
       declareFn,
-      _emitFunctionTagged(name, func.element.type).toStatement()
+      _emitFunctionTagged(name,
+              resolutionMap.elementDeclaredByFunctionDeclaration(func).type)
+          .toStatement()
     ]);
   }
 
@@ -2699,7 +2736,7 @@
   /// going through the qualified library name if necessary, but *not* handling
   /// inferred generic function instantiation.
   JS.Expression _emitSimpleIdentifier(SimpleIdentifier node) {
-    var accessor = node.staticElement;
+    var accessor = resolutionMap.staticElementForIdentifier(node);
     if (accessor == null) {
       return js.commentExpression(
           'Unimplemented unknown name', new JS.Identifier(node.name));
@@ -3230,7 +3267,7 @@
       return _badAssignment("Unimplemented: unknown name '$node'", node, rhs);
     }
 
-    var accessor = node.staticElement;
+    var accessor = resolutionMap.staticElementForIdentifier(node);
     if (accessor == null) return unimplemented();
 
     // Get the original declaring element. If we had a property accessor, this
@@ -3392,7 +3429,7 @@
       return _emitFunctionCall(node);
     }
     if (node.methodName.name == 'call') {
-      var targetType = target.staticType;
+      var targetType = resolutionMap.staticTypeForExpression(target);
       if (targetType is FunctionType) {
         // Call methods on function types should be handled as regular function
         // invocations.
@@ -3866,8 +3903,9 @@
       return _emitTopLevelField(node);
     }
 
-    var name =
-        new JS.Identifier(node.name.name, type: emitTypeRef(node.element.type));
+    var name = new JS.Identifier(node.name.name,
+        type: emitTypeRef(
+            resolutionMap.elementDeclaredByVariableDeclaration(node).type));
     return new JS.VariableInitialization(name, _visitInitializer(node));
   }
 
@@ -4084,7 +4122,7 @@
 
   @override
   visitInstanceCreationExpression(InstanceCreationExpression node) {
-    var element = node.staticElement;
+    var element = resolutionMap.staticElementForConstructorReference(node);
     var constructor = node.constructorName;
     var name = constructor.name;
     var type = constructor.type.type;
@@ -5773,7 +5811,9 @@
   var prefix = targetIdentifier.staticElement as PrefixElement;
 
   // The library the prefix is referring to must come from a deferred import.
-  var containingLibrary = (target.root as CompilationUnit).element.library;
+  var containingLibrary = resolutionMap
+      .elementDeclaredByCompilationUnit(target.root as CompilationUnit)
+      .library;
   var imports = containingLibrary.getImportsWithPrefix(prefix);
   return imports.length == 1 && imports[0].isDeferred;
 }
diff --git a/pkg/dev_compiler/lib/src/compiler/command.dart b/pkg/dev_compiler/lib/src/compiler/command.dart
index 221e7d4..878070f 100644
--- a/pkg/dev_compiler/lib/src/compiler/command.dart
+++ b/pkg/dev_compiler/lib/src/compiler/command.dart
@@ -24,9 +24,7 @@
             'Generated module paths are relative to this root.')
     ..addOption('library-root',
         help: 'Root of source files.\n'
-            'Generated library names are relative to this root.')
-    ..addOption('build-root',
-        help: 'Deprecated in favor of --library-root', hide: true);
+            'Generated library names are relative to this root.');
   addModuleFormatOptions(argParser, allowMultiple: true);
   AnalyzerOptions.addArguments(argParser);
   CompilerOptions.addArguments(argParser);
@@ -125,7 +123,6 @@
   var firstOutPath = outPaths[0];
 
   var libraryRoot = argResults['library-root'] as String;
-  libraryRoot ??= argResults['build-root'] as String;
   if (libraryRoot != null) {
     libraryRoot = path.absolute(libraryRoot);
   } else {
diff --git a/pkg/dev_compiler/lib/src/compiler/error_helpers.dart b/pkg/dev_compiler/lib/src/compiler/error_helpers.dart
index 091ab62..ec730d3 100644
--- a/pkg/dev_compiler/lib/src/compiler/error_helpers.dart
+++ b/pkg/dev_compiler/lib/src/compiler/error_helpers.dart
@@ -60,6 +60,8 @@
   // * it can return null
   // * using AnalysisError directly is now suspect, it's a correctness trap
   // * it requires an AnalysisContext
-  return ErrorProcessor.getProcessor(context, error)?.severity ??
+  return ErrorProcessor
+          .getProcessor(context.analysisOptions, error)
+          ?.severity ??
       error.errorCode.errorSeverity;
 }
diff --git a/pkg/dev_compiler/lib/src/compiler/js_metalet.dart b/pkg/dev_compiler/lib/src/compiler/js_metalet.dart
index 8e341fe..3645dc1 100644
--- a/pkg/dev_compiler/lib/src/compiler/js_metalet.dart
+++ b/pkg/dev_compiler/lib/src/compiler/js_metalet.dart
@@ -333,6 +333,7 @@
   bool hasYield = false;
   bool hasThis = false;
   bool _nestedFunction = false;
+
   @override
   visitThis(This node) {
     hasThis = true;
@@ -353,6 +354,7 @@
 
   @override
   visitNode(Node node) {
-    if (!hasYield) super.visitNode(node);
+    if (hasYield && hasThis) return; // found both, nothing more to do.
+    super.visitNode(node);
   }
 }
diff --git a/pkg/dev_compiler/lib/src/compiler/nullable_type_inference.dart b/pkg/dev_compiler/lib/src/compiler/nullable_type_inference.dart
index 39f0130..3934503 100644
--- a/pkg/dev_compiler/lib/src/compiler/nullable_type_inference.dart
+++ b/pkg/dev_compiler/lib/src/compiler/nullable_type_inference.dart
@@ -4,6 +4,7 @@
 
 import 'dart:collection';
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/ast/token.dart' show TokenType;
 import 'package:analyzer/dart/ast/visitor.dart' show RecursiveAstVisitor;
 import 'package:analyzer/dart/element/element.dart';
@@ -121,7 +122,7 @@
       return _isNullable(expr.expression, localIsNullable);
     }
     if (expr is InstanceCreationExpression) {
-      var e = expr.staticElement;
+      var e = resolutionMap.staticElementForConstructorReference(expr);
       if (e == null) return true;
 
       // Follow redirects.
@@ -165,7 +166,7 @@
     if (expr is MethodInvocation) {
       // TODO(vsm): This logic overlaps with the resolver.
       // Where is the best place to put this?
-      var e = expr.methodName.staticElement;
+      var e = resolutionMap.staticElementForIdentifier(expr.methodName);
       if (isInlineJS(e)) {
         // Fix types for JS builtin calls.
         //
diff --git a/pkg/dev_compiler/lib/src/compiler/source_map_printer.dart b/pkg/dev_compiler/lib/src/compiler/source_map_printer.dart
index 3a12972..3320e8d 100644
--- a/pkg/dev_compiler/lib/src/compiler/source_map_printer.dart
+++ b/pkg/dev_compiler/lib/src/compiler/source_map_printer.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:source_maps/source_maps.dart' hide Printer;
 import 'package:source_span/source_span.dart' show SourceLocation;
 
@@ -48,7 +49,8 @@
       // parts.
       _currentTopLevelDeclaration = node;
       unit = node.getAncestor((n) => n is CompilationUnit);
-      sourcePath = unit.element.source.fullName;
+      sourcePath =
+          resolutionMap.elementDeclaredByCompilationUnit(unit).source.fullName;
     }
 
     _mark(node.offset, _getIdentifier(node));
diff --git a/pkg/dev_compiler/test/browser/language_tests.js b/pkg/dev_compiler/test/browser/language_tests.js
index b0b2378..b6f80b8 100644
--- a/pkg/dev_compiler/test/browser/language_tests.js
+++ b/pkg/dev_compiler/test/browser/language_tests.js
@@ -211,6 +211,7 @@
       'identical_closure2_test': skip_fail,
       'infinite_switch_label_test': skip_fail,
       'infinity_test': skip_fail,
+      'initializing_formal_final_test': skip_fail,
       'instance_creation_in_function_annotation_test': skip_fail,
       'instanceof2_test': fail,
       'instanceof4_test_01_multi': fail,
diff --git a/pkg/dev_compiler/test/codegen_test.dart b/pkg/dev_compiler/test/codegen_test.dart
index 4df5f64..6e2df13 100644
--- a/pkg/dev_compiler/test/codegen_test.dart
+++ b/pkg/dev_compiler/test/codegen_test.dart
@@ -244,10 +244,16 @@
   var testFiles = <String>[];
 
   for (var testDir in testDirs) {
-    for (var file
-        in _listFiles(path.join(codegenDir, testDir), recursive: false)) {
-      var relativePath = path.relative(file, from: codegenDir);
-      var outputPath = path.join(codegenTestDir, relativePath);
+    // Look for the tests in the "_strong" directories in the SDK's main
+    // "tests" directory.
+    var dirParts = path.split(testDir);
+    var sdkTestDir =
+        path.join(dirParts[0] + "_strong", path.joinAll(dirParts.skip(1)));
+    var inputPath = path.join(testDirectory, '../../../tests/', sdkTestDir);
+
+    for (var file in _listFiles(inputPath, recursive: false)) {
+      var relativePath = path.relative(file, from: inputPath);
+      var outputPath = path.join(codegenTestDir, testDir, relativePath);
 
       _ensureDirectory(path.dirname(outputPath));
 
diff --git a/pkg/dev_compiler/test/not_yet_strong_tests.dart b/pkg/dev_compiler/test/not_yet_strong_tests.dart
index 0769af7..db8b461 100644
--- a/pkg/dev_compiler/test/not_yet_strong_tests.dart
+++ b/pkg/dev_compiler/test/not_yet_strong_tests.dart
@@ -2307,6 +2307,7 @@
   'language/getter_override2_test_00_multi',
   'language/getters_setters_test',
   'language/import_combinators_negative_test',
+  'language/initializing_formal_type_test',
   'language/inst_field_initializer1_negative_test',
   'language/instance_call_wrong_argument_count_negative_test',
   'language/instance_method2_negative_test',
diff --git a/pkg/dev_compiler/tool/input_sdk/patch/async_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/async_patch.dart
index b49a23b..cd898d0 100644
--- a/pkg/dev_compiler/tool/input_sdk/patch/async_patch.dart
+++ b/pkg/dev_compiler/tool/input_sdk/patch/async_patch.dart
@@ -10,6 +10,7 @@
 import 'dart:_isolate_helper' show
     IsolateNatives,
     TimerImpl,
+    global,
     leaveJsAsync,
     enterJsAsync,
     isWorker;
@@ -33,14 +34,14 @@
   static _TakeCallback _initializeScheduleImmediate() {
     // TODO(rnystrom): Not needed by dev_compiler.
     // requiresPreamble();
-    if (JS('', 'self.scheduleImmediate') != null) {
+    if (JS('', '#.scheduleImmediate', global) != null) {
       return _scheduleImmediateJsOverride;
     }
-    if (JS('', 'self.MutationObserver') != null &&
-        JS('', 'self.document') != null) {
+    if (JS('', '#.MutationObserver', global) != null &&
+        JS('', '#.document', global) != null) {
       // Use mutationObservers.
-      var div = JS('', 'self.document.createElement("div")');
-      var span = JS('', 'self.document.createElement("span")');
+      var div = JS('', '#.document.createElement("div")', global);
+      var span = JS('', '#.document.createElement("span")', global);
       _Callback storedCallback;
 
       internalCallback(_) {
@@ -50,7 +51,7 @@
         f();
       };
 
-      var observer = JS('', 'new self.MutationObserver(#)', internalCallback);
+      var observer = JS('', 'new #.MutationObserver(#)', global, internalCallback);
       JS('', '#.observe(#, { childList: true })',
           observer, div);
 
@@ -64,7 +65,7 @@
         JS('', '#.firstChild ? #.removeChild(#): #.appendChild(#)',
             div, div, span, div, span);
       };
-    } else if (JS('', 'self.setImmediate') != null) {
+    } else if (JS('', '#.setImmediate', global) != null) {
       return _scheduleImmediateWithSetImmediate;
     }
     // TODO(20055): We should use DOM promises when available.
@@ -77,7 +78,7 @@
       callback();
     };
     enterJsAsync();
-    JS('void', 'self.scheduleImmediate(#)', internalCallback);
+    JS('void', '#.scheduleImmediate(#)', global, internalCallback);
   }
 
   static void _scheduleImmediateWithSetImmediate(void callback()) {
@@ -86,7 +87,7 @@
       callback();
     };
     enterJsAsync();
-    JS('void', 'self.setImmediate(#)', internalCallback);
+    JS('void', '#.setImmediate(#)', global, internalCallback);
   }
 
   static void _scheduleImmediateWithTimer(void callback()) {
diff --git a/pkg/dev_compiler/tool/input_sdk/private/isolate_helper.dart b/pkg/dev_compiler/tool/input_sdk/private/isolate_helper.dart
index bb56c25..975dde7 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/isolate_helper.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/isolate_helper.dart
@@ -245,18 +245,19 @@
         "(function (f, a) { return function (e) { f(a, e); }})(#, #)",
         IsolateNatives._processWorkerMessage,
         mainManager);
-    JS("void", r"self.onmessage = #", function);
+    JS("void", r"#.onmessage = #", global, function);
     // We ensure dartPrint is defined so that the implementation of the Dart
     // print method knows what to call.
-    JS('', '''self.dartPrint = self.dartPrint || (function(serialize) {
+    JS('', '''#.dartPrint = #.dartPrint || (function(serialize) {
   return function (object) {
-    if (self.console && self.console.log) {
-      self.console.log(object)
+    var _self = #;
+    if (_self.console && _self.console.log) {
+      _self.console.log(object)
     } else {
-      self.postMessage(serialize(object));
+      _self.postMessage(serialize(object));
     }
   }
-})(#)''', _serializePrintMessage);
+})(#)''', global, global, global, _serializePrintMessage);
   }
 
   static _serializePrintMessage(object) {
@@ -429,8 +430,8 @@
         // don't print it.
         return;
       }
-      if (JS('bool', 'self.console && self.console.error')) {
-        JS('void', 'self.console.error(#, #)', error, stackTrace);
+      if (JS('bool', '#.console && #.console.error', global, global)) {
+        JS('void', '#.console.error(#, #)', global, error, stackTrace);
       } else {
         print(error);
         if (stackTrace != null) print(stackTrace);
@@ -700,13 +701,13 @@
 //
 // See: http://www.w3.org/TR/workers/#the-global-scope
 // and: http://www.w3.org/TR/Window/#dfn-self-attribute
-final _global =
+final global =
   JS("", "typeof global == 'undefined' ? self : global");
 
 /** A stub for interacting with the main manager. */
 class _MainManagerStub {
   void postMessage(msg) {
-    JS("void", r"#.postMessage(#)", _global, msg);
+    JS("void", r"#.postMessage(#)", global, msg);
   }
 }
 
@@ -714,14 +715,14 @@
 const String _SPAWN_FAILED_SIGNAL = "spawn failed";
 
 get globalWindow {
-  return JS('', "#.window", _global);
+  return JS('', "#.window", global);
 }
 
 get globalWorker {
-  return JS('', "#.Worker", _global);
+  return JS('', "#.Worker", global);
 }
 bool get globalPostMessageDefined {
-  return JS('bool', "!!#.postMessage", _global);
+  return JS('bool', "!!#.postMessage", global);
 }
 
 typedef _MainFunction();
@@ -906,7 +907,7 @@
   }
 
   static void _consoleLog(msg) {
-    JS("void", r"self.console.log(#)", msg);
+    JS("void", r"#.console.log(#)", global, msg);
   }
 
   static _getJSFunctionFromName(String functionName) {
@@ -1372,7 +1373,7 @@
       enterJsAsync();
 
       _handle = JS(
-          'int', 'self.setTimeout(#, #)', internalCallback, milliseconds);
+          'int', '#.setTimeout(#, #)', global, internalCallback, milliseconds);
     } else {
       assert(milliseconds > 0);
       throw new UnsupportedError("Timer greater than 0.");
@@ -1383,8 +1384,8 @@
       : _once = false {
     if (hasTimer()) {
       enterJsAsync();
-      _handle = JS('int', 'self.setInterval(#, #)',
-          () { callback(this); }, milliseconds);
+      _handle = JS('int', '#.setInterval(#, #)',
+          global, () { callback(this); }, milliseconds);
     } else {
       throw new UnsupportedError("Periodic timer.");
     }
@@ -1398,9 +1399,9 @@
       if (_handle == null) return;
       leaveJsAsync();
       if (_once) {
-        JS('void', 'self.clearTimeout(#)', _handle);
+        JS('void', '#.clearTimeout(#)', global, _handle);
       } else {
-        JS('void', 'self.clearInterval(#)', _handle);
+        JS('void', '#.clearInterval(#)', global, _handle);
       }
       _handle = null;
     } else {
@@ -1412,7 +1413,7 @@
 }
 
 bool hasTimer() {
-  return JS('', 'self.setTimeout') != null;
+  return JS('', '#.setTimeout', global) != null;
 }
 
 
diff --git a/pkg/front_end/lib/compiler_options.dart b/pkg/front_end/lib/compiler_options.dart
index ac75dd1..55b6c90 100644
--- a/pkg/front_end/lib/compiler_options.dart
+++ b/pkg/front_end/lib/compiler_options.dart
@@ -97,4 +97,22 @@
   /// [packagesFilePath], the packages file is located using the actual physical
   /// file system.  TODO(paulberry): fix this.
   FileSystem fileSystem = PhysicalFileSystem.instance;
+
+  /// Whether to generate code for the SDK when compiling a whole-program.
+  bool compileSdk = false;
+
+  /// Whether a modular build compiles only the files listed explicitly or if it
+  /// compiles dependencies as well.
+  ///
+  /// This option is intended only for modular APIs like `kernelForBuildUnit`.
+  /// These APIs by default ensure that builds are hermetic, where all files
+  /// that will be compiled are listed explicitly and all other dependencies
+  /// are covered by summary files.
+  ///
+  /// When this option is true, these APIs will treat any dependency that is
+  /// not described in a summary as if it was explictly listed as an input.
+  bool chaseDependencies = false;
+
+  /// Whether to intepret Dart sources in strong-mode.
+  bool strongMode = true;
 }
diff --git a/pkg/front_end/lib/kernel_generator.dart b/pkg/front_end/lib/kernel_generator.dart
index ce9eee8..a87bb68 100644
--- a/pkg/front_end/lib/kernel_generator.dart
+++ b/pkg/front_end/lib/kernel_generator.dart
@@ -9,6 +9,9 @@
 import 'compiler_options.dart';
 import 'dart:async';
 
+import 'package:analyzer/src/generated/source.dart' show SourceKind;
+import 'package:analyzer/src/summary/package_bundle_reader.dart'
+    show InSummarySource;
 // TODO(sigmund): move loader logic under front_end/lib/src/kernel/
 import 'package:kernel/analyzer/loader.dart';
 import 'package:kernel/kernel.dart';
@@ -23,37 +26,50 @@
 /// follows `import`, `export`, and `part` declarations to discover the whole
 /// program, and converts the result to Dart Kernel format.
 ///
-/// If summaries are provided in [options], they may be used to speed up
-/// analysis, but they will not take the place of Dart source code (since the
-/// Dart source code is still needed to access the contents of method bodies).
+/// If `compileSdk` in [options] is true, the generated program will include
+/// code for the SDK.
 ///
-/// TODO(paulberry): will the VM have a pickled version of the SDK inside it? If
-/// so, then maybe this method should not convert SDK libraries to kernel.
+/// If summaries are provided in [options], they may be used to speed up
+/// analysis. If in addition `compileSdk` is false, this will speed up
+/// compilation, as no source of the sdk will be generated.  Note however, that
+/// summaries for application code can also speed up analysis, but they will not
+/// take the place of Dart source code (since the Dart source code is still
+/// needed to access the contents of method bodies).
 Future<Program> kernelForProgram(Uri source, CompilerOptions options) async {
-  var loader = await _createLoader(options);
-  Program program = loader.loadProgram(source);
+  var loader = await _createLoader(options, entry: source);
+  // TODO(sigmund): merge what we have in loadEverything and the logic below in
+  // kernelForBuildUnit so there is a single place where we crawl for
+  // dependencies.
+  Program program = loader.loadProgram(source, compileSdk: options.compileSdk);
   _reportErrors(loader.errors, options.onError);
   return program;
 }
 
-/// Generates a kernel representation of the build unit whose source files are
-/// in [sources].
+/// Generates a kernel representation for a build unit.
 ///
 /// Intended for modular compilation.
 ///
-/// [sources] should be the complete set of source files for a build unit
-/// (including both library and part files).  All of the library files are
-/// transformed into Dart Kernel Library objects.
+/// The build unit by default contains only the source files in [sources]
+/// (including library and part files), but if
+/// [CompilerOptions.chaseDependencies] is true, it may include some additional
+/// source files.  All of the library files are transformed into Dart Kernel
+/// Library objects.
 ///
-/// The compilation process is hermetic, meaning that the only files which will
-/// be read are those listed in [sources], [CompilerOptions.inputSummaries], and
-/// [CompilerOptions.sdkSummary].  If a source file attempts to refer to a file
-/// which is not obtainable from these paths, that will result in an error, even
-/// if the file exists on the filesystem.
+/// By default, the compilation process is hermetic, meaning that the only files
+/// which will be read are those listed in [sources],
+/// [CompilerOptions.inputSummaries], and [CompilerOptions.sdkSummary].  If a
+/// source file attempts to refer to a file which is not obtainable from these
+/// paths, that will result in an error, even if the file exists on the
+/// filesystem.
+///
+/// When [CompilerOptions.chaseDependencies] is true, this default behavior
+/// changes, and any dependency of [sources] that is not listed in
+/// [CompilerOptions.inputSummaries] and [CompilerOptions.sdkSummary] is treated
+/// as an additional source file for the build unit.
 ///
 /// Any `part` declarations found in [sources] must refer to part files which
-/// are also listed in [sources], otherwise an error results.  (It is not
-/// permitted to refer to a part file declared in another build unit).
+/// are also listed in the build unit sources, otherwise an error results.  (It
+/// is not permitted to refer to a part file declared in another build unit).
 ///
 /// The return value is a [Program] object with no main method set.
 /// TODO(paulberry): would it be better to define a data type in kernel to
@@ -63,27 +79,68 @@
 /// caller to match up referenced elements to the summary files they were
 /// obtained from?
 Future<Program> kernelForBuildUnit(
-        List<Uri> sources, CompilerOptions options) async {
+    List<Uri> sources, CompilerOptions options) async {
   var repository = new Repository();
   var loader = await _createLoader(options, repository: repository);
-  // TODO(sigmund): add special handling for part files.
-  sources.forEach(loader.loadLibrary);
+  var context = loader.context;
+
+  // Process every library in the build unit.
+  for (var uri in sources) {
+    var source = context.sourceFactory.forUri2(uri);
+    //  We ignore part files, those are handled by their enclosing library.
+    if (context.computeKindOf(source) == SourceKind.PART) {
+      // TODO(sigmund): record it and ensure that this part is within a provided
+      // library.
+      continue;
+    }
+    loader.loadLibrary(uri);
+  }
+
+  // Check whether all dependencies were included in [sources].
+  // TODO(sigmund): we should look for dependencies using import, export, and
+  // part directives intead of relying on the dartk-loader.  In particular, if a
+  // library is imported but not used, the logic below will not detect it.
+  for (int i = 0; i < repository.libraries.length; ++i) {
+    // Note: we don't use a for-in loop because repository.libraries grows as
+    // the loader processes libraries.
+    var lib = repository.libraries[i];
+    var source = context.sourceFactory.forUri2(lib.importUri);
+    if (source is InSummarySource) continue;
+    if (options.chaseDependencies) {
+      loader.ensureLibraryIsLoaded(lib);
+    } else if (lib.isExternal) {
+      // Default behavior: the build should be hermetic and all dependencies
+      // should be listed.
+      options.onError(new _DartkError('hermetic build error: '
+          'no source or summary was given for ${lib.importUri}'));
+    }
+  }
+
   Program program = new Program(repository.libraries);
   _reportErrors(loader.errors, options.onError);
   return program;
 }
 
+/// Create a [DartLoader] using the provided [options].
+///
+/// If [options] contain no configuration to resolve `.packages`, the [entry]
+/// file will be used to search for a `.packages` file.
 Future<DartLoader> _createLoader(CompilerOptions options,
-    {Repository repository}) async {
+    {Repository repository, Uri entry}) async {
   var kernelOptions = _convertOptions(options);
-  var packages = await createPackages(options.packagesFilePath);
+  var packages = await createPackages(options.packagesFilePath,
+      discoveryPath: entry?.path);
   return new DartLoader(
       repository ?? new Repository(), kernelOptions, packages);
 }
 
 DartOptions _convertOptions(CompilerOptions options) {
   return new DartOptions(
+      strongMode: options.strongMode,
       sdk: options.sdkPath,
+      // TODO(sigmund): make it possible to use summaries and still compile the
+      // sdk sources.
+      sdkSummary: options.compileSdk ? null : options.sdkSummary,
       packagePath: options.packagesFilePath,
       declaredVariables: options.declaredVariables);
 }
diff --git a/pkg/front_end/tool/perf.dart b/pkg/front_end/tool/perf.dart
index 4fa76ed..af74fd3 100644
--- a/pkg/front_end/tool/perf.dart
+++ b/pkg/front_end/tool/perf.dart
@@ -21,12 +21,14 @@
 import 'package:analyzer/src/generated/source_io.dart';
 import 'package:analyzer/src/summary/format.dart';
 import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary/prelink.dart';
+import 'package:analyzer/src/summary/link.dart';
 import 'package:analyzer/src/summary/summarize_ast.dart';
 import 'package:kernel/analyzer/loader.dart';
 import 'package:kernel/kernel.dart';
 import 'package:package_config/discovery.dart';
 
+import 'package:front_end/compiler_options.dart';
+import 'package:front_end/kernel_generator.dart';
 import 'package:front_end/src/scanner/reader.dart';
 import 'package:front_end/src/scanner/scanner.dart';
 import 'package:front_end/src/scanner/token.dart';
@@ -43,6 +45,9 @@
 /// Cumulative time spent building unlinked summaries.
 Stopwatch unlinkedSummarizeTimer = new Stopwatch();
 
+/// Cumulative time spent prelinking summaries.
+Stopwatch prelinkSummaryTimer = new Stopwatch();
+
 /// Factory to load and resolve app, packages, and sdk sources.
 SourceFactory sources;
 
@@ -77,7 +82,21 @@
       // TODO(sigmund): replace this warmup. Note that for very large programs,
       // the GC pressure on the VM seems to make this worse with time (maybe we
       // are leaking memory?). That's why we run it twice and not 10 times.
-      for (int i = 0; i < 2; i++) await generateKernel(entryUri);
+      for (int i = 0; i < 2; i++) {
+        await generateKernel(entryUri, useSdkSummary: false);
+      }
+    },
+    'kernel_gen_e2e_sum': () async {
+      // TODO(sigmund): remove. This is incorrect since it includes sizes for
+      // files that will not be loaded when using summaries. We need to extract
+      // input size from frontend instead.
+      scanReachableFiles(entryUri);
+      // TODO(sigmund): replace this warmup. Note that for very large programs,
+      // the GC pressure on the VM seems to make this worse with time (maybe we
+      // are leaking memory?). That's why we run it twice and not 10 times.
+      for (int i = 0; i < 2; i++) {
+        await generateKernel(entryUri, useSdkSummary: true, compileSdk: false);
+      }
     },
     'unlinked_summarize': () async {
       Set<Source> files = scanReachableFiles(entryUri);
@@ -88,6 +107,11 @@
       Set<Source> files = scanReachableFiles(entryUri);
       // TODO(sigmund): replace the warmup with instrumented snapshots.
       for (int i = 0; i < 10; i++) prelinkedSummarizeFiles(files);
+    },
+    'linked_summarize': () async {
+      Set<Source> files = scanReachableFiles(entryUri);
+      // TODO(sigmund): replace the warmup with instrumented snapshots.
+      for (int i = 0; i < 10; i++) linkedSummarizeFiles(files);
     }
   };
 
@@ -202,9 +226,7 @@
   scanTotalChars = 0;
   parseTimer = new Stopwatch();
   unlinkedSummarizeTimer = new Stopwatch();
-  for (var source in files) {
-    unlinkedSummarize(source);
-  }
+  generateUnlinkedSummaries(files);
 
   if (old != scanTotalChars) print('input size changed? ${old} chars');
   report("scan", scanTimer.elapsedMicroseconds);
@@ -216,6 +238,32 @@
           parseTimer.elapsedMicroseconds);
 }
 
+/// Simple container for a mapping from URI string to an unlinked summary.
+class UnlinkedSummaries {
+  final summariesByUri = <String, UnlinkedUnit>{};
+
+  /// Get the unlinked summary for the given URI, and report a warning if it
+  /// can't be found.
+  UnlinkedUnit getUnit(String uri) {
+    var result = summariesByUri[uri];
+    if (result == null) {
+      print('Warning: no summary found for: $uri');
+    }
+    return result;
+  }
+}
+
+/// Generates unlinkmed summaries for all files in [files], and returns them in
+/// an [UnlinkedSummaries] container.
+UnlinkedSummaries generateUnlinkedSummaries(Set<Source> files) {
+  var unlinkedSummaries = new UnlinkedSummaries();
+  for (var source in files) {
+    unlinkedSummaries.summariesByUri[source.uri.toString()] =
+        unlinkedSummarize(source);
+  }
+  return unlinkedSummaries;
+}
+
 /// Produces prelinked summaries for every file in [files] and reports the time
 /// spent doing so.
 void prelinkedSummarizeFiles(Set<Source> files) {
@@ -228,28 +276,9 @@
   scanTotalChars = 0;
   parseTimer = new Stopwatch();
   unlinkedSummarizeTimer = new Stopwatch();
-  var unlinkedSummaries = <Source, UnlinkedUnit>{};
-  for (var source in files) {
-    unlinkedSummaries[source] = unlinkedSummarize(source);
-  }
-  var prelinkTimer = new Stopwatch()..start();
-  for (var source in files) {
-    UnlinkedUnit getSummary(String uri) {
-      var resolvedUri = sources.resolveUri(source, uri);
-      var result = unlinkedSummaries[resolvedUri];
-      if (result == null) {
-        print('Warning: no summary found for: $uri');
-      }
-      return result;
-    }
-
-    UnlinkedPublicNamespace getImport(String uri) =>
-        getSummary(uri)?.publicNamespace;
-    String getDeclaredVariable(String s) => null;
-    prelink(
-        unlinkedSummaries[source], getSummary, getImport, getDeclaredVariable);
-  }
-  prelinkTimer.stop();
+  var unlinkedSummaries = generateUnlinkedSummaries(files);
+  prelinkSummaryTimer = new Stopwatch();
+  prelinkSummaries(files, unlinkedSummaries);
 
   if (old != scanTotalChars) print('input size changed? ${old} chars');
   report("scan", scanTimer.elapsedMicroseconds);
@@ -259,7 +288,64 @@
       'unlinked summarize + parse',
       unlinkedSummarizeTimer.elapsedMicroseconds +
           parseTimer.elapsedMicroseconds);
-  report('prelink', prelinkTimer.elapsedMicroseconds);
+  report('prelink', prelinkSummaryTimer.elapsedMicroseconds);
+}
+
+/// Produces linked summaries for every file in [files] and reports the time
+/// spent doing so.
+void linkedSummarizeFiles(Set<Source> files) {
+  // The code below will record again how many chars are scanned and how long it
+  // takes to scan them, even though we already did so in [scanReachableFiles].
+  // Recording and reporting this twice is unnecessary, but we do so for now to
+  // validate that the results are consistent.
+  scanTimer = new Stopwatch();
+  var old = scanTotalChars;
+  scanTotalChars = 0;
+  parseTimer = new Stopwatch();
+  unlinkedSummarizeTimer = new Stopwatch();
+  var unlinkedSummaries = generateUnlinkedSummaries(files);
+  prelinkSummaryTimer = new Stopwatch();
+  Map<String, LinkedLibraryBuilder> prelinkedLibraries =
+      prelinkSummaries(files, unlinkedSummaries);
+  var linkTimer = new Stopwatch()..start();
+  LinkedLibrary getDependency(String uri) {
+    // getDependency should never be called because all dependencies are present
+    // in [prelinkedLibraries].
+    print('Warning: getDependency called for: $uri');
+    return null;
+  }
+
+  bool strong = true;
+  relink(prelinkedLibraries, getDependency, unlinkedSummaries.getUnit, strong);
+  linkTimer.stop();
+
+  if (old != scanTotalChars) print('input size changed? ${old} chars');
+  report("scan", scanTimer.elapsedMicroseconds);
+  report("parse", parseTimer.elapsedMicroseconds);
+  report('unlinked summarize', unlinkedSummarizeTimer.elapsedMicroseconds);
+  report(
+      'unlinked summarize + parse',
+      unlinkedSummarizeTimer.elapsedMicroseconds +
+          parseTimer.elapsedMicroseconds);
+  report('prelink', prelinkSummaryTimer.elapsedMicroseconds);
+  report('link', linkTimer.elapsedMicroseconds);
+}
+
+/// Prelinks all the summaries for [files], using [unlinkedSummaries] to obtain
+/// their unlinked summaries.
+///
+/// The return value is suitable for passing to the summary linker.
+Map<String, LinkedLibraryBuilder> prelinkSummaries(
+    Set<Source> files, UnlinkedSummaries unlinkedSummaries) {
+  prelinkSummaryTimer.start();
+  Set<String> libraryUris =
+      files.map((source) => source.uri.toString()).toSet();
+
+  String getDeclaredVariable(String s) => null;
+  var prelinkedLibraries =
+      setupForLink(libraryUris, unlinkedSummaries.getUnit, getDeclaredVariable);
+  prelinkSummaryTimer.stop();
+  return prelinkedLibraries;
 }
 
 /// Add to [files] all sources reachable from [start].
@@ -332,25 +418,26 @@
   print('$sb');
 }
 
-// TODO(sigmund): replace this once kernel is produced by the frontend directly.
-Future<Program> generateKernel(Uri entryUri) async {
+Future<Program> generateKernel(Uri entryUri,
+    {bool useSdkSummary: false, bool compileSdk: true}) async {
   var dartkTimer = new Stopwatch()..start();
-  var options = new DartOptions(strongMode: false, sdk: 'sdk');
-  var packages =
-      await createPackages(options.packagePath, discoveryPath: entryUri.path);
-  var repository = new Repository();
-  DartLoader loader = new DartLoader(repository, options, packages);
-
-  Program program = loader.loadProgram(entryUri);
-  List errors = loader.errors;
-  if (errors.isNotEmpty) {
-    const int errorLimit = 100;
-    stderr.writeln(errors.take(errorLimit).join('\n'));
-    if (errors.length > errorLimit) {
-      stderr.writeln('[error] ${errors.length - errorLimit} errors not shown');
-    }
+  // TODO(sigmund): add a constructor with named args to compiler options.
+  var options = new CompilerOptions()
+    ..strongMode = false
+    ..compileSdk = compileSdk
+    ..packagesFilePath = '.packages'
+    ..onError = ((e) => print('${e.message}'));
+  if (useSdkSummary) {
+    // TODO(sigmund): adjust path based on the benchmark runner architecture.
+    // Possibly let the runner make the file available at an architecture
+    // independent location.
+    options.sdkSummary = 'out/ReleaseX64/dart-sdk/lib/_internal/spec.sum';
+  } else {
+    options.sdkPath = 'sdk';
   }
+  Program program = await kernelForProgram(entryUri, options);
   dartkTimer.stop();
-  report("kernel_gen_e2e", dartkTimer.elapsedMicroseconds);
+  var suffix = useSdkSummary ? "_sum" : "";
+  report("kernel_gen_e2e${suffix}", dartkTimer.elapsedMicroseconds);
   return program;
 }
diff --git a/pkg/kernel/lib/analyzer/ast_from_analyzer.dart b/pkg/kernel/lib/analyzer/ast_from_analyzer.dart
index caece79..20afc52 100644
--- a/pkg/kernel/lib/analyzer/ast_from_analyzer.dart
+++ b/pkg/kernel/lib/analyzer/ast_from_analyzer.dart
@@ -12,6 +12,7 @@
 import 'analyzer.dart';
 import 'loader.dart';
 import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/src/generated/parser.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/error/codes.dart';
@@ -541,7 +542,8 @@
           initializer: parameter is DefaultFormalParameter
               ? buildOptionalTopLevelExpression(parameter.defaultValue)
               : null,
-          type: buildType(parameter.element.type));
+          type: buildType(
+              resolutionMap.elementDeclaredByFormalParameter(parameter).type));
       switch (parameter.kind) {
         case ParameterKind.REQUIRED:
           positional.add(declaration);
@@ -2335,7 +2337,10 @@
   bool _isIgnoredMember(ClassMember node) {
     return node is ConstructorDeclaration &&
         node.factoryKeyword != null &&
-        node.element.redirectedConstructor != null;
+        resolutionMap
+                .elementDeclaredByConstructorDeclaration(node)
+                .redirectedConstructor !=
+            null;
   }
 
   visitClassDeclaration(ClassDeclaration node) {
@@ -2610,7 +2615,9 @@
         hasExplicitConstructorCall = true;
       }
     }
-    ClassElement classElement = node.element.enclosingElement;
+    ClassElement classElement = resolutionMap
+        .elementDeclaredByConstructorDeclaration(node)
+        .enclosingElement;
     if (classElement.supertype != null && !hasExplicitConstructorCall) {
       ConstructorElement targetElement =
           scope.findDefaultConstructor(classElement.supertype.element);
@@ -2628,7 +2635,9 @@
   void buildFactoryConstructor(ConstructorDeclaration node) {
     addAnnotations(node.metadata);
     ast.Procedure procedure = currentMember;
-    ClassElement classElement = node.element.enclosingElement;
+    ClassElement classElement = resolutionMap
+        .elementDeclaredByConstructorDeclaration(node)
+        .enclosingElement;
     ast.Class classNode = procedure.enclosingClass;
     var types = getFreshTypeParameters(classNode.typeParameters);
     for (int i = 0; i < classElement.typeParameters.length; ++i) {
@@ -2643,7 +2652,10 @@
     handleNativeBody(node.body);
     if (node.redirectedConstructor != null) {
       // Redirecting factories with resolved targets don't show up here.
-      assert(node.element.redirectedConstructor == null);
+      assert(resolutionMap
+              .elementDeclaredByConstructorDeclaration(node)
+              .redirectedConstructor ==
+          null);
       var function = procedure.function;
       var name = node.redirectedConstructor.type.name.name;
       if (node.redirectedConstructor.name != null) {
@@ -2662,7 +2674,8 @@
     ast.Procedure procedure = currentMember;
     procedure.function = scope.buildFunctionNode(node.parameters, node.body,
         returnType: node.returnType,
-        inferredReturnType: scope.buildType(node.element.returnType),
+        inferredReturnType: scope.buildType(
+            resolutionMap.elementDeclaredByMethodDeclaration(node).returnType),
         typeParameters:
             scope.buildOptionalTypeParameterList(node.typeParameters))
       ..parent = procedure;
@@ -2672,7 +2685,8 @@
   visitVariableDeclaration(VariableDeclaration node) {
     addAnnotations(node.metadata);
     ast.Field field = currentMember;
-    field.type = scope.buildType(node.element.type);
+    field.type = scope.buildType(
+        resolutionMap.elementDeclaredByVariableDeclaration(node).type);
     if (node.initializer != null) {
       field.initializer = scope.buildTopLevelExpression(node.initializer)
         ..parent = field;
diff --git a/pkg/kernel/lib/analyzer/loader.dart b/pkg/kernel/lib/analyzer/loader.dart
index ae16926..4fb962e 100644
--- a/pkg/kernel/lib/analyzer/loader.dart
+++ b/pkg/kernel/lib/analyzer/loader.dart
@@ -16,6 +16,7 @@
 import 'package:analyzer/src/generated/parser.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source_io.dart';
+import 'package:analyzer/src/summary/summary_sdk.dart';
 import 'package:kernel/application_root.dart';
 import 'package:package_config/discovery.dart';
 import 'package:package_config/packages.dart';
@@ -34,16 +35,29 @@
 
   /// True if the Dart SDK should be loaded in strong mode.
   bool strongModeSdk;
+
+  /// Path to the sdk sources, ignored if sdkSummary is provided.
   String sdk;
+
+  /// Path to a summary of the sdk sources.
+  String sdkSummary;
+
+  /// Path to the `.packages` file.
   String packagePath;
+
+  /// Root used to relativize app file-urls, making them machine agnostic.
   ApplicationRoot applicationRoot;
+
   Map<Uri, Uri> customUriMappings;
+
+  /// Environment definitions provided via `-Dkey=value`.
   Map<String, String> declaredVariables;
 
   DartOptions(
       {bool strongMode: false,
       bool strongModeSdk,
       this.sdk,
+      this.sdkSummary,
       this.packagePath,
       ApplicationRoot applicationRoot,
       Map<Uri, Uri> customUriMappings,
@@ -620,20 +634,26 @@
     }
   }
 
-  void loadEverything({Target target}) {
-    ensureLibraryIsLoaded(getLibraryReference(getDartCoreLibrary()));
-    if (target != null) {
-      for (var uri in target.extraRequiredLibraries) {
-        var library = _findLibraryElement(uri);
-        if (library == null) {
-          errors.add('Could not find required library $uri');
-          continue;
+  void loadEverything({Target target, bool compileSdk}) {
+    compileSdk ??= true;
+    if (compileSdk) {
+      ensureLibraryIsLoaded(getLibraryReference(getDartCoreLibrary()));
+      if (target != null) {
+        for (var uri in target.extraRequiredLibraries) {
+          var library = _findLibraryElement(uri);
+          if (library == null) {
+            errors.add('Could not find required library $uri');
+            continue;
+          }
+          ensureLibraryIsLoaded(getLibraryReference(library));
         }
-        ensureLibraryIsLoaded(getLibraryReference(library));
       }
     }
     for (int i = 0; i < repository.libraries.length; ++i) {
-      ensureLibraryIsLoaded(repository.libraries[i]);
+      var library = repository.libraries[i];
+      if (compileSdk || library.importUri.scheme != 'dart') {
+        ensureLibraryIsLoaded(library);
+      }
     }
   }
 
@@ -660,11 +680,11 @@
     }
   }
 
-  ast.Program loadProgram(Uri mainLibrary, {Target target}) {
+  ast.Program loadProgram(Uri mainLibrary, {Target target, bool compileSdk}) {
     ast.Library library = repository
         .getLibraryReference(applicationRoot.relativeUri(mainLibrary));
     ensureLibraryIsLoaded(library);
-    loadEverything(target: target);
+    loadEverything(target: target, compileSdk: compileSdk);
     var program = new ast.Program(repository.libraries);
     program.mainMethod = library.procedures.firstWhere(
         (member) => member.name?.name == 'main',
@@ -763,7 +783,10 @@
     ..enableSuperMixins = true;
 }
 
-DartSdk createDartSdk(String path, {bool strongMode}) {
+DartSdk createDartSdk(String path, {bool strongMode, bool isSummary}) {
+  if (isSummary ?? false) {
+    return new SummaryBasedDartSdk(path, strongMode);
+  }
   var resources = PhysicalResourceProvider.INSTANCE;
   return new FolderBasedDartSdk(resources, resources.getFolder(path))
     ..context
@@ -806,7 +829,9 @@
 
 AnalysisContext createContext(DartOptions options, Packages packages,
     {DartSdk dartSdk}) {
-  dartSdk ??= createDartSdk(options.sdk, strongMode: options.strongModeSdk);
+  bool fromSummary = options.sdkSummary != null;
+  dartSdk ??= createDartSdk(fromSummary ? options.sdkSummary : options.sdk,
+      strongMode: options.strongModeSdk, isSummary: fromSummary);
 
   var resourceProvider = PhysicalResourceProvider.INSTANCE;
   var resourceUriResolver = new ResourceUriResolver(resourceProvider);
diff --git a/pkg/kernel/lib/frontend/accessors.dart b/pkg/kernel/lib/frontend/accessors.dart
index 5271f0b..17355b0 100644
--- a/pkg/kernel/lib/frontend/accessors.dart
+++ b/pkg/kernel/lib/frontend/accessors.dart
@@ -185,7 +185,7 @@
 
   SuperPropertyAccessor(this.name, this.getter, this.setter);
 
-  _makeRead() => new SuperPropertyGet(name, getter);
+  _makeRead() => builtGetter = new SuperPropertyGet(name, getter);
 
   _makeWrite(Expression value, bool voidContext) {
     return new SuperPropertySet(name, value, setter);
@@ -235,7 +235,7 @@
   }
 
   _makeRead() {
-    return new MethodInvocation(receiverAccess(), _indexGet,
+    return builtGetter = new MethodInvocation(receiverAccess(), _indexGet,
         new Arguments(<Expression>[indexAccess()]), getter);
   }
 
@@ -289,8 +289,8 @@
     return new VariableGet(indexVariable);
   }
 
-  _makeRead() => new MethodInvocation(new ThisExpression(), _indexGet,
-      new Arguments(<Expression>[indexAccess()]), getter);
+  _makeRead() => builtGetter = new MethodInvocation(new ThisExpression(),
+      _indexGet, new Arguments(<Expression>[indexAccess()]), getter);
 
   _makeWrite(Expression value, bool voidContext) {
     if (!voidContext) return _makeWriteAndReturn(value);
@@ -335,7 +335,7 @@
   }
 
   _makeRead() {
-    return new SuperMethodInvocation(
+    return builtGetter = new SuperMethodInvocation(
         _indexGet, new Arguments(<Expression>[indexAccess()]), getter);
   }
 
@@ -367,7 +367,7 @@
 
   StaticAccessor(this.readTarget, this.writeTarget);
 
-  _makeRead() =>
+  _makeRead() => builtGetter =
       readTarget == null ? makeInvalidRead() : new StaticGet(readTarget);
 
   _makeWrite(Expression value, bool voidContext) {
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index 07b9b17..495d117 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -564,6 +564,17 @@
                  "..:dart_maybe_product_config",
                ] + extra_configs
 
+    if (defined(is_fuchsia_host) && is_fuchsia_host) {
+      # We already have these in the standalone build, but Fuchsia doesn't
+      # have them. They are needed for running Fuchsia binaries built for the
+      # host.
+      if (is_linux) {
+        configs += [ "../../build/config/gcc:executable_ldconfig" ]
+      } else if (is_mac) {
+        configs += [ "../../build/config/mac:mac_dynamic_flags" ]
+      }
+    }
+
     deps = [
              ":gen_resources_cc",
              ":standalone_dart_io",
@@ -607,37 +618,35 @@
   }
 }
 
-if (!defined(is_fuchsia) || !is_fuchsia) {
-  dart_executable("dart") {
-    extra_deps = [
-      "..:libdart",
-      ":dart_snapshot_cc",
-      "../observatory:standalone_observatory_archive",
-    ]
-    extra_sources = [ "builtin_nolib.cc" ]
-  }
+dart_executable("dart") {
+  extra_deps = [
+    "..:libdart",
+    ":dart_snapshot_cc",
+    "../observatory:standalone_observatory_archive",
+  ]
+  extra_sources = [ "builtin_nolib.cc" ]
+}
 
-  dart_executable("dart_noopt") {
-    extra_configs = [ "..:dart_precompiler_config" ]
-    extra_deps = [
-      "..:libdart_noopt",
-      ":dart_snapshot_cc",
-      "../observatory:standalone_observatory_archive",
-    ]
-    extra_sources = [ "builtin_nolib.cc" ]
-  }
+dart_executable("dart_noopt") {
+  extra_configs = [ "..:dart_precompiler_config" ]
+  extra_deps = [
+    "..:libdart_noopt",
+    ":dart_snapshot_cc",
+    "../observatory:standalone_observatory_archive",
+  ]
+  extra_sources = [ "builtin_nolib.cc" ]
+}
 
-  dart_executable("dart_precompiled_runtime") {
-    extra_configs = [ "..:dart_precompiled_runtime_config" ]
-    extra_deps = [
-      "..:libdart_precompiled_runtime",
-      "../observatory:standalone_observatory_archive",
-    ]
-    extra_sources = [
-      "builtin_nolib.cc",
-      "snapshot_empty.cc",
-    ]
-  }
+dart_executable("dart_precompiled_runtime") {
+  extra_configs = [ "..:dart_precompiled_runtime_config" ]
+  extra_deps = [
+    "..:libdart_precompiled_runtime",
+    "../observatory:standalone_observatory_archive",
+  ]
+  extra_sources = [
+    "builtin_nolib.cc",
+    "snapshot_empty.cc",
+  ]
 }
 
 dart_executable("dart_bootstrap") {
diff --git a/runtime/bin/crypto_fuchsia.cc b/runtime/bin/crypto_fuchsia.cc
index a066574..dde76ac 100644
--- a/runtime/bin/crypto_fuchsia.cc
+++ b/runtime/bin/crypto_fuchsia.cc
@@ -18,7 +18,7 @@
     const intptr_t remaining = count - read;
     const intptr_t len =
         (MX_CPRNG_DRAW_MAX_LEN < remaining) ? MX_CPRNG_DRAW_MAX_LEN : remaining;
-    mx_size_t res = 0;
+    size_t res = 0;
     const mx_status_t status = mx_cprng_draw(buffer + read, len, &res);
     if (status != NO_ERROR) {
       return false;
diff --git a/runtime/bin/directory_android.cc b/runtime/bin/directory_android.cc
index e61d513..a3c923c 100644
--- a/runtime/bin/directory_android.cc
+++ b/runtime/bin/directory_android.cc
@@ -129,6 +129,10 @@
           return Next(listing);
         }
         return kListDirectory;
+      case DT_BLK:
+      case DT_CHR:
+      case DT_FIFO:
+      case DT_SOCK:
       case DT_REG:
         return kListFile;
       case DT_LNK:
@@ -184,15 +188,23 @@
             return Next(listing);
           }
           return kListDirectory;
-        } else if (S_ISREG(entry_info.st_mode)) {
+        } else if (S_ISREG(entry_info.st_mode) || S_ISCHR(entry_info.st_mode) ||
+                   S_ISBLK(entry_info.st_mode) ||
+                   S_ISFIFO(entry_info.st_mode) ||
+                   S_ISSOCK(entry_info.st_mode)) {
           return kListFile;
         } else if (S_ISLNK(entry_info.st_mode)) {
           return kListLink;
+        } else {
+          FATAL1("Unexpected st_mode: %d\n", entry_info.st_mode);
+          return kListError;
         }
       }
 
       default:
-        break;
+        // We should have covered all the bases. If not, let's get an error.
+        FATAL1("Unexpected d_type: %d\n", entry.d_type);
+        return kListError;
     }
   }
   done_ = true;
diff --git a/runtime/bin/directory_linux.cc b/runtime/bin/directory_linux.cc
index 43ee548..6917f21 100644
--- a/runtime/bin/directory_linux.cc
+++ b/runtime/bin/directory_linux.cc
@@ -127,6 +127,10 @@
           return Next(listing);
         }
         return kListDirectory;
+      case DT_BLK:
+      case DT_CHR:
+      case DT_FIFO:
+      case DT_SOCK:
       case DT_REG:
         return kListFile;
       case DT_LNK:
@@ -182,15 +186,23 @@
             return Next(listing);
           }
           return kListDirectory;
-        } else if (S_ISREG(entry_info.st_mode)) {
+        } else if (S_ISREG(entry_info.st_mode) || S_ISCHR(entry_info.st_mode) ||
+                   S_ISBLK(entry_info.st_mode) ||
+                   S_ISFIFO(entry_info.st_mode) ||
+                   S_ISSOCK(entry_info.st_mode)) {
           return kListFile;
         } else if (S_ISLNK(entry_info.st_mode)) {
           return kListLink;
+        } else {
+          FATAL1("Unexpected st_mode: %d\n", entry_info.st_mode);
+          return kListError;
         }
       }
 
       default:
-        break;
+        // We should have covered all the bases. If not, let's get an error.
+        FATAL1("Unexpected d_type: %d\n", entry->d_type);
+        return kListError;
     }
   }
   done_ = true;
diff --git a/runtime/bin/directory_macos.cc b/runtime/bin/directory_macos.cc
index 18c254c..c06ffa3 100644
--- a/runtime/bin/directory_macos.cc
+++ b/runtime/bin/directory_macos.cc
@@ -129,6 +129,10 @@
           return Next(listing);
         }
         return kListDirectory;
+      case DT_BLK:
+      case DT_CHR:
+      case DT_FIFO:
+      case DT_SOCK:
       case DT_REG:
         return kListFile;
       case DT_LNK:
@@ -184,15 +188,23 @@
             return Next(listing);
           }
           return kListDirectory;
-        } else if (S_ISREG(entry_info.st_mode)) {
+        } else if (S_ISREG(entry_info.st_mode) || S_ISCHR(entry_info.st_mode) ||
+                   S_ISBLK(entry_info.st_mode) ||
+                   S_ISFIFO(entry_info.st_mode) ||
+                   S_ISSOCK(entry_info.st_mode)) {
           return kListFile;
         } else if (S_ISLNK(entry_info.st_mode)) {
           return kListLink;
+        } else {
+          FATAL1("Unexpected st_mode: %d\n", entry_info.st_mode);
+          return kListError;
         }
       }
 
       default:
-        break;
+        // We should have covered all the bases. If not, let's get an error.
+        FATAL1("Unexpected d_type: %d\n", entry.d_type);
+        return kListError;
     }
   }
   done_ = true;
diff --git a/runtime/bin/loader.cc b/runtime/bin/loader.cc
index d0a95e2..70ee444 100644
--- a/runtime/bin/loader.cc
+++ b/runtime/bin/loader.cc
@@ -206,6 +206,24 @@
 }
 
 
+// Forward a request from the tag handler to the kernel isolate.
+// [ tag, send port, url ]
+void Loader::SendKernelRequest(Dart_LibraryTag tag, Dart_Handle url) {
+  // This port delivers loading messages to the Kernel isolate.
+  Dart_Port kernel_port = Dart_KernelPort();
+  ASSERT(kernel_port != ILLEGAL_PORT);
+
+  Dart_Handle request = Dart_NewList(3);
+  Dart_ListSetAt(request, 0, Dart_NewInteger(tag));
+  Dart_ListSetAt(request, 1, Dart_NewSendPort(port_));
+  Dart_ListSetAt(request, 2, url);
+  if (Dart_Post(kernel_port, request)) {
+    MonitorLocker ml(monitor_);
+    pending_operations_++;
+  }
+}
+
+
 void Loader::QueueMessage(Dart_CObject* message) {
   MonitorLocker ml(monitor_);
   if (results_length_ == results_capacity_) {
@@ -625,12 +643,15 @@
   if (DartUtils::IsDartExtensionSchemeURL(url_string)) {
     loader->SendImportExtensionRequest(url, Dart_LibraryUrl(library));
   } else {
-    loader->SendRequest(tag, url, (library != Dart_Null())
-                                      ? Dart_LibraryUrl(library)
-                                      : Dart_Null());
+    if (Dart_KernelIsolateIsRunning()) {
+      loader->SendKernelRequest(tag, url);
+    } else {
+      loader->SendRequest(tag, url, (library != Dart_Null())
+                                        ? Dart_LibraryUrl(library)
+                                        : Dart_Null());
+    }
   }
 
-
   if (blocking_call) {
     // The outer invocation of the tag handler will block here until all nested
     // invocations complete.
diff --git a/runtime/bin/loader.h b/runtime/bin/loader.h
index 2076be8..cc4912d 100644
--- a/runtime/bin/loader.h
+++ b/runtime/bin/loader.h
@@ -93,6 +93,9 @@
                    Dart_Handle url,
                    Dart_Handle library_url);
 
+  // Send a request from the tag handler to the kernel isolate.
+  void SendKernelRequest(Dart_LibraryTag tag, Dart_Handle url);
+
   /// Queue |message| and notify the loader that a message is available.
   void QueueMessage(Dart_CObject* message);
 
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 0adf4ac..5a89f4d 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -61,6 +61,10 @@
 };
 static SnapshotKind gen_snapshot_kind = kNone;
 
+static bool use_dart_frontend = false;
+
+static const char* frontend_filename = NULL;
+
 // Value of the --package-root flag.
 // (This pointer points into an argv buffer and does not need to be
 // free'd.)
@@ -324,6 +328,19 @@
 }
 
 
+static bool ProcessFrontendOption(const char* filename,
+                                  CommandLineOptions* vm_options) {
+  ASSERT(filename != NULL);
+  if (filename[0] == '\0') {
+    return false;
+  }
+  use_dart_frontend = true;
+  frontend_filename = filename;
+  vm_options->AddArgument("--use-dart-frontend");
+  return true;
+}
+
+
 static bool ProcessUseBlobsOption(const char* arg,
                                   CommandLineOptions* vm_options) {
   ASSERT(arg != NULL);
@@ -540,6 +557,7 @@
     // VM specific options to the standalone dart program.
     {"--compile_all", ProcessCompileAllOption},
     {"--parse_all", ProcessParseAllOption},
+    {"--dfe=", ProcessFrontendOption},
     {"--enable-vm-service", ProcessEnableVmServiceOption},
     {"--disable-service-origin-check", ProcessDisableServiceOriginCheckOption},
     {"--observe", ProcessObserveOption},
@@ -791,6 +809,16 @@
       (strcmp(script_uri, DART_VM_SERVICE_ISOLATE_NAME) == 0)) {
     return NULL;
   }
+  if (strcmp(script_uri, DART_KERNEL_ISOLATE_NAME) == 0) {
+    if (!use_dart_frontend) {
+      *error = strdup("Kernel isolate not supported.");
+      return NULL;
+    } else {
+      if (packages_config == NULL) {
+        packages_config = commandline_packages_file;
+      }
+    }
+  }
 
   // If the script is a Kernel binary, then we will try to bootstrap from the
   // script.
@@ -870,6 +898,10 @@
     CHECK_RESULT(result);
   }
 
+  if (Dart_IsKernelIsolate(isolate)) {
+    script_uri = frontend_filename;
+  }
+
   // Setup package root if specified.
   result = DartUtils::SetupPackageRoot(package_root, packages_config);
   CHECK_RESULT(result);
@@ -877,6 +909,17 @@
   result = Dart_SetEnvironmentCallback(EnvironmentCallback);
   CHECK_RESULT(result);
 
+  if (!Dart_IsKernelIsolate(isolate) && use_dart_frontend) {
+    Log::PrintErr("Waiting for Kernel isolate to load.\n");
+    // This must be the main script to be loaded. Wait for Kernel isolate
+    // to finish initialization.
+    Dart_Port port = Dart_ServiceWaitForKernelPort();
+    if (port == ILLEGAL_PORT) {
+      *error = strdup("Error while initializing Kernel isolate");
+      return NULL;
+    }
+  }
+
   if (run_app_snapshot) {
     result = DartUtils::SetupIOLibrary(script_uri);
     CHECK_RESULT(result);
@@ -1800,7 +1843,6 @@
   bool print_flags_seen = false;
   bool verbose_debug_seen = false;
 
-  vm_options.AddArgument("--no_write_protect_code");
   // Perform platform specific initialization.
   if (!Platform::Initialize()) {
     Log::PrintErr("Initialization failed\n");
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 93d6da5..fb73fc5 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -3131,6 +3131,27 @@
 
 
 /*
+ * ======
+ * Kernel
+ * ======
+ */
+
+
+/**
+ * Experimental support for Dart to Kernel parser isolate.
+ *
+ * TODO(hausner): Document finalized interface.
+ *
+ */
+
+DART_EXPORT bool Dart_IsKernelIsolate(Dart_Isolate isolate);
+DART_EXPORT bool Dart_KernelIsolateIsRunning();
+DART_EXPORT Dart_Port Dart_ServiceWaitForKernelPort();
+DART_EXPORT Dart_Port Dart_KernelPort();
+
+#define DART_KERNEL_ISOLATE_NAME "kernel-service"
+
+/*
  * =======
  * Service
  * =======
diff --git a/runtime/lib/integers.dart b/runtime/lib/integers.dart
index f465e3b..e87dba7 100644
--- a/runtime/lib/integers.dart
+++ b/runtime/lib/integers.dart
@@ -394,8 +394,8 @@
     if (x == 0) return y;
     if (y == 0) return x;
     if ((x == 1) || (y == 1)) return 1;
-    if (other is _Bigint) {
-      return _toBigint().gcd(other);
+    if (y is _Bigint) {
+      return x._toBigint().gcd(y);
     }
     return _binaryGcd(x, y, false);
   }
diff --git a/runtime/observatory/BUILD.gn b/runtime/observatory/BUILD.gn
index d4c736c..ca85f29 100644
--- a/runtime/observatory/BUILD.gn
+++ b/runtime/observatory/BUILD.gn
@@ -22,6 +22,12 @@
   dart_host_pub_exe = rebase_path("$dart_host_sdk/bin/pub")
 }
 
+# We set this to "" in the Fuchsia build to force building with dart_bootstrap.
+if (defined(is_fuchsia) && defined(is_fuchsia_host) &&
+    (is_fuchsia || is_fuchsia_host)) {
+  dart_host_pub_exe = ""
+}
+
 # Construct arguments to the observatory tool for finding pub.
 pub_build_deps = []
 pub_build_args = []
diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status
index 72e4980..02a1ead 100644
--- a/runtime/observatory/tests/service/service.status
+++ b/runtime/observatory/tests/service/service.status
@@ -21,8 +21,10 @@
 debugger_location_second_test: Pass, Slow
 debugger_location_test: Pass, Slow
 
-# Disable on simulators.
+# These tests are slow on simulators.
 [ $arch == simarm || $arch == simmips || $arch == simarm64 ]
+*: Pass, Slow
+[ $mode == debug && ($arch == simarm || $arch == simmips || $arch == simarm64) ]
 *: SkipSlow
 
 # All tests use dart:io
diff --git a/runtime/tools/kernel-service.dart b/runtime/tools/kernel-service.dart
new file mode 100644
index 0000000..6ee3580
--- /dev/null
+++ b/runtime/tools/kernel-service.dart
@@ -0,0 +1,146 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// This is an interface to the Dart Kernel parser and Kernel binary generator.
+// It is used by the kernel-isolate to load Dart source code and generate
+// Kernel binary format.
+
+import 'dart:isolate';
+import 'dart:async';
+import "dart:io";
+import "dart:typed_data";
+
+import 'package:kernel/binary/ast_to_binary.dart';
+import 'package:kernel/analyzer/loader.dart';
+import 'package:kernel/kernel.dart';
+import 'package:kernel/target/targets.dart';
+
+bool verbose = false;
+
+final RawReceivePort scriptLoadPort = new RawReceivePort();
+
+
+bool checkIsFile(String path) {
+  var stat = new File(path).statSync();
+  switch (stat.type) {
+    case FileSystemEntityType.DIRECTORY:
+      return false;
+    case FileSystemEntityType.NOT_FOUND:
+      return false;
+  }
+  return true;
+}
+
+
+void checkSdkDirectory(String path) {
+  var stat = new File(path).statSync();
+  switch (stat.type) {
+    case FileSystemEntityType.DIRECTORY:
+    case FileSystemEntityType.LINK:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+class DataSink implements StreamSink<List<int>> {
+  var buffer = [];
+  add(List<int> data) {
+    buffer.addAll(data);
+  }
+  close() {
+    // Nothing to do.
+  }
+}
+
+
+List writeProgramToBuffer(Program program) {
+  var sink = new DataSink();
+  try {
+    new BinaryPrinter(sink).writeProgramFile(program);
+  } finally {
+    sink.close();
+  }
+  return new Uint8List.fromList(sink.buffer);
+}
+
+
+Future parseScript(Uri fileName, String packageConfig, String sdkPath) async {
+
+  if (!checkIsFile(fileName.path)) {
+    throw "Input file '${fileName.path}' does not exist.";
+  }
+
+  if (!checkSdkDirectory(sdkPath)) {
+    throw "Patched sdk directory not found at $sdkPath";
+  }
+
+  Target target = getTarget("vm", new TargetFlags(strongMode: false));
+  DartOptions dartOptions = new DartOptions(
+        strongMode: false,
+        strongModeSdk: false,
+        sdk: sdkPath,
+        packagePath: packageConfig,
+        customUriMappings: {},
+        declaredVariables: {});
+  DartLoader loader =
+      await new DartLoaderBatch().getLoader(new Repository(), dartOptions);
+  var program = loader.loadProgram(fileName, target: target);
+
+  var errors = loader.errors;
+  if (errors.isNotEmpty) {
+    throw loader.errors.first;
+  }
+
+  // Link program into one file, cf. --link option in dartk
+  target.transformProgram(program);
+
+  return writeProgramToBuffer(program);
+}
+
+
+_processLoadRequest(request) {
+  if (verbose) {
+    print("FROM DART KERNEL: load request: $request");
+    print("FROM DART KERNEL: package: ${Platform.packageConfig}");
+    print("FROM DART KERNEL: exec: ${Platform.resolvedExecutable}");
+  }
+  int tag = request[0];
+  SendPort sp = request[1];
+  String inputFileUrl = request[2];
+  Uri scriptUri = Uri.parse(inputFileUrl);
+  Uri packagesUri = Uri.parse(Platform.packageConfig ?? ".packages");
+  Uri patched_sdk = Uri.parse(Platform.resolvedExecutable).resolve("patched_sdk");
+
+  var parsingDone = parseScript(scriptUri, packagesUri.path, patched_sdk.path);
+
+  parsingDone
+    .then((data) {
+        var msg = new List(5);
+        msg[0] = tag;
+        msg[1] = inputFileUrl;
+        msg[2] = inputFileUrl;
+        msg[3] = null;
+        msg[4] = data;
+        sp.send(msg);
+        return;
+    })
+    .catchError((e) {
+        var msg = new List(5);
+        msg[0] = -tag;
+        msg[1] = inputFileUrl;
+        msg[2] = inputFileUrl;
+        msg[3] = null;
+        msg[4] = e.toString();
+        sp.send(msg);
+    });
+}
+
+
+main() {
+  scriptLoadPort.handler = _processLoadRequest;
+  Timer.run(() {});
+  return scriptLoadPort;
+}
\ No newline at end of file
diff --git a/runtime/vm/assembler.cc b/runtime/vm/assembler.cc
index 4edcedd..77d61b0 100644
--- a/runtime/vm/assembler.cc
+++ b/runtime/vm/assembler.cc
@@ -319,10 +319,10 @@
     return Object::empty_object_pool().raw();
   }
   const ObjectPool& result = ObjectPool::Handle(ObjectPool::New(len));
-  const TypedData& info_array = TypedData::Handle(result.info_array());
+  ObjectPoolInfo pool_info(result);
   for (intptr_t i = 0; i < len; ++i) {
     ObjectPool::EntryType info = object_pool_[i].type_;
-    info_array.SetInt8(i, static_cast<int8_t>(info));
+    pool_info.SetInfoAt(i, info);
     if (info == ObjectPool::kTaggedObject) {
       result.SetObjectAt(i, *object_pool_[i].obj_);
     } else {
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index 07547de..6736835 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -16,6 +16,7 @@
 #include "vm/handles.h"
 #include "vm/heap.h"
 #include "vm/isolate.h"
+#include "vm/kernel_isolate.h"
 #include "vm/message_handler.h"
 #include "vm/metrics.h"
 #include "vm/object.h"
@@ -312,6 +313,10 @@
 
   ServiceIsolate::Run();
 
+#ifndef DART_PRECOMPILED_RUNTIME
+  KernelIsolate::Run();
+#endif  // DART_PRECOMPILED_RUNTIME
+
   return NULL;
 }
 
@@ -599,6 +604,9 @@
     I->class_table()->Print();
   }
 
+#ifndef DART_PRECOMPILED_RUNTIME
+  KernelIsolate::InitCallback(I);
+#endif
   ServiceIsolate::MaybeMakeServiceIsolate(I);
   if (!ServiceIsolate::IsServiceIsolate(I)) {
     I->message_handler()->set_should_pause_on_start(
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 2e739e1..c5abb5a 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -25,6 +25,7 @@
 #include "vm/growable_array.h"
 #include "vm/lockers.h"
 #include "vm/isolate_reload.h"
+#include "vm/kernel_isolate.h"
 #include "vm/message.h"
 #include "vm/message_handler.h"
 #include "vm/native_entry.h"
@@ -5977,6 +5978,44 @@
 }
 
 
+// --- Dart Front-End (Kernel) support ---
+
+DART_EXPORT bool Dart_IsKernelIsolate(Dart_Isolate isolate) {
+#ifdef DART_PRECOMPILED_RUNTIME
+  return false;
+#else
+  Isolate* iso = reinterpret_cast<Isolate*>(isolate);
+  return KernelIsolate::IsKernelIsolate(iso);
+#endif
+}
+
+
+DART_EXPORT bool Dart_KernelIsolateIsRunning() {
+#ifdef DART_PRECOMPILED_RUNTIME
+  return false;
+#else
+  return KernelIsolate::IsRunning();
+#endif
+}
+
+
+DART_EXPORT Dart_Port Dart_ServiceWaitForKernelPort() {
+#ifdef DART_PRECOMPILED_RUNTIME
+  return ILLEGAL_PORT;
+#else
+  return KernelIsolate::WaitForKernelPort();
+#endif
+}
+
+DART_EXPORT Dart_Port Dart_KernelPort() {
+#ifdef DART_PRECOMPILED_RUNTIME
+  return false;
+#else
+  return KernelIsolate::KernelPort();
+#endif
+}
+
+
 // --- Service support ---
 
 DART_EXPORT bool Dart_IsServiceIsolate(Dart_Isolate isolate) {
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc
index 001535c..dafb659 100644
--- a/runtime/vm/flow_graph_inliner.cc
+++ b/runtime/vm/flow_graph_inliner.cc
@@ -159,7 +159,8 @@
            it.Advance()) {
         ++instruction_count_;
         Instruction* current = it.Current();
-        if (current->IsStaticCall() || current->IsClosureCall()) {
+        if (current->IsInstanceCall() || current->IsStaticCall() ||
+            current->IsClosureCall()) {
           ++call_site_count_;
           continue;
         }
@@ -1923,8 +1924,13 @@
     return true;
   }
 
-  if (function.IsImplicitGetterFunction() || function.IsGetterFunction() ||
-      function.IsImplicitSetterFunction() || function.IsSetterFunction() ||
+  if (function.IsImplicitGetterFunction() ||
+      function.IsImplicitSetterFunction()) {
+    // Inlined accessors are smaller than a call.
+    return true;
+  }
+
+  if (function.IsGetterFunction() || function.IsSetterFunction() ||
       IsInlineableOperator(function) ||
       (function.kind() == RawFunction::kConstructor)) {
     const intptr_t count = function.optimized_instruction_count();
diff --git a/runtime/vm/kernel_isolate.cc b/runtime/vm/kernel_isolate.cc
new file mode 100644
index 0000000..8d682ab
--- /dev/null
+++ b/runtime/vm/kernel_isolate.cc
@@ -0,0 +1,266 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "vm/kernel_isolate.h"
+
+#include "vm/compiler.h"
+#include "vm/dart_api_impl.h"
+#include "vm/dart_entry.h"
+#include "vm/isolate.h"
+#include "vm/lockers.h"
+#include "vm/message.h"
+#include "vm/message_handler.h"
+#include "vm/native_entry.h"
+#include "vm/native_arguments.h"
+#include "vm/object.h"
+#include "vm/object_store.h"
+#include "vm/port.h"
+#include "vm/service.h"
+#include "vm/symbols.h"
+#include "vm/thread_pool.h"
+#include "vm/timeline.h"
+
+namespace dart {
+
+#if !defined(DART_PRECOMPILED_RUNTIME)
+
+#define Z (T->zone())
+
+DEFINE_FLAG(bool, trace_kernel, false, "Trace Kernel service requests.");
+DEFINE_FLAG(bool,
+            use_dart_frontend,
+            false,
+            "Parse scripts with Dart-to-Kernel parser");
+
+const char* KernelIsolate::kName = "kernel-service";
+Dart_IsolateCreateCallback KernelIsolate::create_callback_ = NULL;
+Monitor* KernelIsolate::monitor_ = new Monitor();
+Isolate* KernelIsolate::isolate_ = NULL;
+bool KernelIsolate::initializing_ = true;
+Dart_Port KernelIsolate::kernel_port_ = ILLEGAL_PORT;
+
+
+class RunKernelTask : public ThreadPool::Task {
+ public:
+  virtual void Run() {
+    ASSERT(Isolate::Current() == NULL);
+
+    if (!FLAG_use_dart_frontend) {
+      ASSERT(FLAG_use_dart_frontend);
+      // In release builds, make this a no-op. In debug builds, the
+      // assert shows that this is not supposed to happen.
+      return;
+    }
+
+#ifndef PRODUCT
+    TimelineDurationScope tds(Timeline::GetVMStream(), "KernelIsolateStartup");
+#endif  // !PRODUCT
+    char* error = NULL;
+    Isolate* isolate = NULL;
+
+    Dart_IsolateCreateCallback create_callback =
+        KernelIsolate::create_callback();
+
+    if (create_callback == NULL) {
+      KernelIsolate::FinishedInitializing();
+      return;
+    }
+
+    Dart_IsolateFlags api_flags;
+    Isolate::FlagsInitialize(&api_flags);
+
+    isolate = reinterpret_cast<Isolate*>(create_callback(
+        KernelIsolate::kName, NULL, NULL, NULL, &api_flags, NULL, &error));
+    if (isolate == NULL) {
+      if (FLAG_trace_kernel) {
+        OS::PrintErr("kernel-service: Isolate creation error: %s\n", error);
+      }
+      KernelIsolate::SetKernelIsolate(NULL);
+      KernelIsolate::FinishedInitializing();
+      return;
+    }
+
+    bool init_success = false;
+    {
+      ASSERT(Isolate::Current() == NULL);
+      StartIsolateScope start_scope(isolate);
+      init_success = RunMain(isolate);
+    }
+    KernelIsolate::FinishedInitializing();
+
+    if (!init_success) {
+      ShutdownIsolate(reinterpret_cast<uword>(isolate));
+      return;
+    }
+
+    // isolate_ was set as side effect of create callback.
+    ASSERT(KernelIsolate::IsKernelIsolate(isolate));
+
+    isolate->message_handler()->Run(Dart::thread_pool(), NULL, ShutdownIsolate,
+                                    reinterpret_cast<uword>(isolate));
+  }
+
+ protected:
+  static void ShutdownIsolate(uword parameter) {
+    if (FLAG_trace_kernel) {
+      OS::Print("kernel-service: ShutdownIsolate\n");
+    }
+    Isolate* I = reinterpret_cast<Isolate*>(parameter);
+    ASSERT(KernelIsolate::IsKernelIsolate(I));
+    KernelIsolate::SetKernelIsolate(NULL);
+    KernelIsolate::SetLoadPort(ILLEGAL_PORT);
+    I->WaitForOutstandingSpawns();
+    {
+      // Print the error if there is one.  This may execute dart code to
+      // print the exception object, so we need to use a StartIsolateScope.
+      ASSERT(Isolate::Current() == NULL);
+      StartIsolateScope start_scope(I);
+      Thread* T = Thread::Current();
+      ASSERT(I == T->isolate());
+      StackZone zone(T);
+      HandleScope handle_scope(T);
+      Error& error = Error::Handle(Z);
+      error = T->sticky_error();
+      if (!error.IsNull() && !error.IsUnwindError()) {
+        OS::PrintErr("kernel-service: Error: %s\n", error.ToErrorCString());
+      }
+      error = I->sticky_error();
+      if (!error.IsNull() && !error.IsUnwindError()) {
+        OS::PrintErr("kernel-service: Error: %s\n", error.ToErrorCString());
+      }
+      Dart::RunShutdownCallback();
+    }
+    // Shut the isolate down.
+    Dart::ShutdownIsolate(I);
+    if (FLAG_trace_kernel) {
+      OS::Print("kernel-service: Shutdown.\n");
+    }
+  }
+
+  bool RunMain(Isolate* I) {
+    Thread* T = Thread::Current();
+    ASSERT(I == T->isolate());
+    StackZone zone(T);
+    HANDLESCOPE(T);
+    // Invoke main which will return the port to which load requests are sent.
+    const Library& root_library =
+        Library::Handle(Z, I->object_store()->root_library());
+    if (root_library.IsNull()) {
+      if (FLAG_trace_kernel) {
+        OS::Print("kernel-service: Embedder did not install a script.");
+      }
+      // Kernel isolate is not supported by embedder.
+      return false;
+    }
+    ASSERT(!root_library.IsNull());
+    const String& entry_name = String::Handle(Z, String::New("main"));
+    ASSERT(!entry_name.IsNull());
+    const Function& entry = Function::Handle(
+        Z, root_library.LookupFunctionAllowPrivate(entry_name));
+    if (entry.IsNull()) {
+      // Kernel isolate is not supported by embedder.
+      if (FLAG_trace_kernel) {
+        OS::Print("kernel-service: Embedder did not provide a main function.");
+      }
+      return false;
+    }
+    ASSERT(!entry.IsNull());
+    const Object& result = Object::Handle(
+        Z, DartEntry::InvokeFunction(entry, Object::empty_array()));
+    ASSERT(!result.IsNull());
+    if (result.IsError()) {
+      // Kernel isolate did not initialize properly.
+      if (FLAG_trace_kernel) {
+        const Error& error = Error::Cast(result);
+        OS::Print("kernel-service: Calling main resulted in an error: %s",
+                  error.ToErrorCString());
+      }
+      return false;
+    }
+    ASSERT(result.IsReceivePort());
+    const ReceivePort& rp = ReceivePort::Cast(result);
+    KernelIsolate::SetLoadPort(rp.Id());
+    return true;
+  }
+};
+
+
+void KernelIsolate::Run() {
+  if (!FLAG_use_dart_frontend) {
+    return;
+  }
+  // Grab the isolate create callback here to avoid race conditions with tests
+  // that change this after Dart_Initialize returns.
+  create_callback_ = Isolate::CreateCallback();
+  Dart::thread_pool()->Run(new RunKernelTask());
+}
+
+
+void KernelIsolate::InitCallback(Isolate* I) {
+  Thread* T = Thread::Current();
+  ASSERT(I == T->isolate());
+  ASSERT(I != NULL);
+  ASSERT(I->name() != NULL);
+  if (!FLAG_use_dart_frontend ||
+      (strstr(I->name(), "kernel-service") == NULL)) {
+    // Not kernel isolate.
+    return;
+  }
+  ASSERT(!Exists());
+  if (FLAG_trace_kernel) {
+    OS::Print("kernel-service: InitCallback for %s.\n", I->name());
+  }
+  SetKernelIsolate(I);
+}
+
+
+bool KernelIsolate::IsKernelIsolate(const Isolate* isolate) {
+  MonitorLocker ml(monitor_);
+  return isolate == isolate_;
+}
+
+
+bool KernelIsolate::IsRunning() {
+  MonitorLocker ml(monitor_);
+  return (kernel_port_ != ILLEGAL_PORT) && (isolate_ != NULL);
+}
+
+
+bool KernelIsolate::Exists() {
+  MonitorLocker ml(monitor_);
+  return isolate_ != NULL;
+}
+
+
+void KernelIsolate::SetKernelIsolate(Isolate* isolate) {
+  MonitorLocker ml(monitor_);
+  isolate_ = isolate;
+}
+
+void KernelIsolate::SetLoadPort(Dart_Port port) {
+  MonitorLocker ml(monitor_);
+  kernel_port_ = port;
+}
+
+void KernelIsolate::FinishedInitializing() {
+  MonitorLocker ml(monitor_);
+  initializing_ = false;
+  ml.NotifyAll();
+}
+
+
+Dart_Port KernelIsolate::WaitForKernelPort() {
+  if (!FLAG_use_dart_frontend) {
+    return ILLEGAL_PORT;
+  }
+  MonitorLocker ml(monitor_);
+  while (initializing_ && (kernel_port_ == ILLEGAL_PORT)) {
+    ml.Wait();
+  }
+  return kernel_port_;
+}
+
+#endif  // DART_PRECOMPILED_RUNTIME
+
+}  // namespace dart
diff --git a/runtime/vm/kernel_isolate.h b/runtime/vm/kernel_isolate.h
new file mode 100644
index 0000000..8f54c34
--- /dev/null
+++ b/runtime/vm/kernel_isolate.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#ifndef RUNTIME_VM_KERNEL_ISOLATE_H_
+#define RUNTIME_VM_KERNEL_ISOLATE_H_
+
+#if !defined(DART_PRECOMPILED_RUNTIME)
+
+#include "include/dart_api.h"
+
+#include "vm/allocation.h"
+#include "vm/dart.h"
+#include "vm/os_thread.h"
+
+namespace dart {
+
+class KernelIsolate : public AllStatic {
+ public:
+  static const char* kName;
+
+  static void Run();
+
+  static bool Exists();
+  static bool IsRunning();
+  static bool IsKernelIsolate(const Isolate* isolate);
+  static Dart_Port WaitForKernelPort();
+  static Dart_Port KernelPort() { return kernel_port_; }
+
+  static bool LoadScript(const String& url, const String& source);
+
+ protected:
+  static Monitor* monitor_;
+  static Dart_IsolateCreateCallback create_callback_;
+
+  static void InitCallback(Isolate* I);
+  static void SetKernelIsolate(Isolate* isolate);
+  static void SetLoadPort(Dart_Port port);
+  static void FinishedInitializing();
+
+  static Dart_Port kernel_port_;
+  static Isolate* isolate_;
+  static bool initializing_;
+
+  static Dart_IsolateCreateCallback create_callback() {
+    return create_callback_;
+  }
+
+  friend class Dart;
+  friend class RunKernelTask;
+};
+
+}  // namespace dart
+
+#endif  // DART_PRECOMPILED_RUNTIME
+
+#endif  // RUNTIME_VM_KERNEL_ISOLATE_H_
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index ba60399..f60ab34 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -11602,8 +11602,8 @@
 
 
 ObjectPool::EntryType ObjectPool::InfoAt(intptr_t index) const {
-  const TypedData& array = TypedData::Handle(info_array());
-  return static_cast<EntryType>(array.GetInt8(index));
+  ObjectPoolInfo pool_info(*this);
+  return pool_info.InfoAt(index);
 }
 
 
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 61a2866..77b87e6 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -8655,6 +8655,26 @@
 };
 
 
+class ObjectPoolInfo : public ValueObject {
+ public:
+  explicit ObjectPoolInfo(const ObjectPool& pool)
+      : array_(TypedData::Handle(pool.info_array())) {}
+
+  explicit ObjectPoolInfo(const TypedData& info_array) : array_(info_array) {}
+
+  ObjectPool::EntryType InfoAt(intptr_t i) {
+    return static_cast<ObjectPool::EntryType>(array_.GetInt8(i));
+  }
+
+  void SetInfoAt(intptr_t i, ObjectPool::EntryType info) {
+    array_.SetInt8(i, static_cast<int8_t>(info));
+  }
+
+ private:
+  const TypedData& array_;
+};
+
+
 // Breaking cycles and loops.
 RawClass* Object::clazz() const {
   uword raw_value = reinterpret_cast<uword>(raw_);
diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
index ce07486..9f8cbca 100644
--- a/runtime/vm/precompiler.cc
+++ b/runtime/vm/precompiler.cc
@@ -830,6 +830,7 @@
 #endif
 
   const ObjectPool& pool = ObjectPool::Handle(Z, code.GetObjectPool());
+  ObjectPoolInfo pool_info(pool);
   ICData& call_site = ICData::Handle(Z);
   MegamorphicCache& cache = MegamorphicCache::Handle(Z);
   String& selector = String::Handle(Z);
@@ -838,7 +839,7 @@
   Instance& instance = Instance::Handle(Z);
   Code& target_code = Code::Handle(Z);
   for (intptr_t i = 0; i < pool.Length(); i++) {
-    if (pool.InfoAt(i) == ObjectPool::kTaggedObject) {
+    if (pool_info.InfoAt(i) == ObjectPool::kTaggedObject) {
       entry = pool.ObjectAt(i);
       if (entry.IsICData()) {
         // A dynamic call.
@@ -1032,6 +1033,9 @@
   // argument descriptors.
   if (!instance.IsCanonical()) return;
 
+  // Constants are canonicalized and we avoid repeated processing of them.
+  if (consts_to_retain_.Lookup(&instance) != NULL) return;
+
   consts_to_retain_.Insert(&Instance::ZoneHandle(Z, instance.raw()));
 
   if (cls.NumTypeArguments() > 0) {
@@ -1077,6 +1081,8 @@
 
 
 void Precompiler::AddField(const Field& field) {
+  if (fields_to_retain_.Lookup(&field) != NULL) return;
+
   fields_to_retain_.Insert(&Field::ZoneHandle(Z, field.raw()));
 
   if (field.is_static()) {
@@ -2095,6 +2101,7 @@
           code_(Code::Handle(zone)),
           pool_(ObjectPool::Handle(zone)),
           entry_(Object::Handle(zone)),
+          info_array_(TypedData::Handle(zone)),
           ic_(ICData::Handle(zone)),
           target_name_(String::Handle(zone)),
           args_descriptor_(Array::Handle(zone)),
@@ -2109,8 +2116,10 @@
 
       code_ = function.CurrentCode();
       pool_ = code_.object_pool();
+      info_array_ = pool_.info_array();
+      ObjectPoolInfo pool_info(info_array_);
       for (intptr_t i = 0; i < pool_.Length(); i++) {
-        if (pool_.InfoAt(i) != ObjectPool::kTaggedObject) continue;
+        if (pool_info.InfoAt(i) != ObjectPool::kTaggedObject) continue;
         entry_ = pool_.ObjectAt(i);
         if (entry_.IsICData()) {
           // The only IC calls generated by precompilation are for switchable
@@ -2150,6 +2159,7 @@
     Code& code_;
     ObjectPool& pool_;
     Object& entry_;
+    TypedData& info_array_;
     ICData& ic_;
     String& target_name_;
     Array& args_descriptor_;
diff --git a/runtime/vm/service_isolate.cc b/runtime/vm/service_isolate.cc
index 75342b5..042e808 100644
--- a/runtime/vm/service_isolate.cc
+++ b/runtime/vm/service_isolate.cc
@@ -175,11 +175,9 @@
 
 Dart_Port ServiceIsolate::WaitForLoadPort() {
   MonitorLocker ml(monitor_);
-
   while (initializing_ && (load_port_ == ILLEGAL_PORT)) {
     ml.Wait();
   }
-
   return load_port_;
 }
 
diff --git a/runtime/vm/vm_sources.gypi b/runtime/vm/vm_sources.gypi
index 83b325f..990a486 100644
--- a/runtime/vm/vm_sources.gypi
+++ b/runtime/vm/vm_sources.gypi
@@ -272,6 +272,8 @@
     'json_stream.h',
     'json_stream.cc',
     'json_test.cc',
+    'kernel_isolate.cc',
+    'kernel_isolate.h',
     'locations.cc',
     'locations.h',
     'lockers.cc',
diff --git a/sdk/lib/core/num.dart b/sdk/lib/core/num.dart
index 83b4925..3d59c75 100644
--- a/sdk/lib/core/num.dart
+++ b/sdk/lib/core/num.dart
@@ -36,8 +36,8 @@
    * will fail to work. The behavior is the standard IEEE-754 equality of
    * doubles.
    *
-   * If you can avoid NaN values, the remaining doubles do have a proper eqality
-   * relation, and can be used safely.
+   * If you can avoid NaN values, the remaining doubles do have a proper
+   * equality relation, and can be used safely.
    *
    * Use [compareTo] for a comparison that distinguishes zero and minus zero,
    * and that considers NaN values as equal.
diff --git a/sdk/lib/isolate/isolate.dart b/sdk/lib/isolate/isolate.dart
index 424742a..f33b63c 100644
--- a/sdk/lib/isolate/isolate.dart
+++ b/sdk/lib/isolate/isolate.dart
@@ -137,11 +137,18 @@
                              this.terminateCapability});
 
   /**
-   * Return the current [Isolate].
+   * Return an [Isolate] object representing the current isolate.
    *
-   * The isolate gives access to the capabilities needed to inspect,
+   * The current isolate for code using [current]
+   * is the isolate running the code.
+   *
+   * The isolate object provides the capabilities required to inspect,
    * pause or kill the isolate, and allows granting these capabilities
    * to others.
+   *
+   * It is possible to pause the current isolate, but doing so *without*
+   * first passing the ability to resume it again to another isolate,
+   * is a sure way to hang your program.
    */
   external static Isolate get current;
 
diff --git a/tests/co19/co19-analyzer2.status b/tests/co19/co19-analyzer2.status
index 990fb9c..d5f3e37 100644
--- a/tests/co19/co19-analyzer2.status
+++ b/tests/co19/co19-analyzer2.status
@@ -182,6 +182,7 @@
 Language/Mixins/Mixin_Application/warning_t02: MissingStaticWarning # Please triage this failure.
 Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
 Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
+Language/Statements/Assert/syntax_t04: MissingCompileTimeError # Assert messages are enabled by default
 Language/Statements/Assert/type_t04: MissingStaticWarning
 Language/Statements/Switch/last_statement_t03: MissingStaticWarning
 Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index f2b0d5f..18f9d09 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -765,23 +765,17 @@
 LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
 LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
 LibTest/isolate/ReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/typed_data/Float32List/Float32List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/Float64List/Float64List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Float64List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/Int16List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Int16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/Int32List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Int32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int32List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
 LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
 LibTest/typed_data/Int8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/Uint16List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Uint16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/Uint32List.view_A06_t01: fail # co19-roll r587: Please triage this failure
 LibTest/typed_data/Uint32List/toList_A01_t01: Skip # issue 16934, co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
 LibTest/typed_data/Uint8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index 3ada69f..f931e86 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -34,24 +34,24 @@
 Language/Classes/Setters/name_t13: DartkCompileTimeError
 Language/Classes/Setters/name_t14: DartkCompileTimeError
 Language/Classes/Setters/name_t15: DartkCompileTimeError
-Language/Enums/syntax_t08: DartkMissingCompileTimeError
-Language/Enums/syntax_t09: DartkMissingCompileTimeError
-Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: DartkMissingCompileTimeError
-Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t17: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t18: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t21: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t22: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t23: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t24: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t25: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t26: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t27: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t28: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t29: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t30: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t31: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t32: DartkMissingCompileTimeError
+Language/Enums/syntax_t08: MissingCompileTimeError
+Language/Enums/syntax_t09: MissingCompileTimeError
+Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: MissingCompileTimeError
+Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t17: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t18: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t21: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t22: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t23: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t24: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t25: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t26: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t27: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t28: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t29: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t30: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t31: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t32: MissingCompileTimeError
 Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t01: DartkCompileTimeError
 Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t02: DartkCompileTimeError
 Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t03: DartkCompileTimeError
@@ -182,92 +182,13 @@
 Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/setter_closurization_t08: DartkCompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t01: DartkCompileTimeError
 Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t02: DartkCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t01: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t04: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t05: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t06: DartkMissingCompileTimeError
+Language/Libraries_and_Scripts/Exports/syntax_t01: MissingCompileTimeError
+Language/Libraries_and_Scripts/Exports/syntax_t04: MissingCompileTimeError
+Language/Libraries_and_Scripts/Exports/syntax_t05: MissingCompileTimeError
+Language/Libraries_and_Scripts/Exports/syntax_t06: MissingCompileTimeError
 Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: DartkCompileTimeError
 Language/Libraries_and_Scripts/Scripts/top_level_main_t01: DartkCrash
 Language/Libraries_and_Scripts/Scripts/top_level_main_t02: DartkCrash
-Language/Libraries_and_Scripts/definition_syntax_t01: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t03: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t04: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t06: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t07: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t08: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t09: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t10: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t15: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t17: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t18: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t19: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t20: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t21: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t22: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t23: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t24: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t25: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t26: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t27: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/definition_syntax_t29: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t02: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t03: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t04: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t05: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t06: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t07: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t08: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t09: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t10: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t11: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t12: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t13: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t14: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t15: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t16: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t17: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t18: DartkMissingCompileTimeError
-Language/Libraries_and_Scripts/top_level_syntax_t19: DartkMissingCompileTimeError
-Language/Statements/Break/label_t03: DartkMissingCompileTimeError
-Language/Statements/Break/label_t04: DartkMissingCompileTimeError
-Language/Statements/Continue/label_t07: DartkMissingCompileTimeError
-Language/Variables/final_or_static_initialization_t01: DartkMissingCompileTimeError
-Language/Variables/final_or_static_initialization_t02: DartkMissingCompileTimeError
-Language/Variables/final_or_static_initialization_t03: DartkMissingCompileTimeError
-Language/Variables/final_t04: DartkMissingCompileTimeError
-Language/Variables/final_t05: DartkMissingCompileTimeError
-Language/Variables/final_t06: DartkMissingCompileTimeError
-Language/Variables/final_t07: DartkMissingCompileTimeError
-
-# dartk: JIT failures
-[ $compiler == dartk && $runtime == vm ]
-Language/Expressions/Constants/exception_t01: DartkMissingCompileTimeError
-Language/Expressions/Constants/exception_t02: DartkMissingCompileTimeError
-Language/Expressions/Identifier_Reference/evaluation_type_parameter_t02: DartkMissingCompileTimeError
-Language/Mixins/Mixin_Application/error_t01: DartkMissingCompileTimeError
-Language/Mixins/Mixin_Application/error_t02: DartkMissingCompileTimeError
-Language/Mixins/Mixin_Application/syntax_t16: DartkCrash
-
-# dartk: precompilation failures
-[ $compiler == dartkp && $runtime == dart_precompiled ]
-Language/Enums/syntax_t08: MissingCompileTimeError
-Language/Enums/syntax_t09: MissingCompileTimeError
-Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: MissingCompileTimeError
-Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t17: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t18: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t21: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t22: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t23: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t24: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t25: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t26: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t27: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t28: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t29: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t30: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t31: MissingCompileTimeError
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t32: MissingCompileTimeError
 Language/Libraries_and_Scripts/definition_syntax_t01: MissingCompileTimeError
 Language/Libraries_and_Scripts/definition_syntax_t03: MissingCompileTimeError
 Language/Libraries_and_Scripts/definition_syntax_t04: MissingCompileTimeError
@@ -289,10 +210,6 @@
 Language/Libraries_and_Scripts/definition_syntax_t26: MissingCompileTimeError
 Language/Libraries_and_Scripts/definition_syntax_t27: MissingCompileTimeError
 Language/Libraries_and_Scripts/definition_syntax_t29: MissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t01: MissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t04: MissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t05: MissingCompileTimeError
-Language/Libraries_and_Scripts/Exports/syntax_t06: MissingCompileTimeError
 Language/Libraries_and_Scripts/top_level_syntax_t02: MissingCompileTimeError
 Language/Libraries_and_Scripts/top_level_syntax_t03: MissingCompileTimeError
 Language/Libraries_and_Scripts/top_level_syntax_t04: MissingCompileTimeError
@@ -311,6 +228,7 @@
 Language/Libraries_and_Scripts/top_level_syntax_t17: MissingCompileTimeError
 Language/Libraries_and_Scripts/top_level_syntax_t18: MissingCompileTimeError
 Language/Libraries_and_Scripts/top_level_syntax_t19: MissingCompileTimeError
+Language/Statements/Assert/syntax_t04: MissingCompileTimeError
 Language/Statements/Break/label_t03: MissingCompileTimeError
 Language/Statements/Break/label_t04: MissingCompileTimeError
 Language/Statements/Continue/label_t07: MissingCompileTimeError
@@ -322,6 +240,18 @@
 Language/Variables/final_t06: MissingCompileTimeError
 Language/Variables/final_t07: MissingCompileTimeError
 
+# dartk: JIT failures
+[ $compiler == dartk && $runtime == vm ]
+Language/Expressions/Constants/exception_t01: MissingCompileTimeError
+Language/Expressions/Constants/exception_t02: MissingCompileTimeError
+Language/Expressions/Identifier_Reference/evaluation_type_parameter_t02: MissingCompileTimeError
+Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError
+Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError
+Language/Mixins/Mixin_Application/syntax_t16: DartkCrash
+
+# dartk: precompilation failures
+[ $compiler == dartkp && $runtime == dart_precompiled ]
+
 ###############################################################################
 # VM Entries
 ###############################################################################
diff --git a/tests/compiler/dart2js/compiler_helper.dart b/tests/compiler/dart2js/compiler_helper.dart
index ff3dffa..ccf41fa 100644
--- a/tests/compiler/dart2js/compiler_helper.dart
+++ b/tests/compiler/dart2js/compiler_helper.dart
@@ -75,11 +75,10 @@
     compiler.enqueuer.resolution
         .applyImpact(compiler.backend.computeHelpersImpact());
     compiler.processQueue(compiler.enqueuer.resolution, element);
-    compiler.openWorld.closeWorld(compiler.reporter);
-    compiler.backend.onResolutionComplete();
     ResolutionWorkItem resolutionWork =
         new ResolutionWorkItem(compiler.resolution, element);
     resolutionWork.run();
+    compiler.closeResolution();
     CodegenWorkItem work = new CodegenWorkItem(compiler.backend, element);
     compiler.phase = Compiler.PHASE_COMPILING;
     work.run();
diff --git a/tests/compiler/dart2js/diagnose_ambiguous_test.dart b/tests/compiler/dart2js/diagnose_ambiguous_test.dart
index 8867a36..268db44 100644
--- a/tests/compiler/dart2js/diagnose_ambiguous_test.dart
+++ b/tests/compiler/dart2js/diagnose_ambiguous_test.dart
@@ -23,9 +23,9 @@
     diagnostics.sort();
     var expected = [
       "MessageKind.AMBIGUOUS_LOCATION:"
-          "memory:exporter.dart:43:47:'hest' is defined here.:info",
+          "memory:exporter.dart:43:49:'hest' is defined here.:info",
       "MessageKind.AMBIGUOUS_LOCATION:"
-          "memory:library.dart:41:45:'hest' is defined here.:info",
+          "memory:library.dart:41:47:'hest' is defined here.:info",
       "MessageKind.DUPLICATE_IMPORT:"
           "memory:main.dart:86:92:Duplicate import of 'hest'.:warning",
       "MessageKind.IMPORTED_HERE:"
diff --git a/tests/compiler/dart2js/embedded_category_api_boundary_test.dart b/tests/compiler/dart2js/embedded_category_api_boundary_test.dart
index c6e391d..1240132 100644
--- a/tests/compiler/dart2js/embedded_category_api_boundary_test.dart
+++ b/tests/compiler/dart2js/embedded_category_api_boundary_test.dart
@@ -37,7 +37,7 @@
 ]);
 
 bool checkResults(Compiler compiler, CollectingDiagnosticHandler handler) {
-  return compiler.enqueuer.resolution.processedElements
+  return compiler.enqueuer.resolution.processedEntities
       .every((Element element) {
     if (whiteList.contains("$element")) return true;
     LibraryInfo info = libraries[element.library.canonicalUri.path];
diff --git a/tests/compiler/dart2js/enumset_test.dart b/tests/compiler/dart2js/enumset_test.dart
index a5f8754..92ab39c 100644
--- a/tests/compiler/dart2js/enumset_test.dart
+++ b/tests/compiler/dart2js/enumset_test.dart
@@ -7,7 +7,14 @@
 import 'package:compiler/src/util/enumset.dart';
 import 'package:expect/expect.dart';
 
-enum Enum { A, B, C, D, E, F, }
+enum Enum {
+  A,
+  B,
+  C,
+  D,
+  E,
+  F,
+}
 
 main() {
   testAddRemoveContains();
diff --git a/tests/compiler/dart2js/exit_code_test.dart b/tests/compiler/dart2js/exit_code_test.dart
index 8478d42..dfca8b34 100644
--- a/tests/compiler/dart2js/exit_code_test.dart
+++ b/tests/compiler/dart2js/exit_code_test.dart
@@ -169,8 +169,7 @@
 
   TestResolver(TestCompiler compiler, ConstantCompiler constantCompiler)
       : this.compiler = compiler,
-        super(compiler.resolution, constantCompiler, compiler.openWorld,
-            compiler.measurer);
+        super(compiler.resolution, constantCompiler, compiler.measurer);
 
   void computeClassMembers(ClassElement element) {
     compiler.test('ResolverTask.computeClassMembers');
diff --git a/tests/compiler/dart2js/kernel/closed_world_test.dart b/tests/compiler/dart2js/kernel/closed_world_test.dart
index cf642fa..8b64123 100644
--- a/tests/compiler/dart2js/kernel/closed_world_test.dart
+++ b/tests/compiler/dart2js/kernel/closed_world_test.dart
@@ -80,7 +80,7 @@
     worldBuilder.useInstantiationMap = true;
     compiler.resolution.retainCachesForTesting = true;
     await compiler.run(entryPoint);
-    compiler.openWorld.closeWorld(compiler.reporter);
+    compiler.resolverWorld.openWorld.closeWorld(compiler.reporter);
 
     JavaScriptBackend backend = compiler.backend;
     // Create a new resolution enqueuer and feed it with the [WorldImpact]s
@@ -92,7 +92,6 @@
         const TreeShakingEnqueuerStrategy(),
         compiler.globalDependencies,
         backend,
-        compiler.commonElements,
         compiler.cacheStrategy,
         'enqueuer from kernel');
     // TODO(johnniwinther): Store backend info separately. This replacement is
@@ -113,7 +112,6 @@
       ResolutionImpact resolutionImpact = build(compiler, element.resolvedAst);
       WorldImpact worldImpact = compiler.backend.impactTransformer
           .transformResolutionImpact(enqueuer, resolutionImpact);
-      enqueuer.registerProcessedElement(element);
       enqueuer.applyImpact(worldImpact, impactSource: element);
     });
     ClosedWorld closedWorld =
diff --git a/tests/compiler/dart2js/kernel/literals_test.dart b/tests/compiler/dart2js/kernel/literals_test.dart
index 4bdf271..5cc337a 100644
--- a/tests/compiler/dart2js/kernel/literals_test.dart
+++ b/tests/compiler/dart2js/kernel/literals_test.dart
@@ -19,4 +19,7 @@
   test('compile function that returns a const map', () {
     return check('main() { return const {"a": 1, "b": 2, "c": 3}; }');
   });
+  test('compile top level string field ', () {
+    return check('String foo = (() { return "a";})(); main() { return foo; }');
+  });
 }
diff --git a/tests/compiler/dart2js/map_tracer_test.dart b/tests/compiler/dart2js/map_tracer_test.dart
index 571450c..0bd5289 100644
--- a/tests/compiler/dart2js/map_tracer_test.dart
+++ b/tests/compiler/dart2js/map_tracer_test.dart
@@ -211,7 +211,8 @@
   Uri uri = new Uri(scheme: 'source');
   var compiler = compilerFor(generateTest(allocation), uri,
       expectedErrors: 0, expectedWarnings: 1);
-  var closedWorld = compiler.openWorld.closeWorld(compiler.reporter);
+  compiler.closeResolution();
+  var closedWorld = compiler.closedWorld;
   asyncTest(() => compiler.run(uri).then((_) {
         var keyType, valueType;
         var commonMasks = compiler.closedWorld.commonMasks;
diff --git a/tests/compiler/dart2js/memory_compiler.dart b/tests/compiler/dart2js/memory_compiler.dart
index 240da71..89661da 100644
--- a/tests/compiler/dart2js/memory_compiler.dart
+++ b/tests/compiler/dart2js/memory_compiler.dart
@@ -183,10 +183,10 @@
         .copyConstantValues(cachedCompiler.backend.constantCompilerTask);
 
     Iterable cachedTreeElements =
-        cachedCompiler.enqueuer.resolution.processedElements;
+        cachedCompiler.enqueuer.resolution.processedEntities;
     cachedTreeElements.forEach((element) {
       if (element.library.isPlatformLibrary) {
-        compiler.enqueuer.resolution.registerProcessedElement(element);
+        compiler.enqueuer.resolution.registerProcessedElementInternal(element);
       }
     });
 
diff --git a/tests/compiler/dart2js/mirrors_used_test.dart b/tests/compiler/dart2js/mirrors_used_test.dart
index 1befda9..9282b16 100644
--- a/tests/compiler/dart2js/mirrors_used_test.dart
+++ b/tests/compiler/dart2js/mirrors_used_test.dart
@@ -127,7 +127,7 @@
     Set<ConstantValue> compiledConstants = backend.constants.compiledConstants;
     // Make sure that most of the metadata constants aren't included in the
     // generated code.
-    backend.processMetadata(compiler.enqueuer.resolution.processedElements,
+    backend.processMetadata(compiler.enqueuer.resolution.processedEntities,
         (metadata) {
       ConstantValue constant =
           backend.constants.getConstantValueForMetadata(metadata);
diff --git a/tests/compiler/dart2js/mock_libraries.dart b/tests/compiler/dart2js/mock_libraries.dart
index 501e0dc..c6506fd 100644
--- a/tests/compiler/dart2js/mock_libraries.dart
+++ b/tests/compiler/dart2js/mock_libraries.dart
@@ -101,7 +101,6 @@
   'Symbol': 'class Symbol { final name; const Symbol(this.name); }',
   'Type': 'class Type {}',
   'Pattern': 'abstract class Pattern {}',
-
   '_genericNoSuchMethod': '_genericNoSuchMethod(a,b,c,d,e) {}',
   '_unresolvedConstructorError': '_unresolvedConstructorError(a,b,c,d,e) {}',
   '_malformedTypeError': '_malformedTypeError(message) {}',
diff --git a/tests/compiler/dart2js/patch_test.dart b/tests/compiler/dart2js/patch_test.dart
index 0eb0445..4277cd4 100644
--- a/tests/compiler/dart2js/patch_test.dart
+++ b/tests/compiler/dart2js/patch_test.dart
@@ -973,7 +973,8 @@
       """,
       runCompiler: true,
       analyzeOnly: true);
-  ClosedWorld world = compiler.openWorld.closeWorld(compiler.reporter);
+  compiler.closeResolution();
+  ClosedWorld world = compiler.closedWorld;
 
   ClassElement cls = ensure(
       compiler, "A", compiler.commonElements.coreLibrary.find,
diff --git a/tests/compiler/dart2js/related_types.dart b/tests/compiler/dart2js/related_types.dart
index a2516f7..af65613 100644
--- a/tests/compiler/dart2js/related_types.dart
+++ b/tests/compiler/dart2js/related_types.dart
@@ -35,7 +35,8 @@
 
 /// Check all loaded libraries in [compiler] for unrelated types.
 void checkRelatedTypes(Compiler compiler) {
-  compiler.openWorld.closeWorld(compiler.reporter);
+  compiler.closeResolution();
+  compiler.closedWorld;
   for (LibraryElement library in compiler.libraryLoader.libraries) {
     checkLibraryElement(compiler, library);
   }
diff --git a/tests/compiler/dart2js/related_types_test.dart b/tests/compiler/dart2js/related_types_test.dart
index 6711fb2..e256ac8 100644
--- a/tests/compiler/dart2js/related_types_test.dart
+++ b/tests/compiler/dart2js/related_types_test.dart
@@ -267,7 +267,7 @@
     Expect.isFalse(
         collector.hasRegularMessages, "Unexpected analysis messages.");
     Compiler compiler = result.compiler;
-    compiler.openWorld.closeWorld(compiler.reporter);
+    compiler.closeResolution();
 
     void checkMember(MemberElement member) {
       if (!member.name.startsWith('test_')) return;
diff --git a/tests/compiler/dart2js/resolution_test.dart b/tests/compiler/dart2js/resolution_test.dart
index cfca9a8..8ad71c2 100644
--- a/tests/compiler/dart2js/resolution_test.dart
+++ b/tests/compiler/dart2js/resolution_test.dart
@@ -103,14 +103,16 @@
 void testHasRuntimeType(String code) {
   test(code, (compiler) {
     var element = compiler.backend.helpers.createRuntimeType;
-    Expect.isTrue(compiler.enqueuer.resolution.isProcessed(element));
+    Expect.isTrue(
+        compiler.enqueuer.resolution.processedEntities.contains(element));
   });
 }
 
 main() {
   test(NO_RUNTIME_TYPE, (compiler) {
     var element = compiler.backend.helpers.createRuntimeType;
-    Expect.isFalse(compiler.enqueuer.resolution.isProcessed(element));
+    Expect.isFalse(
+        compiler.enqueuer.resolution.processedEntities.contains(element));
   });
 
   testHasRuntimeType(HAS_RUNTIME_TYPE_1);
diff --git a/tests/compiler/dart2js/serialization/model_test_helper.dart b/tests/compiler/dart2js/serialization/model_test_helper.dart
index e3e6614..e970d22 100644
--- a/tests/compiler/dart2js/serialization/model_test_helper.dart
+++ b/tests/compiler/dart2js/serialization/model_test_helper.dart
@@ -110,7 +110,7 @@
     {bool typeEquivalence(DartType a, DartType b): areTypesEquivalent,
     bool elementFilter(Element element),
     bool verbose: false}) {
-  checkSets(enqueuer1.processedElements, enqueuer2.processedElements,
+  checkSets(enqueuer1.processedEntities, enqueuer2.processedEntities,
       "Processed element mismatch", areElementsEquivalent,
       elementFilter: elementFilter, verbose: verbose);
 
@@ -146,19 +146,15 @@
   JavaScriptBackend backend1 = enqueuer1.backend;
   JavaScriptBackend backend2 = enqueuer2.backend;
   Expect.equals(backend1.hasInvokeOnSupport, backend2.hasInvokeOnSupport,
-      "Compiler.enabledInvokeOn mismatch");
+      "JavaScriptBackend.hasInvokeOnSupport mismatch");
   Expect.equals(
-      enqueuer1.universe.hasFunctionApplySupport,
-      enqueuer2.universe.hasFunctionApplySupport,
-      "ResolutionEnqueuer.universe.hasFunctionApplySupport mismatch");
-  Expect.equals(
-      enqueuer1.universe.hasRuntimeTypeSupport,
-      enqueuer2.universe.hasRuntimeTypeSupport,
-      "ResolutionEnqueuer.universe.hasRuntimeTypeSupport mismatch");
-  Expect.equals(
-      enqueuer1.universe.hasIsolateSupport,
-      enqueuer2.universe.hasIsolateSupport,
-      "ResolutionEnqueuer.universe.hasIsolateSupport mismatch");
+      backend1.hasFunctionApplySupport,
+      backend2.hasFunctionApplySupport,
+      "JavaScriptBackend.hasFunctionApplySupport mismatch");
+  Expect.equals(backend1.hasRuntimeTypeSupport, backend2.hasRuntimeTypeSupport,
+      "JavaScriptBackend.hasRuntimeTypeSupport mismatch");
+  Expect.equals(backend1.hasIsolateSupport, backend2.hasIsolateSupport,
+      "JavaScriptBackend.hasIsolateSupport mismatch");
 }
 
 void checkClosedWorlds(ClosedWorld closedWorld1, ClosedWorld closedWorld2,
@@ -174,8 +170,8 @@
 void checkBackendInfo(Compiler compilerNormal, Compiler compilerDeserialized,
     {bool verbose: false}) {
   checkSets(
-      compilerNormal.enqueuer.resolution.processedElements,
-      compilerDeserialized.enqueuer.resolution.processedElements,
+      compilerNormal.enqueuer.resolution.processedEntities,
+      compilerDeserialized.enqueuer.resolution.processedEntities,
       "Processed element mismatch",
       areElementsEquivalent, onSameElement: (a, b) {
     checkElements(compilerNormal, compilerDeserialized, a, b, verbose: verbose);
diff --git a/tests/compiler/dart2js/simple_inferrer_callers_test.dart b/tests/compiler/dart2js/simple_inferrer_callers_test.dart
index 41b9457..a6ca00e 100644
--- a/tests/compiler/dart2js/simple_inferrer_callers_test.dart
+++ b/tests/compiler/dart2js/simple_inferrer_callers_test.dart
@@ -8,6 +8,7 @@
 import 'package:async_helper/async_helper.dart';
 import 'package:expect/expect.dart';
 import 'package:compiler/src/inferrer/type_graph_inferrer.dart';
+import 'package:compiler/src/world.dart' show ClosedWorldRefiner;
 
 import 'compiler_helper.dart';
 
@@ -29,7 +30,8 @@
 // Create our own type inferrer to avoid clearing out the internal
 // data structures.
 class MyInferrer extends TypeGraphInferrer {
-  MyInferrer(compiler, commonMasks) : super(compiler, commonMasks);
+  MyInferrer(compiler, closedWorld, closedWorldRefiner)
+      : super(compiler, closedWorld, closedWorldRefiner);
   clear() {}
 }
 
@@ -37,11 +39,12 @@
   Uri uri = new Uri(scheme: 'source');
   var compiler = compilerFor(TEST, uri, analyzeOnly: true);
   asyncTest(() => compiler.run(uri).then((_) {
-        compiler.closeResolution();
+        ClosedWorldRefiner closedWorldRefiner = compiler.closeResolution();
         var inferrer =
-            new MyInferrer(compiler, compiler.closedWorld.commonMasks);
+            new MyInferrer(compiler, compiler.closedWorld, closedWorldRefiner);
         compiler.globalInference.typesInferrerInternal = inferrer;
-        compiler.globalInference.runGlobalTypeInference(compiler.mainFunction);
+        compiler.globalInference.runGlobalTypeInference(
+            compiler.mainFunction, compiler.closedWorld, closedWorldRefiner);
         var mainElement = findElement(compiler, 'main');
         var classA = findElement(compiler, 'A');
         var fieldA = classA.lookupLocalMember('field');
diff --git a/tests/compiler/dart2js/sourcemaps/diff.dart b/tests/compiler/dart2js/sourcemaps/diff.dart
index 9627b3c..7505892 100644
--- a/tests/compiler/dart2js/sourcemaps/diff.dart
+++ b/tests/compiler/dart2js/sourcemaps/diff.dart
@@ -11,7 +11,11 @@
 import 'sourcemap_helper.dart';
 import 'sourcemap_html_helper.dart';
 
-enum DiffKind { UNMATCHED, MATCHING, IDENTICAL, }
+enum DiffKind {
+  UNMATCHED,
+  MATCHING,
+  IDENTICAL,
+}
 
 /// Id for an output column.
 class DiffColumn {
diff --git a/tests/compiler/dart2js/sourcemaps/html_parts.dart b/tests/compiler/dart2js/sourcemaps/html_parts.dart
index d4e809f..2691a09 100644
--- a/tests/compiler/dart2js/sourcemaps/html_parts.dart
+++ b/tests/compiler/dart2js/sourcemaps/html_parts.dart
@@ -125,7 +125,15 @@
   }
 }
 
-enum HtmlPartKind { CODE, LINE, CONST, NEWLINE, TEXT, TAG, LINE_NUMBER, }
+enum HtmlPartKind {
+  CODE,
+  LINE,
+  CONST,
+  NEWLINE,
+  TEXT,
+  TAG,
+  LINE_NUMBER,
+}
 
 abstract class HtmlPart {
   void printHtmlOn(StringBuffer buffer, HtmlPrintContext context);
diff --git a/tests/compiler/dart2js/sourcemaps/output_structure.dart b/tests/compiler/dart2js/sourcemaps/output_structure.dart
index 21a5bc3..648973a 100644
--- a/tests/compiler/dart2js/sourcemaps/output_structure.dart
+++ b/tests/compiler/dart2js/sourcemaps/output_structure.dart
@@ -637,7 +637,11 @@
   String toString() => '[$from,$to[';
 }
 
-enum CodeKind { LIBRARY, CLASS, MEMBER, }
+enum CodeKind {
+  LIBRARY,
+  CLASS,
+  MEMBER,
+}
 
 class CodeLocation {
   final Uri uri;
diff --git a/tests/compiler/dart2js/type_combination_test.dart b/tests/compiler/dart2js/type_combination_test.dart
index bde511b..fc68975 100644
--- a/tests/compiler/dart2js/type_combination_test.dart
+++ b/tests/compiler/dart2js/type_combination_test.dart
@@ -738,7 +738,6 @@
     """);
     JavaScriptBackend backend = compiler.backend;
     BackendHelpers helpers = backend.helpers;
-    ClosedWorld world = compiler.openWorld.closeWorld(compiler.reporter);
     WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
     helpers.interceptorsLibrary.forEachLocalMember((element) {
       if (element.isClass) {
@@ -757,7 +756,8 @@
     impactBuilder
         .registerTypeUse(new TypeUse.instantiation(patternImplClass.rawType));
     compiler.enqueuer.resolution.applyImpact(impactBuilder);
-    compiler.openWorld.closeWorld(compiler.reporter);
+    compiler.closeResolution();
+    ClosedWorld world = compiler.closedWorld;
 
     // Grab hold of a supertype for String so we can produce potential
     // string types.
diff --git a/tests/compiler/dart2js/type_mask_test.dart b/tests/compiler/dart2js/type_mask_test.dart
index 3cb01a0..16bf898 100644
--- a/tests/compiler/dart2js/type_mask_test.dart
+++ b/tests/compiler/dart2js/type_mask_test.dart
@@ -21,7 +21,8 @@
 main() {
   Uri uri = new Uri(scheme: 'source');
   var compiler = compilerFor(CODE, uri);
-  var closedWorld = compiler.openWorld.closeWorld(compiler.reporter);
+  compiler.closeResolution();
+  var closedWorld = compiler.closedWorld;
 
   asyncTest(() => compiler.run(uri).then((_) {
         var classA = findElement(compiler, 'A');
diff --git a/tests/compiler/dart2js/union_type_test.dart b/tests/compiler/dart2js/union_type_test.dart
index 65e6da6..8294d47 100644
--- a/tests/compiler/dart2js/union_type_test.dart
+++ b/tests/compiler/dart2js/union_type_test.dart
@@ -22,8 +22,8 @@
       }
       """,
         useMockCompiler: false);
-    ClosedWorld world =
-        env.compiler.openWorld.closeWorld(env.compiler.reporter);
+    env.compiler.closeResolution();
+    ClosedWorld world = env.compiler.closedWorld;
     FlatTypeMask mask1 = new FlatTypeMask.exact(env.getElement('A'));
     FlatTypeMask mask2 = new FlatTypeMask.exact(env.getElement('B'));
     UnionTypeMask union1 = mask1.nonNullable().union(mask2, world);
diff --git a/pkg/dev_compiler/test/codegen/corelib/apply2_test.dart b/tests/corelib_strong/apply2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/apply2_test.dart
rename to tests/corelib_strong/apply2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/apply3_test.dart b/tests/corelib_strong/apply3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/apply3_test.dart
rename to tests/corelib_strong/apply3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/apply4_test.dart b/tests/corelib_strong/apply4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/apply4_test.dart
rename to tests/corelib_strong/apply4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/apply_test.dart b/tests/corelib_strong/apply_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/apply_test.dart
rename to tests/corelib_strong/apply_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/big_integer_arith_vm_test.dart b/tests/corelib_strong/big_integer_arith_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/big_integer_arith_vm_test.dart
rename to tests/corelib_strong/big_integer_arith_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/big_integer_huge_mul_vm_test.dart b/tests/corelib_strong/big_integer_huge_mul_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/big_integer_huge_mul_vm_test.dart
rename to tests/corelib_strong/big_integer_huge_mul_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_arith_vm_test.dart b/tests/corelib_strong/big_integer_parsed_arith_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_arith_vm_test.dart
rename to tests/corelib_strong/big_integer_parsed_arith_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_div_rem_vm_test.dart b/tests/corelib_strong/big_integer_parsed_div_rem_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_div_rem_vm_test.dart
rename to tests/corelib_strong/big_integer_parsed_div_rem_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_mul_div_vm_test.dart b/tests/corelib_strong/big_integer_parsed_mul_div_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/big_integer_parsed_mul_div_vm_test.dart
rename to tests/corelib_strong/big_integer_parsed_mul_div_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/bit_twiddling_bigint_test.dart b/tests/corelib_strong/bit_twiddling_bigint_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/bit_twiddling_bigint_test.dart
rename to tests/corelib_strong/bit_twiddling_bigint_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/bit_twiddling_test.dart b/tests/corelib_strong/bit_twiddling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/bit_twiddling_test.dart
rename to tests/corelib_strong/bit_twiddling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/bool_from_environment2_test.dart b/tests/corelib_strong/bool_from_environment2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/bool_from_environment2_test.dart
rename to tests/corelib_strong/bool_from_environment2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/bool_from_environment_test.dart b/tests/corelib_strong/bool_from_environment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/bool_from_environment_test.dart
rename to tests/corelib_strong/bool_from_environment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/bool_hashcode_test.dart b/tests/corelib_strong/bool_hashcode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/bool_hashcode_test.dart
rename to tests/corelib_strong/bool_hashcode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/collection_from_test.dart b/tests/corelib_strong/collection_from_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/collection_from_test.dart
rename to tests/corelib_strong/collection_from_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/collection_length_test.dart b/tests/corelib_strong/collection_length_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/collection_length_test.dart
rename to tests/corelib_strong/collection_length_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/collection_removes_test.dart b/tests/corelib_strong/collection_removes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/collection_removes_test.dart
rename to tests/corelib_strong/collection_removes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/collection_test.dart b/tests/corelib_strong/collection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/collection_test.dart
rename to tests/corelib_strong/collection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/collection_to_string_test.dart b/tests/corelib_strong/collection_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/collection_to_string_test.dart
rename to tests/corelib_strong/collection_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/compare_to2_test.dart b/tests/corelib_strong/compare_to2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/compare_to2_test.dart
rename to tests/corelib_strong/compare_to2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/compare_to_test.dart b/tests/corelib_strong/compare_to_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/compare_to_test.dart
rename to tests/corelib_strong/compare_to_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/const_list_literal_test.dart b/tests/corelib_strong/const_list_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/const_list_literal_test.dart
rename to tests/corelib_strong/const_list_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/const_list_remove_range_test.dart b/tests/corelib_strong/const_list_remove_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/const_list_remove_range_test.dart
rename to tests/corelib_strong/const_list_remove_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/const_list_set_range_test.dart b/tests/corelib_strong/const_list_set_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/const_list_set_range_test.dart
rename to tests/corelib_strong/const_list_set_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/core_runtime_types_test.dart b/tests/corelib_strong/core_runtime_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/core_runtime_types_test.dart
rename to tests/corelib_strong/core_runtime_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/data_resource_test.dart b/tests/corelib_strong/data_resource_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/data_resource_test.dart
rename to tests/corelib_strong/data_resource_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/data_uri_test.dart b/tests/corelib_strong/data_uri_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/data_uri_test.dart
rename to tests/corelib_strong/data_uri_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time2_test.dart b/tests/corelib_strong/date_time2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time2_test.dart
rename to tests/corelib_strong/date_time2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time3_test.dart b/tests/corelib_strong/date_time3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time3_test.dart
rename to tests/corelib_strong/date_time3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time4_test.dart b/tests/corelib_strong/date_time4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time4_test.dart
rename to tests/corelib_strong/date_time4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time5_test.dart b/tests/corelib_strong/date_time5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time5_test.dart
rename to tests/corelib_strong/date_time5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time6_test.dart b/tests/corelib_strong/date_time6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time6_test.dart
rename to tests/corelib_strong/date_time6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time7_test.dart b/tests/corelib_strong/date_time7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time7_test.dart
rename to tests/corelib_strong/date_time7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time8_test.dart b/tests/corelib_strong/date_time8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time8_test.dart
rename to tests/corelib_strong/date_time8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time9_test.dart b/tests/corelib_strong/date_time9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time9_test.dart
rename to tests/corelib_strong/date_time9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time_parse_test.dart b/tests/corelib_strong/date_time_parse_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time_parse_test.dart
rename to tests/corelib_strong/date_time_parse_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/date_time_test.dart b/tests/corelib_strong/date_time_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/date_time_test.dart
rename to tests/corelib_strong/date_time_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_ceil2_test.dart b/tests/corelib_strong/double_ceil2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_ceil2_test.dart
rename to tests/corelib_strong/double_ceil2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_ceil_test.dart b/tests/corelib_strong/double_ceil_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_ceil_test.dart
rename to tests/corelib_strong/double_ceil_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_ceil_to_double_test.dart b/tests/corelib_strong/double_ceil_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_ceil_to_double_test.dart
rename to tests/corelib_strong/double_ceil_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_compare_test.dart b/tests/corelib_strong/double_compare_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_compare_test.dart
rename to tests/corelib_strong/double_compare_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_floor2_test.dart b/tests/corelib_strong/double_floor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_floor2_test.dart
rename to tests/corelib_strong/double_floor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_floor_test.dart b/tests/corelib_strong/double_floor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_floor_test.dart
rename to tests/corelib_strong/double_floor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_floor_to_double_test.dart b/tests/corelib_strong/double_floor_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_floor_to_double_test.dart
rename to tests/corelib_strong/double_floor_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_parse_test.dart b/tests/corelib_strong/double_parse_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_parse_test.dart
rename to tests/corelib_strong/double_parse_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round2_test.dart b/tests/corelib_strong/double_round2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round2_test.dart
rename to tests/corelib_strong/double_round2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round3_test.dart b/tests/corelib_strong/double_round3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round3_test.dart
rename to tests/corelib_strong/double_round3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round4_test.dart b/tests/corelib_strong/double_round4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round4_test.dart
rename to tests/corelib_strong/double_round4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round_test.dart b/tests/corelib_strong/double_round_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round_test.dart
rename to tests/corelib_strong/double_round_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round_to_double2_test.dart b/tests/corelib_strong/double_round_to_double2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round_to_double2_test.dart
rename to tests/corelib_strong/double_round_to_double2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round_to_double3_test.dart b/tests/corelib_strong/double_round_to_double3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round_to_double3_test.dart
rename to tests/corelib_strong/double_round_to_double3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_round_to_double_test.dart b/tests/corelib_strong/double_round_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_round_to_double_test.dart
rename to tests/corelib_strong/double_round_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_truncate2_test.dart b/tests/corelib_strong/double_truncate2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_truncate2_test.dart
rename to tests/corelib_strong/double_truncate2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_truncate_test.dart b/tests/corelib_strong/double_truncate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_truncate_test.dart
rename to tests/corelib_strong/double_truncate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/double_truncate_to_double_test.dart b/tests/corelib_strong/double_truncate_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/double_truncate_to_double_test.dart
rename to tests/corelib_strong/double_truncate_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/duration2_test.dart b/tests/corelib_strong/duration2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/duration2_test.dart
rename to tests/corelib_strong/duration2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/duration_big_num_test.dart b/tests/corelib_strong/duration_big_num_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/duration_big_num_test.dart
rename to tests/corelib_strong/duration_big_num_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/duration_double_multiplication_test.dart b/tests/corelib_strong/duration_double_multiplication_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/duration_double_multiplication_test.dart
rename to tests/corelib_strong/duration_double_multiplication_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/duration_test.dart b/tests/corelib_strong/duration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/duration_test.dart
rename to tests/corelib_strong/duration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/error_stack_trace1_test.dart b/tests/corelib_strong/error_stack_trace1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/error_stack_trace1_test.dart
rename to tests/corelib_strong/error_stack_trace1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/error_stack_trace2_test.dart b/tests/corelib_strong/error_stack_trace2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/error_stack_trace2_test.dart
rename to tests/corelib_strong/error_stack_trace2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/error_stack_trace_test.dart b/tests/corelib_strong/error_stack_trace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/error_stack_trace_test.dart
rename to tests/corelib_strong/error_stack_trace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/errors_test.dart b/tests/corelib_strong/errors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/errors_test.dart
rename to tests/corelib_strong/errors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/exception_implementation_test.dart b/tests/corelib_strong/exception_implementation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/exception_implementation_test.dart
rename to tests/corelib_strong/exception_implementation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/expando_test.dart b/tests/corelib_strong/expando_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/expando_test.dart
rename to tests/corelib_strong/expando_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/expression_test.dart b/tests/corelib_strong/expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/expression_test.dart
rename to tests/corelib_strong/expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/file_resource_test.dart b/tests/corelib_strong/file_resource_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/file_resource_test.dart
rename to tests/corelib_strong/file_resource_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/for_in_test.dart b/tests/corelib_strong/for_in_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/for_in_test.dart
rename to tests/corelib_strong/for_in_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/format_exception_test.dart b/tests/corelib_strong/format_exception_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/format_exception_test.dart
rename to tests/corelib_strong/format_exception_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/from_environment_const_type_test.dart b/tests/corelib_strong/from_environment_const_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/from_environment_const_type_test.dart
rename to tests/corelib_strong/from_environment_const_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/from_environment_const_type_undefined_test.dart b/tests/corelib_strong/from_environment_const_type_undefined_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/from_environment_const_type_undefined_test.dart
rename to tests/corelib_strong/from_environment_const_type_undefined_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/growable_list_test.dart b/tests/corelib_strong/growable_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/growable_list_test.dart
rename to tests/corelib_strong/growable_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/has_next_iterator_test.dart b/tests/corelib_strong/has_next_iterator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/has_next_iterator_test.dart
rename to tests/corelib_strong/has_next_iterator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hash_map2_test.dart b/tests/corelib_strong/hash_map2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hash_map2_test.dart
rename to tests/corelib_strong/hash_map2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hash_map_test.dart b/tests/corelib_strong/hash_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hash_map_test.dart
rename to tests/corelib_strong/hash_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hash_set_test.dart b/tests/corelib_strong/hash_set_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hash_set_test.dart
rename to tests/corelib_strong/hash_set_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hash_set_type_check_test.dart b/tests/corelib_strong/hash_set_type_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hash_set_type_check_test.dart
rename to tests/corelib_strong/hash_set_type_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hashcode_boxed_test.dart b/tests/corelib_strong/hashcode_boxed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hashcode_boxed_test.dart
rename to tests/corelib_strong/hashcode_boxed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hashcode_test.dart b/tests/corelib_strong/hashcode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hashcode_test.dart
rename to tests/corelib_strong/hashcode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/hidden_library2_test.dart b/tests/corelib_strong/hidden_library2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/hidden_library2_test.dart
rename to tests/corelib_strong/hidden_library2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/http_resource_test.dart b/tests/corelib_strong/http_resource_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/http_resource_test.dart
rename to tests/corelib_strong/http_resource_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/indexed_list_access_test.dart b/tests/corelib_strong/indexed_list_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/indexed_list_access_test.dart
rename to tests/corelib_strong/indexed_list_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_ceil_test.dart b/tests/corelib_strong/int_ceil_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_ceil_test.dart
rename to tests/corelib_strong/int_ceil_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_ceil_to_double_test.dart b/tests/corelib_strong/int_ceil_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_ceil_to_double_test.dart
rename to tests/corelib_strong/int_ceil_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_floor_test.dart b/tests/corelib_strong/int_floor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_floor_test.dart
rename to tests/corelib_strong/int_floor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_floor_to_double_test.dart b/tests/corelib_strong/int_floor_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_floor_to_double_test.dart
rename to tests/corelib_strong/int_floor_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_from_environment2_test.dart b/tests/corelib_strong/int_from_environment2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_from_environment2_test.dart
rename to tests/corelib_strong/int_from_environment2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_from_environment3_test.dart b/tests/corelib_strong/int_from_environment3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_from_environment3_test.dart
rename to tests/corelib_strong/int_from_environment3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_from_environment_test.dart b/tests/corelib_strong/int_from_environment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_from_environment_test.dart
rename to tests/corelib_strong/int_from_environment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_modulo_arith_test.dart b/tests/corelib_strong/int_modulo_arith_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_modulo_arith_test.dart
rename to tests/corelib_strong/int_modulo_arith_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_parse_radix_test.dart b/tests/corelib_strong/int_parse_radix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_parse_radix_test.dart
rename to tests/corelib_strong/int_parse_radix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_round_test.dart b/tests/corelib_strong/int_round_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_round_test.dart
rename to tests/corelib_strong/int_round_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_round_to_double_test.dart b/tests/corelib_strong/int_round_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_round_to_double_test.dart
rename to tests/corelib_strong/int_round_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_to_int_test.dart b/tests/corelib_strong/int_to_int_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_to_int_test.dart
rename to tests/corelib_strong/int_to_int_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_truncate_test.dart b/tests/corelib_strong/int_truncate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_truncate_test.dart
rename to tests/corelib_strong/int_truncate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/int_truncate_to_double_test.dart b/tests/corelib_strong/int_truncate_to_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/int_truncate_to_double_test.dart
rename to tests/corelib_strong/int_truncate_to_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/integer_to_radix_string_test.dart b/tests/corelib_strong/integer_to_radix_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/integer_to_radix_string_test.dart
rename to tests/corelib_strong/integer_to_radix_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/integer_to_string_test.dart b/tests/corelib_strong/integer_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/integer_to_string_test.dart
rename to tests/corelib_strong/integer_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/is_operator_basic_types_test.dart b/tests/corelib_strong/is_operator_basic_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/is_operator_basic_types_test.dart
rename to tests/corelib_strong/is_operator_basic_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_contains2_test.dart b/tests/corelib_strong/iterable_contains2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_contains2_test.dart
rename to tests/corelib_strong/iterable_contains2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_contains_test.dart b/tests/corelib_strong/iterable_contains_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_contains_test.dart
rename to tests/corelib_strong/iterable_contains_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_element_at_test.dart b/tests/corelib_strong/iterable_element_at_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_element_at_test.dart
rename to tests/corelib_strong/iterable_element_at_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_empty_test.dart b/tests/corelib_strong/iterable_empty_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_empty_test.dart
rename to tests/corelib_strong/iterable_empty_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_expand_test.dart b/tests/corelib_strong/iterable_expand_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_expand_test.dart
rename to tests/corelib_strong/iterable_expand_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_first_test.dart b/tests/corelib_strong/iterable_first_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_first_test.dart
rename to tests/corelib_strong/iterable_first_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_first_where_test.dart b/tests/corelib_strong/iterable_first_where_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_first_where_test.dart
rename to tests/corelib_strong/iterable_first_where_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_fold_test.dart b/tests/corelib_strong/iterable_fold_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_fold_test.dart
rename to tests/corelib_strong/iterable_fold_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_generate_test.dart b/tests/corelib_strong/iterable_generate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_generate_test.dart
rename to tests/corelib_strong/iterable_generate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_join_test.dart b/tests/corelib_strong/iterable_join_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_join_test.dart
rename to tests/corelib_strong/iterable_join_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_last_test.dart b/tests/corelib_strong/iterable_last_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_last_test.dart
rename to tests/corelib_strong/iterable_last_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_last_where_test.dart b/tests/corelib_strong/iterable_last_where_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_last_where_test.dart
rename to tests/corelib_strong/iterable_last_where_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_length_test.dart b/tests/corelib_strong/iterable_length_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_length_test.dart
rename to tests/corelib_strong/iterable_length_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_mapping_test.dart b/tests/corelib_strong/iterable_mapping_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_mapping_test.dart
rename to tests/corelib_strong/iterable_mapping_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_reduce_test.dart b/tests/corelib_strong/iterable_reduce_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_reduce_test.dart
rename to tests/corelib_strong/iterable_reduce_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_return_type_test.dart b/tests/corelib_strong/iterable_return_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_return_type_test.dart
rename to tests/corelib_strong/iterable_return_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_single_test.dart b/tests/corelib_strong/iterable_single_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_single_test.dart
rename to tests/corelib_strong/iterable_single_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_single_where_test.dart b/tests/corelib_strong/iterable_single_where_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_single_where_test.dart
rename to tests/corelib_strong/iterable_single_where_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_skip_test.dart b/tests/corelib_strong/iterable_skip_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_skip_test.dart
rename to tests/corelib_strong/iterable_skip_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_skip_while_test.dart b/tests/corelib_strong/iterable_skip_while_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_skip_while_test.dart
rename to tests/corelib_strong/iterable_skip_while_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_take_test.dart b/tests/corelib_strong/iterable_take_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_take_test.dart
rename to tests/corelib_strong/iterable_take_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_take_while_test.dart b/tests/corelib_strong/iterable_take_while_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_take_while_test.dart
rename to tests/corelib_strong/iterable_take_while_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_test.dart b/tests/corelib_strong/iterable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_test.dart
rename to tests/corelib_strong/iterable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_to_list_test.dart b/tests/corelib_strong/iterable_to_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_to_list_test.dart
rename to tests/corelib_strong/iterable_to_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_to_set_test.dart b/tests/corelib_strong/iterable_to_set_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_to_set_test.dart
rename to tests/corelib_strong/iterable_to_set_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/iterable_tostring_test.dart b/tests/corelib_strong/iterable_tostring_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/iterable_tostring_test.dart
rename to tests/corelib_strong/iterable_tostring_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/json_map_test.dart b/tests/corelib_strong/json_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/json_map_test.dart
rename to tests/corelib_strong/json_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/linked_hash_map_from_iterable_test.dart b/tests/corelib_strong/linked_hash_map_from_iterable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/linked_hash_map_from_iterable_test.dart
rename to tests/corelib_strong/linked_hash_map_from_iterable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/linked_hash_map_from_iterables_test.dart b/tests/corelib_strong/linked_hash_map_from_iterables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/linked_hash_map_from_iterables_test.dart
rename to tests/corelib_strong/linked_hash_map_from_iterables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/linked_hash_map_test.dart b/tests/corelib_strong/linked_hash_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/linked_hash_map_test.dart
rename to tests/corelib_strong/linked_hash_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_as_map_test.dart b/tests/corelib_strong/list_as_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_as_map_test.dart
rename to tests/corelib_strong/list_as_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_contains_argument_order_test.dart b/tests/corelib_strong/list_contains_argument_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_contains_argument_order_test.dart
rename to tests/corelib_strong/list_contains_argument_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_fill_range_test.dart b/tests/corelib_strong/list_fill_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_fill_range_test.dart
rename to tests/corelib_strong/list_fill_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_filled_type_argument_test.dart b/tests/corelib_strong/list_filled_type_argument_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_filled_type_argument_test.dart
rename to tests/corelib_strong/list_filled_type_argument_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_first_test.dart b/tests/corelib_strong/list_first_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_first_test.dart
rename to tests/corelib_strong/list_first_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_fixed_test.dart b/tests/corelib_strong/list_fixed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_fixed_test.dart
rename to tests/corelib_strong/list_fixed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_for_each_test.dart b/tests/corelib_strong/list_for_each_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_for_each_test.dart
rename to tests/corelib_strong/list_for_each_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_get_range_test.dart b/tests/corelib_strong/list_get_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_get_range_test.dart
rename to tests/corelib_strong/list_get_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_growable_test.dart b/tests/corelib_strong/list_growable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_growable_test.dart
rename to tests/corelib_strong/list_growable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_index_of2_test.dart b/tests/corelib_strong/list_index_of2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_index_of2_test.dart
rename to tests/corelib_strong/list_index_of2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_index_of_test.dart b/tests/corelib_strong/list_index_of_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_index_of_test.dart
rename to tests/corelib_strong/list_index_of_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_insert_all_test.dart b/tests/corelib_strong/list_insert_all_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_insert_all_test.dart
rename to tests/corelib_strong/list_insert_all_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_insert_test.dart b/tests/corelib_strong/list_insert_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_insert_test.dart
rename to tests/corelib_strong/list_insert_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_iterators_test.dart b/tests/corelib_strong/list_iterators_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_iterators_test.dart
rename to tests/corelib_strong/list_iterators_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_last_test.dart b/tests/corelib_strong/list_last_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_last_test.dart
rename to tests/corelib_strong/list_last_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_literal_is_growable_test.dart b/tests/corelib_strong/list_literal_is_growable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_literal_is_growable_test.dart
rename to tests/corelib_strong/list_literal_is_growable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_literal_test.dart b/tests/corelib_strong/list_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_literal_test.dart
rename to tests/corelib_strong/list_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_map_test.dart b/tests/corelib_strong/list_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_map_test.dart
rename to tests/corelib_strong/list_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_remove_range_test.dart b/tests/corelib_strong/list_remove_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_remove_range_test.dart
rename to tests/corelib_strong/list_remove_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_removeat_test.dart b/tests/corelib_strong/list_removeat_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_removeat_test.dart
rename to tests/corelib_strong/list_removeat_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_replace_range_test.dart b/tests/corelib_strong/list_replace_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_replace_range_test.dart
rename to tests/corelib_strong/list_replace_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_reversed_test.dart b/tests/corelib_strong/list_reversed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_reversed_test.dart
rename to tests/corelib_strong/list_reversed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_set_all_test.dart b/tests/corelib_strong/list_set_all_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_set_all_test.dart
rename to tests/corelib_strong/list_set_all_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_set_range_test.dart b/tests/corelib_strong/list_set_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_set_range_test.dart
rename to tests/corelib_strong/list_set_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_sort_test.dart b/tests/corelib_strong/list_sort_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_sort_test.dart
rename to tests/corelib_strong/list_sort_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_sublist_test.dart b/tests/corelib_strong/list_sublist_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_sublist_test.dart
rename to tests/corelib_strong/list_sublist_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_test.dart b/tests/corelib_strong/list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_test.dart
rename to tests/corelib_strong/list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_to_string2_test.dart b/tests/corelib_strong/list_to_string2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_to_string2_test.dart
rename to tests/corelib_strong/list_to_string2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_to_string_test.dart b/tests/corelib_strong/list_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_to_string_test.dart
rename to tests/corelib_strong/list_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/list_unmodifiable_test.dart b/tests/corelib_strong/list_unmodifiable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/list_unmodifiable_test.dart
rename to tests/corelib_strong/list_unmodifiable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/main_test.dart b/tests/corelib_strong/main_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/main_test.dart
rename to tests/corelib_strong/main_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_contains_key_test.dart b/tests/corelib_strong/map_contains_key_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_contains_key_test.dart
rename to tests/corelib_strong/map_contains_key_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_contains_value_test.dart b/tests/corelib_strong/map_contains_value_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_contains_value_test.dart
rename to tests/corelib_strong/map_contains_value_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_from_iterable_test.dart b/tests/corelib_strong/map_from_iterable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_from_iterable_test.dart
rename to tests/corelib_strong/map_from_iterable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_from_iterables_test.dart b/tests/corelib_strong/map_from_iterables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_from_iterables_test.dart
rename to tests/corelib_strong/map_from_iterables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_from_test.dart b/tests/corelib_strong/map_from_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_from_test.dart
rename to tests/corelib_strong/map_from_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_index_test.dart b/tests/corelib_strong/map_index_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_index_test.dart
rename to tests/corelib_strong/map_index_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_keys2_test.dart b/tests/corelib_strong/map_keys2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_keys2_test.dart
rename to tests/corelib_strong/map_keys2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_keys_test.dart b/tests/corelib_strong/map_keys_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_keys_test.dart
rename to tests/corelib_strong/map_keys_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_remove_test.dart b/tests/corelib_strong/map_remove_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_remove_test.dart
rename to tests/corelib_strong/map_remove_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_test.dart b/tests/corelib_strong/map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_test.dart
rename to tests/corelib_strong/map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_to_string_test.dart b/tests/corelib_strong/map_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_to_string_test.dart
rename to tests/corelib_strong/map_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_values2_test.dart b/tests/corelib_strong/map_values2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_values2_test.dart
rename to tests/corelib_strong/map_values2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_values3_test.dart b/tests/corelib_strong/map_values3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_values3_test.dart
rename to tests/corelib_strong/map_values3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_values4_test.dart b/tests/corelib_strong/map_values4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_values4_test.dart
rename to tests/corelib_strong/map_values4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/map_values_test.dart b/tests/corelib_strong/map_values_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/map_values_test.dart
rename to tests/corelib_strong/map_values_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/maps_test.dart b/tests/corelib_strong/maps_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/maps_test.dart
rename to tests/corelib_strong/maps_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/nan_infinity_test.dart b/tests/corelib_strong/nan_infinity_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/nan_infinity_test.dart
rename to tests/corelib_strong/nan_infinity_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/null_nosuchmethod_test.dart b/tests/corelib_strong/null_nosuchmethod_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/null_nosuchmethod_test.dart
rename to tests/corelib_strong/null_nosuchmethod_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/null_test.dart b/tests/corelib_strong/null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/null_test.dart
rename to tests/corelib_strong/null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/num_clamp_test.dart b/tests/corelib_strong/num_clamp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/num_clamp_test.dart
rename to tests/corelib_strong/num_clamp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/num_parse_test.dart b/tests/corelib_strong/num_parse_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/num_parse_test.dart
rename to tests/corelib_strong/num_parse_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/num_sign_test.dart b/tests/corelib_strong/num_sign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/num_sign_test.dart
rename to tests/corelib_strong/num_sign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/package_resource_test.dart b/tests/corelib_strong/package_resource_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/package_resource_test.dart
rename to tests/corelib_strong/package_resource_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/print_test.dart b/tests/corelib_strong/print_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/print_test.dart
rename to tests/corelib_strong/print_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/queue_first_test.dart b/tests/corelib_strong/queue_first_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/queue_first_test.dart
rename to tests/corelib_strong/queue_first_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/queue_iterator_test.dart b/tests/corelib_strong/queue_iterator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/queue_iterator_test.dart
rename to tests/corelib_strong/queue_iterator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/queue_last_test.dart b/tests/corelib_strong/queue_last_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/queue_last_test.dart
rename to tests/corelib_strong/queue_last_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/queue_single_test.dart b/tests/corelib_strong/queue_single_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/queue_single_test.dart
rename to tests/corelib_strong/queue_single_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/queue_test.dart b/tests/corelib_strong/queue_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/queue_test.dart
rename to tests/corelib_strong/queue_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/range_error_test.dart b/tests/corelib_strong/range_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/range_error_test.dart
rename to tests/corelib_strong/range_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp1_test.dart b/tests/corelib_strong/reg_exp1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp1_test.dart
rename to tests/corelib_strong/reg_exp1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp4_test.dart b/tests/corelib_strong/reg_exp4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp4_test.dart
rename to tests/corelib_strong/reg_exp4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp5_test.dart b/tests/corelib_strong/reg_exp5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp5_test.dart
rename to tests/corelib_strong/reg_exp5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_all_matches_test.dart b/tests/corelib_strong/reg_exp_all_matches_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_all_matches_test.dart
rename to tests/corelib_strong/reg_exp_all_matches_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_first_match_test.dart b/tests/corelib_strong/reg_exp_first_match_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_first_match_test.dart
rename to tests/corelib_strong/reg_exp_first_match_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_group_test.dart b/tests/corelib_strong/reg_exp_group_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_group_test.dart
rename to tests/corelib_strong/reg_exp_group_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_groups_test.dart b/tests/corelib_strong/reg_exp_groups_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_groups_test.dart
rename to tests/corelib_strong/reg_exp_groups_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_has_match_test.dart b/tests/corelib_strong/reg_exp_has_match_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_has_match_test.dart
rename to tests/corelib_strong/reg_exp_has_match_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_pattern_test.dart b/tests/corelib_strong/reg_exp_pattern_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_pattern_test.dart
rename to tests/corelib_strong/reg_exp_pattern_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_start_end_test.dart b/tests/corelib_strong/reg_exp_start_end_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_start_end_test.dart
rename to tests/corelib_strong/reg_exp_start_end_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/reg_exp_string_match_test.dart b/tests/corelib_strong/reg_exp_string_match_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/reg_exp_string_match_test.dart
rename to tests/corelib_strong/reg_exp_string_match_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/UC16_test.dart b/tests/corelib_strong/regexp/UC16_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/UC16_test.dart
rename to tests/corelib_strong/regexp/UC16_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/alternative-length-miscalculation_test.dart b/tests/corelib_strong/regexp/alternative-length-miscalculation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/alternative-length-miscalculation_test.dart
rename to tests/corelib_strong/regexp/alternative-length-miscalculation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/alternatives_test.dart b/tests/corelib_strong/regexp/alternatives_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/alternatives_test.dart
rename to tests/corelib_strong/regexp/alternatives_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/ascii-regexp-subject_test.dart b/tests/corelib_strong/regexp/ascii-regexp-subject_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/ascii-regexp-subject_test.dart
rename to tests/corelib_strong/regexp/ascii-regexp-subject_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/assertion_test.dart b/tests/corelib_strong/regexp/assertion_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/assertion_test.dart
rename to tests/corelib_strong/regexp/assertion_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/backreferences_test.dart b/tests/corelib_strong/regexp/backreferences_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/backreferences_test.dart
rename to tests/corelib_strong/regexp/backreferences_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/bol-with-multiline_test.dart b/tests/corelib_strong/regexp/bol-with-multiline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/bol-with-multiline_test.dart
rename to tests/corelib_strong/regexp/bol-with-multiline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/bol_test.dart b/tests/corelib_strong/regexp/bol_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/bol_test.dart
rename to tests/corelib_strong/regexp/bol_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/capture-3_test.dart b/tests/corelib_strong/regexp/capture-3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/capture-3_test.dart
rename to tests/corelib_strong/regexp/capture-3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/capture_test.dart b/tests/corelib_strong/regexp/capture_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/capture_test.dart
rename to tests/corelib_strong/regexp/capture_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/captures_test.dart b/tests/corelib_strong/regexp/captures_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/captures_test.dart
rename to tests/corelib_strong/regexp/captures_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/char-insensitive_test.dart b/tests/corelib_strong/regexp/char-insensitive_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/char-insensitive_test.dart
rename to tests/corelib_strong/regexp/char-insensitive_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/character-match-out-of-order_test.dart b/tests/corelib_strong/regexp/character-match-out-of-order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/character-match-out-of-order_test.dart
rename to tests/corelib_strong/regexp/character-match-out-of-order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/compile-crash_test.dart b/tests/corelib_strong/regexp/compile-crash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/compile-crash_test.dart
rename to tests/corelib_strong/regexp/compile-crash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/compile_test.dart b/tests/corelib_strong/regexp/compile_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/compile_test.dart
rename to tests/corelib_strong/regexp/compile_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/constructor_test.dart b/tests/corelib_strong/regexp/constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/constructor_test.dart
rename to tests/corelib_strong/regexp/constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/default_arguments_test.dart b/tests/corelib_strong/regexp/default_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/default_arguments_test.dart
rename to tests/corelib_strong/regexp/default_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/dotstar_test.dart b/tests/corelib_strong/regexp/dotstar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/dotstar_test.dart
rename to tests/corelib_strong/regexp/dotstar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/early-acid3-86_test.dart b/tests/corelib_strong/regexp/early-acid3-86_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/early-acid3-86_test.dart
rename to tests/corelib_strong/regexp/early-acid3-86_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/ecma-regex-examples_test.dart b/tests/corelib_strong/regexp/ecma-regex-examples_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/ecma-regex-examples_test.dart
rename to tests/corelib_strong/regexp/ecma-regex-examples_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/extended-characters-match_test.dart b/tests/corelib_strong/regexp/extended-characters-match_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/extended-characters-match_test.dart
rename to tests/corelib_strong/regexp/extended-characters-match_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/extended-characters-more_test.dart b/tests/corelib_strong/regexp/extended-characters-more_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/extended-characters-more_test.dart
rename to tests/corelib_strong/regexp/extended-characters-more_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/find-first-asserted_test.dart b/tests/corelib_strong/regexp/find-first-asserted_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/find-first-asserted_test.dart
rename to tests/corelib_strong/regexp/find-first-asserted_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/global_test.dart b/tests/corelib_strong/regexp/global_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/global_test.dart
rename to tests/corelib_strong/regexp/global_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/indexof_test.dart b/tests/corelib_strong/regexp/indexof_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/indexof_test.dart
rename to tests/corelib_strong/regexp/indexof_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/invalid-range-in-class_test.dart b/tests/corelib_strong/regexp/invalid-range-in-class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/invalid-range-in-class_test.dart
rename to tests/corelib_strong/regexp/invalid-range-in-class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/issue_19193_test.dart b/tests/corelib_strong/regexp/issue_19193_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/issue_19193_test.dart
rename to tests/corelib_strong/regexp/issue_19193_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/lastindex_test.dart b/tests/corelib_strong/regexp/lastindex_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/lastindex_test.dart
rename to tests/corelib_strong/regexp/lastindex_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/look-ahead_test.dart b/tests/corelib_strong/regexp/look-ahead_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/look-ahead_test.dart
rename to tests/corelib_strong/regexp/look-ahead_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/lookahead_test.dart b/tests/corelib_strong/regexp/lookahead_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/lookahead_test.dart
rename to tests/corelib_strong/regexp/lookahead_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/loop-capture_test.dart b/tests/corelib_strong/regexp/loop-capture_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/loop-capture_test.dart
rename to tests/corelib_strong/regexp/loop-capture_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/malformed-escapes_test.dart b/tests/corelib_strong/regexp/malformed-escapes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/malformed-escapes_test.dart
rename to tests/corelib_strong/regexp/malformed-escapes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/many-brackets_test.dart b/tests/corelib_strong/regexp/many-brackets_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/many-brackets_test.dart
rename to tests/corelib_strong/regexp/many-brackets_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/multiline_test.dart b/tests/corelib_strong/regexp/multiline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/multiline_test.dart
rename to tests/corelib_strong/regexp/multiline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/negative-special-characters_test.dart b/tests/corelib_strong/regexp/negative-special-characters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/negative-special-characters_test.dart
rename to tests/corelib_strong/regexp/negative-special-characters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/no-extensions_test.dart b/tests/corelib_strong/regexp/no-extensions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/no-extensions_test.dart
rename to tests/corelib_strong/regexp/no-extensions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/non-bmp_test.dart b/tests/corelib_strong/regexp/non-bmp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/non-bmp_test.dart
rename to tests/corelib_strong/regexp/non-bmp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/non-capturing-backtracking_test.dart b/tests/corelib_strong/regexp/non-capturing-backtracking_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/non-capturing-backtracking_test.dart
rename to tests/corelib_strong/regexp/non-capturing-backtracking_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/non-capturing-groups_test.dart b/tests/corelib_strong/regexp/non-capturing-groups_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/non-capturing-groups_test.dart
rename to tests/corelib_strong/regexp/non-capturing-groups_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/non-character_test.dart b/tests/corelib_strong/regexp/non-character_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/non-character_test.dart
rename to tests/corelib_strong/regexp/non-character_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/non-greedy-parentheses_test.dart b/tests/corelib_strong/regexp/non-greedy-parentheses_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/non-greedy-parentheses_test.dart
rename to tests/corelib_strong/regexp/non-greedy-parentheses_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/norepeat_test.dart b/tests/corelib_strong/regexp/norepeat_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/norepeat_test.dart
rename to tests/corelib_strong/regexp/norepeat_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/overflow_test.dart b/tests/corelib_strong/regexp/overflow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/overflow_test.dart
rename to tests/corelib_strong/regexp/overflow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/parentheses_test.dart b/tests/corelib_strong/regexp/parentheses_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/parentheses_test.dart
rename to tests/corelib_strong/regexp/parentheses_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/pcre-test-4_test.dart b/tests/corelib_strong/regexp/pcre-test-4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/pcre-test-4_test.dart
rename to tests/corelib_strong/regexp/pcre-test-4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/pcre_test.dart b/tests/corelib_strong/regexp/pcre_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/pcre_test.dart
rename to tests/corelib_strong/regexp/pcre_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/quantified-assertions_test.dart b/tests/corelib_strong/regexp/quantified-assertions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/quantified-assertions_test.dart
rename to tests/corelib_strong/regexp/quantified-assertions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/range-bound-ffff_test.dart b/tests/corelib_strong/regexp/range-bound-ffff_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/range-bound-ffff_test.dart
rename to tests/corelib_strong/regexp/range-bound-ffff_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/range-out-of-order_test.dart b/tests/corelib_strong/regexp/range-out-of-order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/range-out-of-order_test.dart
rename to tests/corelib_strong/regexp/range-out-of-order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/ranges-and-escaped-hyphens_test.dart b/tests/corelib_strong/regexp/ranges-and-escaped-hyphens_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/ranges-and-escaped-hyphens_test.dart
rename to tests/corelib_strong/regexp/ranges-and-escaped-hyphens_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/regexp_kde_test.dart b/tests/corelib_strong/regexp/regexp_kde_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/regexp_kde_test.dart
rename to tests/corelib_strong/regexp/regexp_kde_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/regexp_test.dart b/tests/corelib_strong/regexp/regexp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/regexp_test.dart
rename to tests/corelib_strong/regexp/regexp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/regress-6-9-regexp_test.dart b/tests/corelib_strong/regexp/regress-6-9-regexp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/regress-6-9-regexp_test.dart
rename to tests/corelib_strong/regexp/regress-6-9-regexp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/regress-regexp-codeflush_test.dart b/tests/corelib_strong/regexp/regress-regexp-codeflush_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/regress-regexp-codeflush_test.dart
rename to tests/corelib_strong/regexp/regress-regexp-codeflush_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/regress-regexp-construct-result_test.dart b/tests/corelib_strong/regexp/regress-regexp-construct-result_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/regress-regexp-construct-result_test.dart
rename to tests/corelib_strong/regexp/regress-regexp-construct-result_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/repeat-match-waldemar_test.dart b/tests/corelib_strong/regexp/repeat-match-waldemar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/repeat-match-waldemar_test.dart
rename to tests/corelib_strong/regexp/repeat-match-waldemar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/results-cache_test.dart b/tests/corelib_strong/regexp/results-cache_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/results-cache_test.dart
rename to tests/corelib_strong/regexp/results-cache_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/stack-overflow2_test.dart b/tests/corelib_strong/regexp/stack-overflow2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/stack-overflow2_test.dart
rename to tests/corelib_strong/regexp/stack-overflow2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/stack-overflow_test.dart b/tests/corelib_strong/regexp/stack-overflow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/stack-overflow_test.dart
rename to tests/corelib_strong/regexp/stack-overflow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/standalones_test.dart b/tests/corelib_strong/regexp/standalones_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/standalones_test.dart
rename to tests/corelib_strong/regexp/standalones_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/toString_test.dart b/tests/corelib_strong/regexp/toString_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/toString_test.dart
rename to tests/corelib_strong/regexp/toString_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/unicode-handling_test.dart b/tests/corelib_strong/regexp/unicode-handling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/unicode-handling_test.dart
rename to tests/corelib_strong/regexp/unicode-handling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/unicodeCaseInsensitive_test.dart b/tests/corelib_strong/regexp/unicodeCaseInsensitive_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/unicodeCaseInsensitive_test.dart
rename to tests/corelib_strong/regexp/unicodeCaseInsensitive_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/v8_regexp_utils.dart b/tests/corelib_strong/regexp/v8_regexp_utils.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/v8_regexp_utils.dart
rename to tests/corelib_strong/regexp/v8_regexp_utils.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regexp/zero-length-alternatives_test.dart b/tests/corelib_strong/regexp/zero-length-alternatives_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regexp/zero-length-alternatives_test.dart
rename to tests/corelib_strong/regexp/zero-length-alternatives_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regress_11099_test.dart b/tests/corelib_strong/regress_11099_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regress_11099_test.dart
rename to tests/corelib_strong/regress_11099_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/regress_r21715_test.dart b/tests/corelib_strong/regress_r21715_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/regress_r21715_test.dart
rename to tests/corelib_strong/regress_r21715_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/safe_to_string_test.dart b/tests/corelib_strong/safe_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/safe_to_string_test.dart
rename to tests/corelib_strong/safe_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_containsAll_test.dart b/tests/corelib_strong/set_containsAll_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_containsAll_test.dart
rename to tests/corelib_strong/set_containsAll_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_contains_test.dart b/tests/corelib_strong/set_contains_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_contains_test.dart
rename to tests/corelib_strong/set_contains_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_intersection_test.dart b/tests/corelib_strong/set_intersection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_intersection_test.dart
rename to tests/corelib_strong/set_intersection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_iterator_test.dart b/tests/corelib_strong/set_iterator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_iterator_test.dart
rename to tests/corelib_strong/set_iterator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_removeAll_test.dart b/tests/corelib_strong/set_removeAll_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_removeAll_test.dart
rename to tests/corelib_strong/set_removeAll_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_remove_test.dart b/tests/corelib_strong/set_remove_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_remove_test.dart
rename to tests/corelib_strong/set_remove_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_retainAll_test.dart b/tests/corelib_strong/set_retainAll_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_retainAll_test.dart
rename to tests/corelib_strong/set_retainAll_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_test.dart b/tests/corelib_strong/set_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_test.dart
rename to tests/corelib_strong/set_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/set_to_string_test.dart b/tests/corelib_strong/set_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/set_to_string_test.dart
rename to tests/corelib_strong/set_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/shuffle_test.dart b/tests/corelib_strong/shuffle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/shuffle_test.dart
rename to tests/corelib_strong/shuffle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/sort_helper.dart b/tests/corelib_strong/sort_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/sort_helper.dart
rename to tests/corelib_strong/sort_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/sort_test.dart b/tests/corelib_strong/sort_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/sort_test.dart
rename to tests/corelib_strong/sort_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/splay_tree_from_iterable_test.dart b/tests/corelib_strong/splay_tree_from_iterable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/splay_tree_from_iterable_test.dart
rename to tests/corelib_strong/splay_tree_from_iterable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/splay_tree_from_iterables_test.dart b/tests/corelib_strong/splay_tree_from_iterables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/splay_tree_from_iterables_test.dart
rename to tests/corelib_strong/splay_tree_from_iterables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/splay_tree_test.dart b/tests/corelib_strong/splay_tree_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/splay_tree_test.dart
rename to tests/corelib_strong/splay_tree_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/stacktrace_current_test.dart b/tests/corelib_strong/stacktrace_current_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/stacktrace_current_test.dart
rename to tests/corelib_strong/stacktrace_current_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/stacktrace_fromstring_test.dart b/tests/corelib_strong/stacktrace_fromstring_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/stacktrace_fromstring_test.dart
rename to tests/corelib_strong/stacktrace_fromstring_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/stopwatch2_test.dart b/tests/corelib_strong/stopwatch2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/stopwatch2_test.dart
rename to tests/corelib_strong/stopwatch2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/stopwatch_test.dart b/tests/corelib_strong/stopwatch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/stopwatch_test.dart
rename to tests/corelib_strong/stopwatch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_base_vm_test.dart b/tests/corelib_strong/string_base_vm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_base_vm_test.dart
rename to tests/corelib_strong/string_base_vm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_buffer_test.dart b/tests/corelib_strong/string_buffer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_buffer_test.dart
rename to tests/corelib_strong/string_buffer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_case_test.dart b/tests/corelib_strong/string_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_case_test.dart
rename to tests/corelib_strong/string_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_codeunits_test.dart b/tests/corelib_strong/string_codeunits_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_codeunits_test.dart
rename to tests/corelib_strong/string_codeunits_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_from_environment2_test.dart b/tests/corelib_strong/string_from_environment2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_from_environment2_test.dart
rename to tests/corelib_strong/string_from_environment2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_from_environment3_test.dart b/tests/corelib_strong/string_from_environment3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_from_environment3_test.dart
rename to tests/corelib_strong/string_from_environment3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_from_environment_test.dart b/tests/corelib_strong/string_from_environment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_from_environment_test.dart
rename to tests/corelib_strong/string_from_environment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_from_list_test.dart b/tests/corelib_strong/string_from_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_from_list_test.dart
rename to tests/corelib_strong/string_from_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_fromcharcode_test.dart b/tests/corelib_strong/string_fromcharcode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_fromcharcode_test.dart
rename to tests/corelib_strong/string_fromcharcode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_fromcharcodes_test.dart b/tests/corelib_strong/string_fromcharcodes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_fromcharcodes_test.dart
rename to tests/corelib_strong/string_fromcharcodes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_operations_with_null_test.dart b/tests/corelib_strong/string_operations_with_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_operations_with_null_test.dart
rename to tests/corelib_strong/string_operations_with_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_pattern_test.dart b/tests/corelib_strong/string_pattern_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_pattern_test.dart
rename to tests/corelib_strong/string_pattern_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_replace_all_test.dart b/tests/corelib_strong/string_replace_all_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_replace_all_test.dart
rename to tests/corelib_strong/string_replace_all_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_replace_dollar_test.dart b/tests/corelib_strong/string_replace_dollar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_replace_dollar_test.dart
rename to tests/corelib_strong/string_replace_dollar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_replace_test.dart b/tests/corelib_strong/string_replace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_replace_test.dart
rename to tests/corelib_strong/string_replace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_runes_test.dart b/tests/corelib_strong/string_runes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_runes_test.dart
rename to tests/corelib_strong/string_runes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_source_test.dart b/tests/corelib_strong/string_source_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_source_test.dart
rename to tests/corelib_strong/string_source_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_split_test.dart b/tests/corelib_strong/string_split_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_split_test.dart
rename to tests/corelib_strong/string_split_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_substring_test.dart b/tests/corelib_strong/string_substring_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_substring_test.dart
rename to tests/corelib_strong/string_substring_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_test.dart b/tests/corelib_strong/string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_test.dart
rename to tests/corelib_strong/string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_to_lower_case_test.dart b/tests/corelib_strong/string_to_lower_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_to_lower_case_test.dart
rename to tests/corelib_strong/string_to_lower_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_trim2_test.dart b/tests/corelib_strong/string_trim2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_trim2_test.dart
rename to tests/corelib_strong/string_trim2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_trim_test.dart b/tests/corelib_strong/string_trim_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_trim_test.dart
rename to tests/corelib_strong/string_trim_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/string_trimlr_test.dart b/tests/corelib_strong/string_trimlr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/string_trimlr_test.dart
rename to tests/corelib_strong/string_trimlr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/strings_test.dart b/tests/corelib_strong/strings_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/strings_test.dart
rename to tests/corelib_strong/strings_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/symbol_map_helper.dart b/tests/corelib_strong/symbol_map_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/symbol_map_helper.dart
rename to tests/corelib_strong/symbol_map_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/symbol_operator_test.dart b/tests/corelib_strong/symbol_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/symbol_operator_test.dart
rename to tests/corelib_strong/symbol_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/symbol_reserved_word_test.dart b/tests/corelib_strong/symbol_reserved_word_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/symbol_reserved_word_test.dart
rename to tests/corelib_strong/symbol_reserved_word_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/symbol_test.dart b/tests/corelib_strong/symbol_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/symbol_test.dart
rename to tests/corelib_strong/symbol_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/throw_half_surrogate_pair_test.dart b/tests/corelib_strong/throw_half_surrogate_pair_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/throw_half_surrogate_pair_test.dart
rename to tests/corelib_strong/throw_half_surrogate_pair_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/toInt_test.dart b/tests/corelib_strong/toInt_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/toInt_test.dart
rename to tests/corelib_strong/toInt_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/type_hashcode_test.dart b/tests/corelib_strong/type_hashcode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/type_hashcode_test.dart
rename to tests/corelib_strong/type_hashcode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/unicode2_test.dart b/tests/corelib_strong/unicode2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/unicode2_test.dart
rename to tests/corelib_strong/unicode2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/unicode_test.dart b/tests/corelib_strong/unicode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/unicode_test.dart
rename to tests/corelib_strong/unicode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_base_test.dart b/tests/corelib_strong/uri_base_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_base_test.dart
rename to tests/corelib_strong/uri_base_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_file_test.dart b/tests/corelib_strong/uri_file_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_file_test.dart
rename to tests/corelib_strong/uri_file_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_http_test.dart b/tests/corelib_strong/uri_http_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_http_test.dart
rename to tests/corelib_strong/uri_http_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_ipv4_test.dart b/tests/corelib_strong/uri_ipv4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_ipv4_test.dart
rename to tests/corelib_strong/uri_ipv4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_ipv6_test.dart b/tests/corelib_strong/uri_ipv6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_ipv6_test.dart
rename to tests/corelib_strong/uri_ipv6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_normalize_path_test.dart b/tests/corelib_strong/uri_normalize_path_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_normalize_path_test.dart
rename to tests/corelib_strong/uri_normalize_path_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_normalize_test.dart b/tests/corelib_strong/uri_normalize_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_normalize_test.dart
rename to tests/corelib_strong/uri_normalize_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_parameters_all_test.dart b/tests/corelib_strong/uri_parameters_all_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_parameters_all_test.dart
rename to tests/corelib_strong/uri_parameters_all_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_parse_test.dart b/tests/corelib_strong/uri_parse_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_parse_test.dart
rename to tests/corelib_strong/uri_parse_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_path_test.dart b/tests/corelib_strong/uri_path_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_path_test.dart
rename to tests/corelib_strong/uri_path_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_query_test.dart b/tests/corelib_strong/uri_query_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_query_test.dart
rename to tests/corelib_strong/uri_query_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_scheme_test.dart b/tests/corelib_strong/uri_scheme_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_scheme_test.dart
rename to tests/corelib_strong/uri_scheme_test.dart
diff --git a/pkg/dev_compiler/test/codegen/corelib/uri_test.dart b/tests/corelib_strong/uri_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/corelib/uri_test.dart
rename to tests/corelib_strong/uri_test.dart
diff --git a/tests/language/language_kernel.status b/tests/language/language_kernel.status
index f2569e9..793c381 100644
--- a/tests/language/language_kernel.status
+++ b/tests/language/language_kernel.status
@@ -17,95 +17,14 @@
 conditional_import_string_test: DartkCompileTimeError
 conditional_import_test: DartkCompileTimeError
 conflicting_type_variable_and_setter_test: DartkCompileTimeError
-const_for_in_variable_test/01: DartkMissingCompileTimeError
-constructor_duplicate_final_test/03: DartkMissingCompileTimeError
+const_for_in_variable_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/03: MissingCompileTimeError
 deep_nesting1_negative_test: DartkCrash
 deep_nesting2_negative_test: DartkCrash
 deferred_closurize_load_library_test: DartkCrash
-enum_syntax_test/06: DartkMissingCompileTimeError
+enum_syntax_test/06: MissingCompileTimeError
 export_double_same_main_test: DartkCrash
 export_main_test: DartkCrash
-external_test/21: DartkMissingCompileTimeError
-external_test/24: DartkMissingCompileTimeError
-external_test/25: DartkMissingCompileTimeError
-final_syntax_test/01: DartkMissingCompileTimeError
-final_syntax_test/02: DartkMissingCompileTimeError
-final_syntax_test/03: DartkMissingCompileTimeError
-final_syntax_test/04: DartkMissingCompileTimeError
-main_not_a_function_test/01: DartkCrash
-metadata_test: DartkCompileTimeError
-mixin_illegal_super_use_test/01: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/02: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/03: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/04: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/05: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/06: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/07: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/08: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/09: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/10: DartkMissingCompileTimeError
-mixin_illegal_super_use_test/11: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/01: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/02: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/03: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/04: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/05: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/06: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/07: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/08: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/09: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/10: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/11: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/12: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/13: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/14: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/15: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/16: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/17: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/18: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/19: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/20: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/21: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/22: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/23: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/24: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/25: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/26: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/27: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/28: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/29: DartkMissingCompileTimeError
-mixin_illegal_superclass_test/30: DartkMissingCompileTimeError
-multiline_newline_test/01: DartkCompileTimeError
-multiline_newline_test/02: DartkCompileTimeError
-multiline_newline_test/03: DartkCompileTimeError
-multiline_newline_test/04: DartkMissingCompileTimeError
-multiline_newline_test/05: DartkMissingCompileTimeError
-multiline_newline_test/06: DartkMissingCompileTimeError
-no_main_test/01: DartkCrash
-not_enough_positional_arguments_test/01: DartkCompileTimeError
-regress_27617_test/1: DartkMissingCompileTimeError
-super_call3_test/01: DartkCrash
-tearoff_basic_test: DartkCompileTimeError
-tearoff_constructor_basic_test: DartkCompileTimeError
-type_variable_conflict2_test/02: DartkMissingCompileTimeError
-vm/debug_break_enabled_vm_test/01: DartkCompileTimeError
-vm/debug_break_enabled_vm_test/none: DartkCompileTimeError
-vm/reflect_core_vm_test: DartkCompileTimeError
-vm/regress_27201_test: DartkCompileTimeError
-
-# dartk: JIT failures
-[ $compiler == dartk && $runtime == vm ]
-enum_syntax_test/05: DartkMissingCompileTimeError
-reify_typevar_static_test/00: DartkMissingCompileTimeError
-type_variable_conflict2_test/06: DartkMissingCompileTimeError
-type_variable_conflict2_test/08: DartkMissingCompileTimeError
-type_variable_conflict2_test/10: DartkMissingCompileTimeError
-
-# dartk: precompilation failures
-[ $compiler == dartkp && $runtime == dart_precompiled ]
-const_for_in_variable_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/03: MissingCompileTimeError
-enum_syntax_test/06: MissingCompileTimeError
 external_test/21: MissingCompileTimeError
 external_test/24: MissingCompileTimeError
 external_test/25: MissingCompileTimeError
@@ -113,6 +32,19 @@
 final_syntax_test/02: MissingCompileTimeError
 final_syntax_test/03: MissingCompileTimeError
 final_syntax_test/04: MissingCompileTimeError
+main_not_a_function_test/01: DartkCrash
+metadata_test: DartkCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
 mixin_illegal_superclass_test/01: MissingCompileTimeError
 mixin_illegal_superclass_test/02: MissingCompileTimeError
 mixin_illegal_superclass_test/03: MissingCompileTimeError
@@ -143,22 +75,34 @@
 mixin_illegal_superclass_test/28: MissingCompileTimeError
 mixin_illegal_superclass_test/29: MissingCompileTimeError
 mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
+multiline_newline_test/01: DartkCompileTimeError
+multiline_newline_test/02: DartkCompileTimeError
+multiline_newline_test/03: DartkCompileTimeError
 multiline_newline_test/04: MissingCompileTimeError
 multiline_newline_test/05: MissingCompileTimeError
 multiline_newline_test/06: MissingCompileTimeError
+no_main_test/01: DartkCrash
+not_enough_positional_arguments_test/01: DartkCompileTimeError
 regress_27617_test/1: MissingCompileTimeError
+super_call3_test/01: DartkCrash
+tearoff_basic_test: DartkCompileTimeError
+tearoff_constructor_basic_test: DartkCompileTimeError
 type_variable_conflict2_test/02: MissingCompileTimeError
+vm/debug_break_enabled_vm_test/01: DartkCompileTimeError
+vm/debug_break_enabled_vm_test/none: DartkCompileTimeError
+vm/reflect_core_vm_test: DartkCompileTimeError
+vm/regress_27201_test: DartkCompileTimeError
+
+# dartk: JIT failures
+[ $compiler == dartk && $runtime == vm ]
+enum_syntax_test/05: MissingCompileTimeError
+reify_typevar_static_test/00: MissingCompileTimeError
+type_variable_conflict2_test/06: MissingCompileTimeError
+type_variable_conflict2_test/08: MissingCompileTimeError
+type_variable_conflict2_test/10: MissingCompileTimeError
+
+# dartk: precompilation failures
+[ $compiler == dartkp && $runtime == dart_precompiled ]
 
 
 ###############################################################################
diff --git a/pkg/dev_compiler/test/codegen/language/aborting_switch_case_test.dart b/tests/language_strong/aborting_switch_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/aborting_switch_case_test.dart
rename to tests/language_strong/aborting_switch_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_exact_selector_test.dart b/tests/language_strong/abstract_exact_selector_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_exact_selector_test.dart
rename to tests/language_strong/abstract_exact_selector_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_factory_constructor_test.dart b/tests/language_strong/abstract_factory_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_factory_constructor_test.dart
rename to tests/language_strong/abstract_factory_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_getter_test.dart b/tests/language_strong/abstract_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_getter_test.dart
rename to tests/language_strong/abstract_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_method_test.dart b/tests/language_strong/abstract_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_method_test.dart
rename to tests/language_strong/abstract_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_object_method_test.dart b/tests/language_strong/abstract_object_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_object_method_test.dart
rename to tests/language_strong/abstract_object_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_runtime_error_test.dart b/tests/language_strong/abstract_runtime_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_runtime_error_test.dart
rename to tests/language_strong/abstract_runtime_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/abstract_syntax_test.dart b/tests/language_strong/abstract_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/abstract_syntax_test.dart
rename to tests/language_strong/abstract_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ackermann_test.dart b/tests/language_strong/ackermann_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ackermann_test.dart
rename to tests/language_strong/ackermann_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/adjacent_const_string_literals_test.dart b/tests/language_strong/adjacent_const_string_literals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/adjacent_const_string_literals_test.dart
rename to tests/language_strong/adjacent_const_string_literals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/adjacent_string_literals_test.dart b/tests/language_strong/adjacent_string_literals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/adjacent_string_literals_test.dart
rename to tests/language_strong/adjacent_string_literals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/allocate_large_object_test.dart b/tests/language_strong/allocate_large_object_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/allocate_large_object_test.dart
rename to tests/language_strong/allocate_large_object_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/allocate_test.dart b/tests/language_strong/allocate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/allocate_test.dart
rename to tests/language_strong/allocate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/allocation_sinking_inlining_test.dart b/tests/language_strong/allocation_sinking_inlining_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/allocation_sinking_inlining_test.dart
rename to tests/language_strong/allocation_sinking_inlining_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/and_operation_on_non_integer_operand_test.dart b/tests/language_strong/and_operation_on_non_integer_operand_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/and_operation_on_non_integer_operand_test.dart
rename to tests/language_strong/and_operation_on_non_integer_operand_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/application_negative_test.dart b/tests/language_strong/application_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/application_negative_test.dart
rename to tests/language_strong/application_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/application_test.dart b/tests/language_strong/application_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/application_test.dart
rename to tests/language_strong/application_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/argument_definition_test.dart b/tests/language_strong/argument_definition_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/argument_definition_test.dart
rename to tests/language_strong/argument_definition_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/arithmetic2_test.dart b/tests/language_strong/arithmetic2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/arithmetic2_test.dart
rename to tests/language_strong/arithmetic2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/arithmetic_canonicalization_test.dart b/tests/language_strong/arithmetic_canonicalization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/arithmetic_canonicalization_test.dart
rename to tests/language_strong/arithmetic_canonicalization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/arithmetic_smi_overflow_test.dart b/tests/language_strong/arithmetic_smi_overflow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/arithmetic_smi_overflow_test.dart
rename to tests/language_strong/arithmetic_smi_overflow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/arithmetic_test.dart b/tests/language_strong/arithmetic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/arithmetic_test.dart
rename to tests/language_strong/arithmetic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assert_assignable_type_test.dart b/tests/language_strong/assert_assignable_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assert_assignable_type_test.dart
rename to tests/language_strong/assert_assignable_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assert_with_type_test_or_cast_test.dart b/tests/language_strong/assert_with_type_test_or_cast_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assert_with_type_test_or_cast_test.dart
rename to tests/language_strong/assert_with_type_test_or_cast_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assertion_test.dart b/tests/language_strong/assertion_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assertion_test.dart
rename to tests/language_strong/assertion_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assign_instance_method_negative_test.dart b/tests/language_strong/assign_instance_method_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assign_instance_method_negative_test.dart
rename to tests/language_strong/assign_instance_method_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assign_op_test.dart b/tests/language_strong/assign_op_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assign_op_test.dart
rename to tests/language_strong/assign_op_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assign_static_type_test.dart b/tests/language_strong/assign_static_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assign_static_type_test.dart
rename to tests/language_strong/assign_static_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assign_to_type_test.dart b/tests/language_strong/assign_to_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assign_to_type_test.dart
rename to tests/language_strong/assign_to_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assign_top_method_test.dart b/tests/language_strong/assign_top_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assign_top_method_test.dart
rename to tests/language_strong/assign_top_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/assignable_expression_test.dart b/tests/language_strong/assignable_expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/assignable_expression_test.dart
rename to tests/language_strong/assignable_expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_and_or_test.dart b/tests/language_strong/async_and_or_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_and_or_test.dart
rename to tests/language_strong/async_and_or_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_await_catch_regression_test.dart b/tests/language_strong/async_await_catch_regression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_await_catch_regression_test.dart
rename to tests/language_strong/async_await_catch_regression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_await_syntax_test.dart b/tests/language_strong/async_await_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_await_syntax_test.dart
rename to tests/language_strong/async_await_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_await_test.dart b/tests/language_strong/async_await_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_await_test.dart
rename to tests/language_strong/async_await_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_backwards_compatibility_1_test.dart b/tests/language_strong/async_backwards_compatibility_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_backwards_compatibility_1_test.dart
rename to tests/language_strong/async_backwards_compatibility_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_backwards_compatibility_2_test.dart b/tests/language_strong/async_backwards_compatibility_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_backwards_compatibility_2_test.dart
rename to tests/language_strong/async_backwards_compatibility_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_break_in_finally_test.dart b/tests/language_strong/async_break_in_finally_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_break_in_finally_test.dart
rename to tests/language_strong/async_break_in_finally_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_continue_label_test.dart b/tests/language_strong/async_continue_label_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_continue_label_test.dart
rename to tests/language_strong/async_continue_label_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_control_structures_test.dart b/tests/language_strong/async_control_structures_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_control_structures_test.dart
rename to tests/language_strong/async_control_structures_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_finally_rethrow_test.dart b/tests/language_strong/async_finally_rethrow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_finally_rethrow_test.dart
rename to tests/language_strong/async_finally_rethrow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_helper_lib.dart b/tests/language_strong/async_helper_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_helper_lib.dart
rename to tests/language_strong/async_helper_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_or_generator_return_type_stacktrace_test.dart b/tests/language_strong/async_or_generator_return_type_stacktrace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_or_generator_return_type_stacktrace_test.dart
rename to tests/language_strong/async_or_generator_return_type_stacktrace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_regression_23058_test.dart b/tests/language_strong/async_regression_23058_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_regression_23058_test.dart
rename to tests/language_strong/async_regression_23058_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_rethrow_test.dart b/tests/language_strong/async_rethrow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_rethrow_test.dart
rename to tests/language_strong/async_rethrow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_return_types_test.dart b/tests/language_strong/async_return_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_return_types_test.dart
rename to tests/language_strong/async_return_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_await_pauses_test.dart b/tests/language_strong/async_star_await_pauses_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_await_pauses_test.dart
rename to tests/language_strong/async_star_await_pauses_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_cancel_and_throw_in_finally_test.dart b/tests/language_strong/async_star_cancel_and_throw_in_finally_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_cancel_and_throw_in_finally_test.dart
rename to tests/language_strong/async_star_cancel_and_throw_in_finally_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_cancel_while_paused_test.dart b/tests/language_strong/async_star_cancel_while_paused_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_cancel_while_paused_test.dart
rename to tests/language_strong/async_star_cancel_while_paused_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_regression_2238_test.dart b/tests/language_strong/async_star_regression_2238_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_regression_2238_test.dart
rename to tests/language_strong/async_star_regression_2238_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_regression_23116_test.dart b/tests/language_strong/async_star_regression_23116_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_regression_23116_test.dart
rename to tests/language_strong/async_star_regression_23116_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_regression_fisk_test.dart b/tests/language_strong/async_star_regression_fisk_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_regression_fisk_test.dart
rename to tests/language_strong/async_star_regression_fisk_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_stream_take_test.dart b/tests/language_strong/async_star_stream_take_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_stream_take_test.dart
rename to tests/language_strong/async_star_stream_take_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_take_reyield_test.dart b/tests/language_strong/async_star_take_reyield_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_take_reyield_test.dart
rename to tests/language_strong/async_star_take_reyield_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_star_test.dart b/tests/language_strong/async_star_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_star_test.dart
rename to tests/language_strong/async_star_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_switch_test.dart b/tests/language_strong/async_switch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_switch_test.dart
rename to tests/language_strong/async_switch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_test.dart b/tests/language_strong/async_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_test.dart
rename to tests/language_strong/async_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_this_bound_test.dart b/tests/language_strong/async_this_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_this_bound_test.dart
rename to tests/language_strong/async_this_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/async_throw_in_catch_test.dart b/tests/language_strong/async_throw_in_catch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/async_throw_in_catch_test.dart
rename to tests/language_strong/async_throw_in_catch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/asyncstar_concat_test.dart b/tests/language_strong/asyncstar_concat_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/asyncstar_concat_test.dart
rename to tests/language_strong/asyncstar_concat_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/asyncstar_throw_in_catch_test.dart b/tests/language_strong/asyncstar_throw_in_catch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/asyncstar_throw_in_catch_test.dart
rename to tests/language_strong/asyncstar_throw_in_catch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/asyncstar_yield_test.dart b/tests/language_strong/asyncstar_yield_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/asyncstar_yield_test.dart
rename to tests/language_strong/asyncstar_yield_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/asyncstar_yieldstar_test.dart b/tests/language_strong/asyncstar_yieldstar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/asyncstar_yieldstar_test.dart
rename to tests/language_strong/asyncstar_yieldstar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_backwards_compatibility_test.dart b/tests/language_strong/await_backwards_compatibility_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_backwards_compatibility_test.dart
rename to tests/language_strong/await_backwards_compatibility_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_exceptions_test.dart b/tests/language_strong/await_exceptions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_exceptions_test.dart
rename to tests/language_strong/await_exceptions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_for_cancel_test.dart b/tests/language_strong/await_for_cancel_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_for_cancel_test.dart
rename to tests/language_strong/await_for_cancel_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_for_test.dart b/tests/language_strong/await_for_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_for_test.dart
rename to tests/language_strong/await_for_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_for_use_local_test.dart b/tests/language_strong/await_for_use_local_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_for_use_local_test.dart
rename to tests/language_strong/await_for_use_local_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_future_test.dart b/tests/language_strong/await_future_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_future_test.dart
rename to tests/language_strong/await_future_test.dart
diff --git a/tests/language_strong/await_in_cascade_test.dart b/tests/language_strong/await_in_cascade_test.dart
new file mode 100644
index 0000000..e9fbcf9
--- /dev/null
+++ b/tests/language_strong/await_in_cascade_test.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'package:expect/expect.dart';
+
+class C {
+  Future<List<int>> m() async => []..add(await _m());
+  Future<int> _m() async => 42;
+}
+
+main() async {
+  Expect.equals(await new C().m(), 42);
+}
diff --git a/pkg/dev_compiler/test/codegen/language/await_nonfuture_test.dart b/tests/language_strong/await_nonfuture_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_nonfuture_test.dart
rename to tests/language_strong/await_nonfuture_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_not_started_immediately_test.dart b/tests/language_strong/await_not_started_immediately_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_not_started_immediately_test.dart
rename to tests/language_strong/await_not_started_immediately_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_postfix_expr_test.dart b/tests/language_strong/await_postfix_expr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_postfix_expr_test.dart
rename to tests/language_strong/await_postfix_expr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_regression_test.dart b/tests/language_strong/await_regression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_regression_test.dart
rename to tests/language_strong/await_regression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/await_test.dart b/tests/language_strong/await_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/await_test.dart
rename to tests/language_strong/await_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_constructor_test.dart b/tests/language_strong/bad_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_constructor_test.dart
rename to tests/language_strong/bad_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_initializer1_negative_test.dart b/tests/language_strong/bad_initializer1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_initializer1_negative_test.dart
rename to tests/language_strong/bad_initializer1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_initializer2_negative_test.dart b/tests/language_strong/bad_initializer2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_initializer2_negative_test.dart
rename to tests/language_strong/bad_initializer2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_named_constructor_negative_test.dart b/tests/language_strong/bad_named_constructor_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_named_constructor_negative_test.dart
rename to tests/language_strong/bad_named_constructor_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_named_parameters2_test.dart b/tests/language_strong/bad_named_parameters2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_named_parameters2_test.dart
rename to tests/language_strong/bad_named_parameters2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_named_parameters_test.dart b/tests/language_strong/bad_named_parameters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_named_parameters_test.dart
rename to tests/language_strong/bad_named_parameters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_override_test.dart b/tests/language_strong/bad_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_override_test.dart
rename to tests/language_strong/bad_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bad_raw_string_negative_test.dart b/tests/language_strong/bad_raw_string_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bad_raw_string_negative_test.dart
rename to tests/language_strong/bad_raw_string_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout2_test.dart b/tests/language_strong/bailout2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout2_test.dart
rename to tests/language_strong/bailout2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout3_test.dart b/tests/language_strong/bailout3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout3_test.dart
rename to tests/language_strong/bailout3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout4_test.dart b/tests/language_strong/bailout4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout4_test.dart
rename to tests/language_strong/bailout4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout5_test.dart b/tests/language_strong/bailout5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout5_test.dart
rename to tests/language_strong/bailout5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout6_test.dart b/tests/language_strong/bailout6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout6_test.dart
rename to tests/language_strong/bailout6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout7_test.dart b/tests/language_strong/bailout7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout7_test.dart
rename to tests/language_strong/bailout7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout_container_type_test.dart b/tests/language_strong/bailout_container_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout_container_type_test.dart
rename to tests/language_strong/bailout_container_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bailout_test.dart b/tests/language_strong/bailout_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bailout_test.dart
rename to tests/language_strong/bailout_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bind_test.dart b/tests/language_strong/bind_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bind_test.dart
rename to tests/language_strong/bind_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bit_operations_test.dart b/tests/language_strong/bit_operations_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bit_operations_test.dart
rename to tests/language_strong/bit_operations_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bit_shift_test.dart b/tests/language_strong/bit_shift_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bit_shift_test.dart
rename to tests/language_strong/bit_shift_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/black_listed_test.dart b/tests/language_strong/black_listed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/black_listed_test.dart
rename to tests/language_strong/black_listed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/body_less_constructor_wrong_arg_negative_test.dart b/tests/language_strong/body_less_constructor_wrong_arg_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/body_less_constructor_wrong_arg_negative_test.dart
rename to tests/language_strong/body_less_constructor_wrong_arg_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bool_check_test.dart b/tests/language_strong/bool_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bool_check_test.dart
rename to tests/language_strong/bool_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bool_condition_check_test.dart b/tests/language_strong/bool_condition_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bool_condition_check_test.dart
rename to tests/language_strong/bool_condition_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bool_test.dart b/tests/language_strong/bool_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bool_test.dart
rename to tests/language_strong/bool_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bootstrap_test.dart b/tests/language_strong/bootstrap_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bootstrap_test.dart
rename to tests/language_strong/bootstrap_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bound_closure_equality_test.dart b/tests/language_strong/bound_closure_equality_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bound_closure_equality_test.dart
rename to tests/language_strong/bound_closure_equality_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/bound_closure_primitives_test.dart b/tests/language_strong/bound_closure_primitives_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/bound_closure_primitives_test.dart
rename to tests/language_strong/bound_closure_primitives_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/branch_canonicalization_test.dart b/tests/language_strong/branch_canonicalization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/branch_canonicalization_test.dart
rename to tests/language_strong/branch_canonicalization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/branches_test.dart b/tests/language_strong/branches_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/branches_test.dart
rename to tests/language_strong/branches_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/break_test.dart b/tests/language_strong/break_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/break_test.dart
rename to tests/language_strong/break_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_illegal_test.dart b/tests/language_strong/built_in_identifier_illegal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_illegal_test.dart
rename to tests/language_strong/built_in_identifier_illegal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_abstract.dart b/tests/language_strong/built_in_identifier_prefix_library_abstract.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_abstract.dart
rename to tests/language_strong/built_in_identifier_prefix_library_abstract.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_as.dart b/tests/language_strong/built_in_identifier_prefix_library_as.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_as.dart
rename to tests/language_strong/built_in_identifier_prefix_library_as.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_dynamic.dart b/tests/language_strong/built_in_identifier_prefix_library_dynamic.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_dynamic.dart
rename to tests/language_strong/built_in_identifier_prefix_library_dynamic.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_export.dart b/tests/language_strong/built_in_identifier_prefix_library_export.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_export.dart
rename to tests/language_strong/built_in_identifier_prefix_library_export.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_external.dart b/tests/language_strong/built_in_identifier_prefix_library_external.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_external.dart
rename to tests/language_strong/built_in_identifier_prefix_library_external.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_factory.dart b/tests/language_strong/built_in_identifier_prefix_library_factory.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_factory.dart
rename to tests/language_strong/built_in_identifier_prefix_library_factory.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_get.dart b/tests/language_strong/built_in_identifier_prefix_library_get.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_get.dart
rename to tests/language_strong/built_in_identifier_prefix_library_get.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_implements.dart b/tests/language_strong/built_in_identifier_prefix_library_implements.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_implements.dart
rename to tests/language_strong/built_in_identifier_prefix_library_implements.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_import.dart b/tests/language_strong/built_in_identifier_prefix_library_import.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_import.dart
rename to tests/language_strong/built_in_identifier_prefix_library_import.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_library.dart b/tests/language_strong/built_in_identifier_prefix_library_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_library.dart
rename to tests/language_strong/built_in_identifier_prefix_library_library.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_operator.dart b/tests/language_strong/built_in_identifier_prefix_library_operator.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_operator.dart
rename to tests/language_strong/built_in_identifier_prefix_library_operator.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_part.dart b/tests/language_strong/built_in_identifier_prefix_library_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_part.dart
rename to tests/language_strong/built_in_identifier_prefix_library_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_set.dart b/tests/language_strong/built_in_identifier_prefix_library_set.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_set.dart
rename to tests/language_strong/built_in_identifier_prefix_library_set.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_static.dart b/tests/language_strong/built_in_identifier_prefix_library_static.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_static.dart
rename to tests/language_strong/built_in_identifier_prefix_library_static.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_typedef.dart b/tests/language_strong/built_in_identifier_prefix_library_typedef.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_library_typedef.dart
rename to tests/language_strong/built_in_identifier_prefix_library_typedef.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_test.dart b/tests/language_strong/built_in_identifier_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_prefix_test.dart
rename to tests/language_strong/built_in_identifier_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/built_in_identifier_test.dart b/tests/language_strong/built_in_identifier_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/built_in_identifier_test.dart
rename to tests/language_strong/built_in_identifier_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_argument_inference_test.dart b/tests/language_strong/call_argument_inference_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_argument_inference_test.dart
rename to tests/language_strong/call_argument_inference_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_closurization_test.dart b/tests/language_strong/call_closurization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_closurization_test.dart
rename to tests/language_strong/call_closurization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_constructor_on_unresolvable_class_test.dart b/tests/language_strong/call_constructor_on_unresolvable_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_constructor_on_unresolvable_class_test.dart
rename to tests/language_strong/call_constructor_on_unresolvable_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_function2_test.dart b/tests/language_strong/call_function2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_function2_test.dart
rename to tests/language_strong/call_function2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_function_apply_test.dart b/tests/language_strong/call_function_apply_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_function_apply_test.dart
rename to tests/language_strong/call_function_apply_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_function_test.dart b/tests/language_strong/call_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_function_test.dart
rename to tests/language_strong/call_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_non_method_field_test.dart b/tests/language_strong/call_non_method_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_non_method_field_test.dart
rename to tests/language_strong/call_non_method_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_nonexistent_constructor_test.dart b/tests/language_strong/call_nonexistent_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_nonexistent_constructor_test.dart
rename to tests/language_strong/call_nonexistent_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_nonexistent_static_test.dart b/tests/language_strong/call_nonexistent_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_nonexistent_static_test.dart
rename to tests/language_strong/call_nonexistent_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_operator_test.dart b/tests/language_strong/call_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_operator_test.dart
rename to tests/language_strong/call_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_property_test.dart b/tests/language_strong/call_property_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_property_test.dart
rename to tests/language_strong/call_property_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_test.dart b/tests/language_strong/call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_test.dart
rename to tests/language_strong/call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_this_test.dart b/tests/language_strong/call_this_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_this_test.dart
rename to tests/language_strong/call_this_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_through_getter_test.dart b/tests/language_strong/call_through_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_through_getter_test.dart
rename to tests/language_strong/call_through_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_through_null_getter_test.dart b/tests/language_strong/call_through_null_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_through_null_getter_test.dart
rename to tests/language_strong/call_through_null_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_type_literal_test.dart b/tests/language_strong/call_type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_type_literal_test.dart
rename to tests/language_strong/call_type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/call_with_no_such_method_test.dart b/tests/language_strong/call_with_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/call_with_no_such_method_test.dart
rename to tests/language_strong/call_with_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/callable_test.dart b/tests/language_strong/callable_test.dart
similarity index 87%
rename from pkg/dev_compiler/test/codegen/language/callable_test.dart
rename to tests/language_strong/callable_test.dart
index 57e7ffb..7865d20 100644
--- a/pkg/dev_compiler/test/codegen/language/callable_test.dart
+++ b/tests/language_strong/callable_test.dart
@@ -8,6 +8,10 @@
   call() => 42;
 }
 
+class XX extends X {
+  XX.named();
+}
+
 class Y {
   call(int x) => 87 + x;
 
@@ -24,6 +28,7 @@
 
 typedef F(int x);
 typedef G(String y);
+typedef H();
 
 main() {
   X x = new X();
@@ -44,4 +49,10 @@
 
   Expect.equals(Y.staticMethod(6), 7);
   Expect.equals(Z.staticMethod(6), 7);
+
+  var xx = new XX.named();
+  Expect.equals(xx(), 42);
+
+  H xx2 = new XX.named();
+  Expect.equals(xx2(), 42);
 }
diff --git a/pkg/dev_compiler/test/codegen/language/canonical_const2_test.dart b/tests/language_strong/canonical_const2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/canonical_const2_test.dart
rename to tests/language_strong/canonical_const2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/canonical_const3_test.dart b/tests/language_strong/canonical_const3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/canonical_const3_test.dart
rename to tests/language_strong/canonical_const3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/canonical_const_test.dart b/tests/language_strong/canonical_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/canonical_const_test.dart
rename to tests/language_strong/canonical_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade2_test.dart b/tests/language_strong/cascade2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade2_test.dart
rename to tests/language_strong/cascade2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_2_test.dart b/tests/language_strong/cascade_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_2_test.dart
rename to tests/language_strong/cascade_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_in_expression_function_test.dart b/tests/language_strong/cascade_in_expression_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_in_expression_function_test.dart
rename to tests/language_strong/cascade_in_expression_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_in_initializer_list_test.dart b/tests/language_strong/cascade_in_initializer_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_in_initializer_list_test.dart
rename to tests/language_strong/cascade_in_initializer_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_nested_test.dart b/tests/language_strong/cascade_nested_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_nested_test.dart
rename to tests/language_strong/cascade_nested_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_precedence_test.dart b/tests/language_strong/cascade_precedence_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_precedence_test.dart
rename to tests/language_strong/cascade_precedence_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cascade_test.dart b/tests/language_strong/cascade_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cascade_test.dart
rename to tests/language_strong/cascade_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cast2_test.dart b/tests/language_strong/cast2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cast2_test.dart
rename to tests/language_strong/cast2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cast_test.dart b/tests/language_strong/cast_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cast_test.dart
rename to tests/language_strong/cast_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/catch_liveness_test.dart b/tests/language_strong/catch_liveness_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/catch_liveness_test.dart
rename to tests/language_strong/catch_liveness_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt1_deferred_lib.dart b/tests/language_strong/cha_deopt1_deferred_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt1_deferred_lib.dart
rename to tests/language_strong/cha_deopt1_deferred_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt1_lib.dart b/tests/language_strong/cha_deopt1_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt1_lib.dart
rename to tests/language_strong/cha_deopt1_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt1_test.dart b/tests/language_strong/cha_deopt1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt1_test.dart
rename to tests/language_strong/cha_deopt1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt2_deferred_lib.dart b/tests/language_strong/cha_deopt2_deferred_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt2_deferred_lib.dart
rename to tests/language_strong/cha_deopt2_deferred_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt2_lib.dart b/tests/language_strong/cha_deopt2_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt2_lib.dart
rename to tests/language_strong/cha_deopt2_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt2_test.dart b/tests/language_strong/cha_deopt2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt2_test.dart
rename to tests/language_strong/cha_deopt2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt3_deferred_lib.dart b/tests/language_strong/cha_deopt3_deferred_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt3_deferred_lib.dart
rename to tests/language_strong/cha_deopt3_deferred_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt3_lib.dart b/tests/language_strong/cha_deopt3_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt3_lib.dart
rename to tests/language_strong/cha_deopt3_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cha_deopt3_test.dart b/tests/language_strong/cha_deopt3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cha_deopt3_test.dart
rename to tests/language_strong/cha_deopt3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/char_escape_test.dart b/tests/language_strong/char_escape_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/char_escape_test.dart
rename to tests/language_strong/char_escape_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/check_member_static_test.dart b/tests/language_strong/check_member_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/check_member_static_test.dart
rename to tests/language_strong/check_member_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/check_method_override_test.dart b/tests/language_strong/check_method_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/check_method_override_test.dart
rename to tests/language_strong/check_method_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_covariant_overrides_test.dart b/tests/language_strong/checked_covariant_overrides_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_covariant_overrides_test.dart
rename to tests/language_strong/checked_covariant_overrides_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_mode_helper.dart b/tests/language_strong/checked_mode_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_mode_helper.dart
rename to tests/language_strong/checked_mode_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_null_test.dart b/tests/language_strong/checked_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_null_test.dart
rename to tests/language_strong/checked_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_setter2_test.dart b/tests/language_strong/checked_setter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_setter2_test.dart
rename to tests/language_strong/checked_setter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_setter3_test.dart b/tests/language_strong/checked_setter3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_setter3_test.dart
rename to tests/language_strong/checked_setter3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/checked_setter_test.dart b/tests/language_strong/checked_setter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/checked_setter_test.dart
rename to tests/language_strong/checked_setter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_codegen_test.dart b/tests/language_strong/class_codegen_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_codegen_test.dart
rename to tests/language_strong/class_codegen_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_cycle2_test.dart b/tests/language_strong/class_cycle2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_cycle2_test.dart
rename to tests/language_strong/class_cycle2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_cycle_test.dart b/tests/language_strong/class_cycle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_cycle_test.dart
rename to tests/language_strong/class_cycle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_keyword_test.dart b/tests/language_strong/class_keyword_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_keyword_test.dart
rename to tests/language_strong/class_keyword_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_literal_test.dart b/tests/language_strong/class_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_literal_test.dart
rename to tests/language_strong/class_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_override_test.dart b/tests/language_strong/class_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_override_test.dart
rename to tests/language_strong/class_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_syntax2_test.dart b/tests/language_strong/class_syntax2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_syntax2_test.dart
rename to tests/language_strong/class_syntax2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_syntax_test.dart b/tests/language_strong/class_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_syntax_test.dart
rename to tests/language_strong/class_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/class_test.dart b/tests/language_strong/class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/class_test.dart
rename to tests/language_strong/class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/classes_static_method_clash_test.dart b/tests/language_strong/classes_static_method_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/classes_static_method_clash_test.dart
rename to tests/language_strong/classes_static_method_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure2_test.dart b/tests/language_strong/closure2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure2_test.dart
rename to tests/language_strong/closure2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure3_test.dart b/tests/language_strong/closure3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure3_test.dart
rename to tests/language_strong/closure3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure4_test.dart b/tests/language_strong/closure4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure4_test.dart
rename to tests/language_strong/closure4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure5_test.dart b/tests/language_strong/closure5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure5_test.dart
rename to tests/language_strong/closure5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure6_test.dart b/tests/language_strong/closure6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure6_test.dart
rename to tests/language_strong/closure6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure7_test.dart b/tests/language_strong/closure7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure7_test.dart
rename to tests/language_strong/closure7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure8_test.dart b/tests/language_strong/closure8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure8_test.dart
rename to tests/language_strong/closure8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_break1_test.dart b/tests/language_strong/closure_break1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_break1_test.dart
rename to tests/language_strong/closure_break1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_break2_test.dart b/tests/language_strong/closure_break2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_break2_test.dart
rename to tests/language_strong/closure_break2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_break_test.dart b/tests/language_strong/closure_break_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_break_test.dart
rename to tests/language_strong/closure_break_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_call_wrong_argument_count_negative_test.dart b/tests/language_strong/closure_call_wrong_argument_count_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_call_wrong_argument_count_negative_test.dart
rename to tests/language_strong/closure_call_wrong_argument_count_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_cycles_test.dart b/tests/language_strong/closure_cycles_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_cycles_test.dart
rename to tests/language_strong/closure_cycles_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_in_constructor_test.dart b/tests/language_strong/closure_in_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_in_constructor_test.dart
rename to tests/language_strong/closure_in_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_in_field_initializer_test.dart b/tests/language_strong/closure_in_field_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_in_field_initializer_test.dart
rename to tests/language_strong/closure_in_field_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_in_initializer2_test.dart b/tests/language_strong/closure_in_initializer2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_in_initializer2_test.dart
rename to tests/language_strong/closure_in_initializer2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_in_initializer_test.dart b/tests/language_strong/closure_in_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_in_initializer_test.dart
rename to tests/language_strong/closure_in_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_internals_test.dart b/tests/language_strong/closure_internals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_internals_test.dart
rename to tests/language_strong/closure_internals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_parameter_types_test.dart b/tests/language_strong/closure_parameter_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_parameter_types_test.dart
rename to tests/language_strong/closure_parameter_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_self_reference_test.dart b/tests/language_strong/closure_self_reference_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_self_reference_test.dart
rename to tests/language_strong/closure_self_reference_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_shared_state_test.dart b/tests/language_strong/closure_shared_state_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_shared_state_test.dart
rename to tests/language_strong/closure_shared_state_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_side_effect_test.dart b/tests/language_strong/closure_side_effect_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_side_effect_test.dart
rename to tests/language_strong/closure_side_effect_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_test.dart b/tests/language_strong/closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_test.dart
rename to tests/language_strong/closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_type_test.dart b/tests/language_strong/closure_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_type_test.dart
rename to tests/language_strong/closure_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_type_variable_test.dart b/tests/language_strong/closure_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_type_variable_test.dart
rename to tests/language_strong/closure_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_type_variables_test.dart b/tests/language_strong/closure_type_variables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_type_variables_test.dart
rename to tests/language_strong/closure_type_variables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_variable_shadow_test.dart b/tests/language_strong/closure_variable_shadow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_variable_shadow_test.dart
rename to tests/language_strong/closure_variable_shadow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_with_super_field_test.dart b/tests/language_strong/closure_with_super_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_with_super_field_test.dart
rename to tests/language_strong/closure_with_super_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closure_with_super_send_test.dart b/tests/language_strong/closure_with_super_send_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closure_with_super_send_test.dart
rename to tests/language_strong/closure_with_super_send_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closures_initializer2_test.dart b/tests/language_strong/closures_initializer2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closures_initializer2_test.dart
rename to tests/language_strong/closures_initializer2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closures_initializer_test.dart b/tests/language_strong/closures_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closures_initializer_test.dart
rename to tests/language_strong/closures_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/closures_with_complex_params_test.dart b/tests/language_strong/closures_with_complex_params_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/closures_with_complex_params_test.dart
rename to tests/language_strong/closures_with_complex_params_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/code_after_try_is_executed_test.dart b/tests/language_strong/code_after_try_is_executed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/code_after_try_is_executed_test.dart
rename to tests/language_strong/code_after_try_is_executed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/code_motion_crash_test.dart b/tests/language_strong/code_motion_crash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/code_motion_crash_test.dart
rename to tests/language_strong/code_motion_crash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/comparison_test.dart b/tests/language_strong/comparison_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/comparison_test.dart
rename to tests/language_strong/comparison_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant10_test.dart b/tests/language_strong/compile_time_constant10_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant10_test.dart
rename to tests/language_strong/compile_time_constant10_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant11_test.dart b/tests/language_strong/compile_time_constant11_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant11_test.dart
rename to tests/language_strong/compile_time_constant11_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant12_test.dart b/tests/language_strong/compile_time_constant12_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant12_test.dart
rename to tests/language_strong/compile_time_constant12_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant13_test.dart b/tests/language_strong/compile_time_constant13_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant13_test.dart
rename to tests/language_strong/compile_time_constant13_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant2_test.dart b/tests/language_strong/compile_time_constant2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant2_test.dart
rename to tests/language_strong/compile_time_constant2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant3_test.dart b/tests/language_strong/compile_time_constant3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant3_test.dart
rename to tests/language_strong/compile_time_constant3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant5_test.dart b/tests/language_strong/compile_time_constant5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant5_test.dart
rename to tests/language_strong/compile_time_constant5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant6_test.dart b/tests/language_strong/compile_time_constant6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant6_test.dart
rename to tests/language_strong/compile_time_constant6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant7_test.dart b/tests/language_strong/compile_time_constant7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant7_test.dart
rename to tests/language_strong/compile_time_constant7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant8_test.dart b/tests/language_strong/compile_time_constant8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant8_test.dart
rename to tests/language_strong/compile_time_constant8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant9_test.dart b/tests/language_strong/compile_time_constant9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant9_test.dart
rename to tests/language_strong/compile_time_constant9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_a_test.dart b/tests/language_strong/compile_time_constant_a_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_a_test.dart
rename to tests/language_strong/compile_time_constant_a_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_arguments_test.dart b/tests/language_strong/compile_time_constant_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_arguments_test.dart
rename to tests/language_strong/compile_time_constant_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_b_test.dart b/tests/language_strong/compile_time_constant_b_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_b_test.dart
rename to tests/language_strong/compile_time_constant_b_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_c_test.dart b/tests/language_strong/compile_time_constant_c_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_c_test.dart
rename to tests/language_strong/compile_time_constant_c_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_checked2_test.dart b/tests/language_strong/compile_time_constant_checked2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_checked2_test.dart
rename to tests/language_strong/compile_time_constant_checked2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_checked3_test.dart b/tests/language_strong/compile_time_constant_checked3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_checked3_test.dart
rename to tests/language_strong/compile_time_constant_checked3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_checked4_test.dart b/tests/language_strong/compile_time_constant_checked4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_checked4_test.dart
rename to tests/language_strong/compile_time_constant_checked4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_checked5_test.dart b/tests/language_strong/compile_time_constant_checked5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_checked5_test.dart
rename to tests/language_strong/compile_time_constant_checked5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_checked_test.dart b/tests/language_strong/compile_time_constant_checked_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_checked_test.dart
rename to tests/language_strong/compile_time_constant_checked_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_d_test.dart b/tests/language_strong/compile_time_constant_d_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_d_test.dart
rename to tests/language_strong/compile_time_constant_d_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_e_test.dart b/tests/language_strong/compile_time_constant_e_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_e_test.dart
rename to tests/language_strong/compile_time_constant_e_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_f_test.dart b/tests/language_strong/compile_time_constant_f_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_f_test.dart
rename to tests/language_strong/compile_time_constant_f_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_g_test.dart b/tests/language_strong/compile_time_constant_g_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_g_test.dart
rename to tests/language_strong/compile_time_constant_g_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_h_test.dart b/tests/language_strong/compile_time_constant_h_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_h_test.dart
rename to tests/language_strong/compile_time_constant_h_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_i_test.dart b/tests/language_strong/compile_time_constant_i_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_i_test.dart
rename to tests/language_strong/compile_time_constant_i_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_j_test.dart b/tests/language_strong/compile_time_constant_j_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_j_test.dart
rename to tests/language_strong/compile_time_constant_j_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_k_test.dart b/tests/language_strong/compile_time_constant_k_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_k_test.dart
rename to tests/language_strong/compile_time_constant_k_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_l_test.dart b/tests/language_strong/compile_time_constant_l_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_l_test.dart
rename to tests/language_strong/compile_time_constant_l_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_m_test.dart b/tests/language_strong/compile_time_constant_m_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_m_test.dart
rename to tests/language_strong/compile_time_constant_m_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_n_test.dart b/tests/language_strong/compile_time_constant_n_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_n_test.dart
rename to tests/language_strong/compile_time_constant_n_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_o_test.dart b/tests/language_strong/compile_time_constant_o_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_o_test.dart
rename to tests/language_strong/compile_time_constant_o_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_p_test.dart b/tests/language_strong/compile_time_constant_p_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_p_test.dart
rename to tests/language_strong/compile_time_constant_p_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_q_test.dart b/tests/language_strong/compile_time_constant_q_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_q_test.dart
rename to tests/language_strong/compile_time_constant_q_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_r_test.dart b/tests/language_strong/compile_time_constant_r_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_r_test.dart
rename to tests/language_strong/compile_time_constant_r_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compile_time_constant_test.dart b/tests/language_strong/compile_time_constant_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compile_time_constant_test.dart
rename to tests/language_strong/compile_time_constant_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compiler_annotations.dart b/tests/language_strong/compiler_annotations.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compiler_annotations.dart
rename to tests/language_strong/compiler_annotations.dart
diff --git a/pkg/dev_compiler/test/codegen/language/compound_assignment_operator_test.dart b/tests/language_strong/compound_assignment_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/compound_assignment_operator_test.dart
rename to tests/language_strong/compound_assignment_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cond_expr_test.dart b/tests/language_strong/cond_expr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cond_expr_test.dart
rename to tests/language_strong/cond_expr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/condition_bailout_test.dart b/tests/language_strong/condition_bailout_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/condition_bailout_test.dart
rename to tests/language_strong/condition_bailout_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_access_helper.dart b/tests/language_strong/conditional_access_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_access_helper.dart
rename to tests/language_strong/conditional_access_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_method_invocation_test.dart b/tests/language_strong/conditional_method_invocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_method_invocation_test.dart
rename to tests/language_strong/conditional_method_invocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_property_access_test.dart b/tests/language_strong/conditional_property_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_property_access_test.dart
rename to tests/language_strong/conditional_property_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_property_assignment_test.dart b/tests/language_strong/conditional_property_assignment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_property_assignment_test.dart
rename to tests/language_strong/conditional_property_assignment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_property_increment_decrement_test.dart b/tests/language_strong/conditional_property_increment_decrement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_property_increment_decrement_test.dart
rename to tests/language_strong/conditional_property_increment_decrement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/conditional_rewrite_test.dart b/tests/language_strong/conditional_rewrite_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/conditional_rewrite_test.dart
rename to tests/language_strong/conditional_rewrite_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_conditional_test.dart b/tests/language_strong/const_conditional_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_conditional_test.dart
rename to tests/language_strong/const_conditional_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor2_test.dart b/tests/language_strong/const_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor2_test.dart
rename to tests/language_strong/const_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor3_test.dart b/tests/language_strong/const_constructor3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor3_test.dart
rename to tests/language_strong/const_constructor3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_mixin2_test.dart b/tests/language_strong/const_constructor_mixin2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_mixin2_test.dart
rename to tests/language_strong/const_constructor_mixin2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_mixin3_test.dart b/tests/language_strong/const_constructor_mixin3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_mixin3_test.dart
rename to tests/language_strong/const_constructor_mixin3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_mixin_test.dart b/tests/language_strong/const_constructor_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_mixin_test.dart
rename to tests/language_strong/const_constructor_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_nonconst_field_test.dart b/tests/language_strong/const_constructor_nonconst_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_nonconst_field_test.dart
rename to tests/language_strong/const_constructor_nonconst_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_super_test.dart b/tests/language_strong/const_constructor_super_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_super_test.dart
rename to tests/language_strong/const_constructor_super_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_syntax_test.dart b/tests/language_strong/const_constructor_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_syntax_test.dart
rename to tests/language_strong/const_constructor_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_constructor_test.dart b/tests/language_strong/const_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_constructor_test.dart
rename to tests/language_strong/const_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_counter_negative_test.dart b/tests/language_strong/const_counter_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_counter_negative_test.dart
rename to tests/language_strong/const_counter_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_dynamic_type_literal_test.dart b/tests/language_strong/const_dynamic_type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_dynamic_type_literal_test.dart
rename to tests/language_strong/const_dynamic_type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_error_multiply_initialized_test.dart b/tests/language_strong/const_error_multiply_initialized_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_error_multiply_initialized_test.dart
rename to tests/language_strong/const_error_multiply_initialized_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_escape_frog_test.dart b/tests/language_strong/const_escape_frog_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_escape_frog_test.dart
rename to tests/language_strong/const_escape_frog_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_evaluation_test.dart b/tests/language_strong/const_evaluation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_evaluation_test.dart
rename to tests/language_strong/const_evaluation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_factory_redirection_test.dart b/tests/language_strong/const_factory_redirection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_factory_redirection_test.dart
rename to tests/language_strong/const_factory_redirection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_factory_with_body_test.dart b/tests/language_strong/const_factory_with_body_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_factory_with_body_test.dart
rename to tests/language_strong/const_factory_with_body_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_global_test.dart b/tests/language_strong/const_global_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_global_test.dart
rename to tests/language_strong/const_global_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_init2_test.dart b/tests/language_strong/const_init2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_init2_test.dart
rename to tests/language_strong/const_init2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_init_test.dart b/tests/language_strong/const_init_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_init_test.dart
rename to tests/language_strong/const_init_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_instance_field_test.dart b/tests/language_strong/const_instance_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_instance_field_test.dart
rename to tests/language_strong/const_instance_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_list_test.dart b/tests/language_strong/const_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_list_test.dart
rename to tests/language_strong/const_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_local_test.dart b/tests/language_strong/const_local_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_local_test.dart
rename to tests/language_strong/const_local_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_locals_test.dart b/tests/language_strong/const_locals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_locals_test.dart
rename to tests/language_strong/const_locals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_map2_test.dart b/tests/language_strong/const_map2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_map2_test.dart
rename to tests/language_strong/const_map2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_map3_test.dart b/tests/language_strong/const_map3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_map3_test.dart
rename to tests/language_strong/const_map3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_map4_test.dart b/tests/language_strong/const_map4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_map4_test.dart
rename to tests/language_strong/const_map4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_map_test.dart b/tests/language_strong/const_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_map_test.dart
rename to tests/language_strong/const_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_named_test.dart b/tests/language_strong/const_named_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_named_test.dart
rename to tests/language_strong/const_named_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_native_factory_test.dart b/tests/language_strong/const_native_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_native_factory_test.dart
rename to tests/language_strong/const_native_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_nested_test.dart b/tests/language_strong/const_nested_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_nested_test.dart
rename to tests/language_strong/const_nested_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_objects_are_immutable_test.dart b/tests/language_strong/const_objects_are_immutable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_objects_are_immutable_test.dart
rename to tests/language_strong/const_objects_are_immutable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_optional_args_negative_test.dart b/tests/language_strong/const_optional_args_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_optional_args_negative_test.dart
rename to tests/language_strong/const_optional_args_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_redirecting_factory_test.dart b/tests/language_strong/const_redirecting_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_redirecting_factory_test.dart
rename to tests/language_strong/const_redirecting_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_string_test.dart b/tests/language_strong/const_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_string_test.dart
rename to tests/language_strong/const_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_switch2_test.dart b/tests/language_strong/const_switch2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_switch2_test.dart
rename to tests/language_strong/const_switch2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_switch_test.dart b/tests/language_strong/const_switch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_switch_test.dart
rename to tests/language_strong/const_switch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_syntax_test.dart b/tests/language_strong/const_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_syntax_test.dart
rename to tests/language_strong/const_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_test.dart b/tests/language_strong/const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_test.dart
rename to tests/language_strong/const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_types_test.dart b/tests/language_strong/const_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_types_test.dart
rename to tests/language_strong/const_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_var_helper.dart b/tests/language_strong/const_var_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_var_helper.dart
rename to tests/language_strong/const_var_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/const_var_test.dart b/tests/language_strong/const_var_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/const_var_test.dart
rename to tests/language_strong/const_var_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constant_fold_equals_test.dart b/tests/language_strong/constant_fold_equals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constant_fold_equals_test.dart
rename to tests/language_strong/constant_fold_equals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constant_locals_test.dart b/tests/language_strong/constant_locals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constant_locals_test.dart
rename to tests/language_strong/constant_locals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constant_propagation_phis_test.dart b/tests/language_strong/constant_propagation_phis_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constant_propagation_phis_test.dart
rename to tests/language_strong/constant_propagation_phis_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constant_string_interpolation_test.dart b/tests/language_strong/constant_string_interpolation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constant_string_interpolation_test.dart
rename to tests/language_strong/constant_string_interpolation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constant_type_literal_test.dart b/tests/language_strong/constant_type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constant_type_literal_test.dart
rename to tests/language_strong/constant_type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor10_test.dart b/tests/language_strong/constructor10_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor10_test.dart
rename to tests/language_strong/constructor10_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor11_test.dart b/tests/language_strong/constructor11_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor11_test.dart
rename to tests/language_strong/constructor11_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor12_test.dart b/tests/language_strong/constructor12_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor12_test.dart
rename to tests/language_strong/constructor12_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor2_test.dart b/tests/language_strong/constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor2_test.dart
rename to tests/language_strong/constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor3_negative_test.dart b/tests/language_strong/constructor3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor3_negative_test.dart
rename to tests/language_strong/constructor3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor3_test.dart b/tests/language_strong/constructor3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor3_test.dart
rename to tests/language_strong/constructor3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor4_test.dart b/tests/language_strong/constructor4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor4_test.dart
rename to tests/language_strong/constructor4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor5_test.dart b/tests/language_strong/constructor5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor5_test.dart
rename to tests/language_strong/constructor5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor6_test.dart b/tests/language_strong/constructor6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor6_test.dart
rename to tests/language_strong/constructor6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor7_test.dart b/tests/language_strong/constructor7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor7_test.dart
rename to tests/language_strong/constructor7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor8_test.dart b/tests/language_strong/constructor8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor8_test.dart
rename to tests/language_strong/constructor8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor9_test.dart b/tests/language_strong/constructor9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor9_test.dart
rename to tests/language_strong/constructor9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_body_test.dart b/tests/language_strong/constructor_body_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_body_test.dart
rename to tests/language_strong/constructor_body_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_call_as_function_test.dart b/tests/language_strong/constructor_call_as_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_call_as_function_test.dart
rename to tests/language_strong/constructor_call_as_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_call_wrong_argument_count_negative_test.dart b/tests/language_strong/constructor_call_wrong_argument_count_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_call_wrong_argument_count_negative_test.dart
rename to tests/language_strong/constructor_call_wrong_argument_count_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_default_test.dart b/tests/language_strong/constructor_default_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_default_test.dart
rename to tests/language_strong/constructor_default_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_duplicate_final_test.dart b/tests/language_strong/constructor_duplicate_final_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_duplicate_final_test.dart
rename to tests/language_strong/constructor_duplicate_final_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_duplicate_initializers_test.dart b/tests/language_strong/constructor_duplicate_initializers_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_duplicate_initializers_test.dart
rename to tests/language_strong/constructor_duplicate_initializers_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_initializer_test.dart b/tests/language_strong/constructor_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_initializer_test.dart
rename to tests/language_strong/constructor_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_name_clash_lib.dart b/tests/language_strong/constructor_name_clash_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_name_clash_lib.dart
rename to tests/language_strong/constructor_name_clash_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_name_clash_test.dart b/tests/language_strong/constructor_name_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_name_clash_test.dart
rename to tests/language_strong/constructor_name_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_name_test.dart b/tests/language_strong/constructor_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_name_test.dart
rename to tests/language_strong/constructor_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_named_arguments_test.dart b/tests/language_strong/constructor_named_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_named_arguments_test.dart
rename to tests/language_strong/constructor_named_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_redirect1_negative_test.dart b/tests/language_strong/constructor_redirect1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_redirect1_negative_test.dart
rename to tests/language_strong/constructor_redirect1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_redirect2_negative_test.dart b/tests/language_strong/constructor_redirect2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_redirect2_negative_test.dart
rename to tests/language_strong/constructor_redirect2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_redirect2_test.dart b/tests/language_strong/constructor_redirect2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_redirect2_test.dart
rename to tests/language_strong/constructor_redirect2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_redirect_test.dart b/tests/language_strong/constructor_redirect_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_redirect_test.dart
rename to tests/language_strong/constructor_redirect_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_return_test.dart b/tests/language_strong/constructor_return_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_return_test.dart
rename to tests/language_strong/constructor_return_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_setter_negative_test.dart b/tests/language_strong/constructor_setter_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_setter_negative_test.dart
rename to tests/language_strong/constructor_setter_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_test.dart b/tests/language_strong/constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_test.dart
rename to tests/language_strong/constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/constructor_with_mixin_test.dart b/tests/language_strong/constructor_with_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/constructor_with_mixin_test.dart
rename to tests/language_strong/constructor_with_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/context2_test.dart b/tests/language_strong/context2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/context2_test.dart
rename to tests/language_strong/context2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/context_args_with_defaults_test.dart b/tests/language_strong/context_args_with_defaults_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/context_args_with_defaults_test.dart
rename to tests/language_strong/context_args_with_defaults_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/context_test.dart b/tests/language_strong/context_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/context_test.dart
rename to tests/language_strong/context_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/continue_test.dart b/tests/language_strong/continue_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/continue_test.dart
rename to tests/language_strong/continue_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/core_type_check_test.dart b/tests/language_strong/core_type_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/core_type_check_test.dart
rename to tests/language_strong/core_type_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/crash_12118_test.dart b/tests/language_strong/crash_12118_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/crash_12118_test.dart
rename to tests/language_strong/crash_12118_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/crash_6725_part.dart b/tests/language_strong/crash_6725_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/crash_6725_part.dart
rename to tests/language_strong/crash_6725_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/crash_6725_test.dart b/tests/language_strong/crash_6725_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/crash_6725_test.dart
rename to tests/language_strong/crash_6725_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/create_unresolved_type_test.dart b/tests/language_strong/create_unresolved_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/create_unresolved_type_test.dart
rename to tests/language_strong/create_unresolved_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/critical_edge2_test.dart b/tests/language_strong/critical_edge2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/critical_edge2_test.dart
rename to tests/language_strong/critical_edge2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/critical_edge_test.dart b/tests/language_strong/critical_edge_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/critical_edge_test.dart
rename to tests/language_strong/critical_edge_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ct_const2_test.dart b/tests/language_strong/ct_const2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ct_const2_test.dart
rename to tests/language_strong/ct_const2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ct_const3_test.dart b/tests/language_strong/ct_const3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ct_const3_test.dart
rename to tests/language_strong/ct_const3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ct_const4_lib.dart b/tests/language_strong/ct_const4_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ct_const4_lib.dart
rename to tests/language_strong/ct_const4_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ct_const4_test.dart b/tests/language_strong/ct_const4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ct_const4_test.dart
rename to tests/language_strong/ct_const4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ct_const_test.dart b/tests/language_strong/ct_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ct_const_test.dart
rename to tests/language_strong/ct_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/custom_await_stack_trace_test.dart b/tests/language_strong/custom_await_stack_trace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/custom_await_stack_trace_test.dart
rename to tests/language_strong/custom_await_stack_trace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_class_member_test.dart b/tests/language_strong/cyclic_class_member_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_class_member_test.dart
rename to tests/language_strong/cyclic_class_member_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_constructor_test.dart b/tests/language_strong/cyclic_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_constructor_test.dart
rename to tests/language_strong/cyclic_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_default_values_test.dart b/tests/language_strong/cyclic_default_values_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_default_values_test.dart
rename to tests/language_strong/cyclic_default_values_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_import_test.dart b/tests/language_strong/cyclic_import_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_import_test.dart
rename to tests/language_strong/cyclic_import_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_metadata_test.dart b/tests/language_strong/cyclic_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_metadata_test.dart
rename to tests/language_strong/cyclic_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_type2_test.dart b/tests/language_strong/cyclic_type2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_type2_test.dart
rename to tests/language_strong/cyclic_type2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_type_test.dart b/tests/language_strong/cyclic_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_type_test.dart
rename to tests/language_strong/cyclic_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_type_variable_test.dart b/tests/language_strong/cyclic_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_type_variable_test.dart
rename to tests/language_strong/cyclic_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/cyclic_typedef_test.dart b/tests/language_strong/cyclic_typedef_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/cyclic_typedef_test.dart
rename to tests/language_strong/cyclic_typedef_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dangling_else_test.dart b/tests/language_strong/dangling_else_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dangling_else_test.dart
rename to tests/language_strong/dangling_else_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dead_field_access_test.dart b/tests/language_strong/dead_field_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dead_field_access_test.dart
rename to tests/language_strong/dead_field_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_class_implicit_constructor_test.dart b/tests/language_strong/default_class_implicit_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_class_implicit_constructor_test.dart
rename to tests/language_strong/default_class_implicit_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_factory2_test.dart b/tests/language_strong/default_factory2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_factory2_test.dart
rename to tests/language_strong/default_factory2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_factory3_test.dart b/tests/language_strong/default_factory3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_factory3_test.dart
rename to tests/language_strong/default_factory3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_factory_library.dart b/tests/language_strong/default_factory_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_factory_library.dart
rename to tests/language_strong/default_factory_library.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_factory_library_test.dart b/tests/language_strong/default_factory_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_factory_library_test.dart
rename to tests/language_strong/default_factory_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_factory_test.dart b/tests/language_strong/default_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_factory_test.dart
rename to tests/language_strong/default_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_implementation2_test.dart b/tests/language_strong/default_implementation2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_implementation2_test.dart
rename to tests/language_strong/default_implementation2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_implementation_test.dart b/tests/language_strong/default_implementation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_implementation_test.dart
rename to tests/language_strong/default_implementation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/default_init_test.dart b/tests/language_strong/default_init_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/default_init_test.dart
rename to tests/language_strong/default_init_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_call_empty_before_load_lib.dart b/tests/language_strong/deferred_call_empty_before_load_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_call_empty_before_load_lib.dart
rename to tests/language_strong/deferred_call_empty_before_load_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_call_empty_before_load_test.dart b/tests/language_strong/deferred_call_empty_before_load_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_call_empty_before_load_test.dart
rename to tests/language_strong/deferred_call_empty_before_load_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_closurize_load_library_lib.dart b/tests/language_strong/deferred_closurize_load_library_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_closurize_load_library_lib.dart
rename to tests/language_strong/deferred_closurize_load_library_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_closurize_load_library_test.dart b/tests/language_strong/deferred_closurize_load_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_closurize_load_library_test.dart
rename to tests/language_strong/deferred_closurize_load_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constant_list_lib.dart b/tests/language_strong/deferred_constant_list_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constant_list_lib.dart
rename to tests/language_strong/deferred_constant_list_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constant_list_test.dart b/tests/language_strong/deferred_constant_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constant_list_test.dart
rename to tests/language_strong/deferred_constant_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constraints_constants_lib.dart b/tests/language_strong/deferred_constraints_constants_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constraints_constants_lib.dart
rename to tests/language_strong/deferred_constraints_constants_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constraints_constants_test.dart b/tests/language_strong/deferred_constraints_constants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constraints_constants_test.dart
rename to tests/language_strong/deferred_constraints_constants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constraints_lib.dart b/tests/language_strong/deferred_constraints_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constraints_lib.dart
rename to tests/language_strong/deferred_constraints_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constraints_lib2.dart b/tests/language_strong/deferred_constraints_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constraints_lib2.dart
rename to tests/language_strong/deferred_constraints_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_constraints_type_annotation_test.dart b/tests/language_strong/deferred_constraints_type_annotation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_constraints_type_annotation_test.dart
rename to tests/language_strong/deferred_constraints_type_annotation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix1_test.dart b/tests/language_strong/deferred_duplicate_prefix1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix1_test.dart
rename to tests/language_strong/deferred_duplicate_prefix1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix2_test.dart b/tests/language_strong/deferred_duplicate_prefix2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix2_test.dart
rename to tests/language_strong/deferred_duplicate_prefix2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix3_test.dart b/tests/language_strong/deferred_duplicate_prefix3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_duplicate_prefix3_test.dart
rename to tests/language_strong/deferred_duplicate_prefix3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_function_type_lib.dart b/tests/language_strong/deferred_function_type_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_function_type_lib.dart
rename to tests/language_strong/deferred_function_type_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_function_type_test.dart b/tests/language_strong/deferred_function_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_function_type_test.dart
rename to tests/language_strong/deferred_function_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_global_lib.dart b/tests/language_strong/deferred_global_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_global_lib.dart
rename to tests/language_strong/deferred_global_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_global_test.dart b/tests/language_strong/deferred_global_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_global_test.dart
rename to tests/language_strong/deferred_global_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_inheritance_constraints_lib.dart b/tests/language_strong/deferred_inheritance_constraints_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_inheritance_constraints_lib.dart
rename to tests/language_strong/deferred_inheritance_constraints_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_inheritance_constraints_test.dart b/tests/language_strong/deferred_inheritance_constraints_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_inheritance_constraints_test.dart
rename to tests/language_strong/deferred_inheritance_constraints_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_inlined_test.dart b/tests/language_strong/deferred_inlined_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_inlined_test.dart
rename to tests/language_strong/deferred_inlined_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_constants.dart b/tests/language_strong/deferred_load_constants.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_constants.dart
rename to tests/language_strong/deferred_load_constants.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_constants_test.dart b/tests/language_strong/deferred_load_constants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_constants_test.dart
rename to tests/language_strong/deferred_load_constants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_inval_code_lib.dart b/tests/language_strong/deferred_load_inval_code_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_inval_code_lib.dart
rename to tests/language_strong/deferred_load_inval_code_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_inval_code_test.dart b/tests/language_strong/deferred_load_inval_code_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_inval_code_test.dart
rename to tests/language_strong/deferred_load_inval_code_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_library_wrong_args_lib.dart b/tests/language_strong/deferred_load_library_wrong_args_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_library_wrong_args_lib.dart
rename to tests/language_strong/deferred_load_library_wrong_args_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_load_library_wrong_args_test.dart b/tests/language_strong/deferred_load_library_wrong_args_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_load_library_wrong_args_test.dart
rename to tests/language_strong/deferred_load_library_wrong_args_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_mixin_lib1.dart b/tests/language_strong/deferred_mixin_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_mixin_lib1.dart
rename to tests/language_strong/deferred_mixin_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_mixin_lib2.dart b/tests/language_strong/deferred_mixin_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_mixin_lib2.dart
rename to tests/language_strong/deferred_mixin_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_mixin_shared.dart b/tests/language_strong/deferred_mixin_shared.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_mixin_shared.dart
rename to tests/language_strong/deferred_mixin_shared.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_mixin_test.dart b/tests/language_strong/deferred_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_mixin_test.dart
rename to tests/language_strong/deferred_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_no_prefix_test.dart b/tests/language_strong/deferred_no_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_no_prefix_test.dart
rename to tests/language_strong/deferred_no_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_no_such_method_lib.dart b/tests/language_strong/deferred_no_such_method_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_no_such_method_lib.dart
rename to tests/language_strong/deferred_no_such_method_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_no_such_method_test.dart b/tests/language_strong/deferred_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_no_such_method_test.dart
rename to tests/language_strong/deferred_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_not_loaded_check_lib.dart b/tests/language_strong/deferred_not_loaded_check_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_not_loaded_check_lib.dart
rename to tests/language_strong/deferred_not_loaded_check_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_not_loaded_check_test.dart b/tests/language_strong/deferred_not_loaded_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_not_loaded_check_test.dart
rename to tests/language_strong/deferred_not_loaded_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_only_constant_lib.dart b/tests/language_strong/deferred_only_constant_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_only_constant_lib.dart
rename to tests/language_strong/deferred_only_constant_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_only_constant_test.dart b/tests/language_strong/deferred_only_constant_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_only_constant_test.dart
rename to tests/language_strong/deferred_only_constant_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_optimized_test.dart b/tests/language_strong/deferred_optimized_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_optimized_test.dart
rename to tests/language_strong/deferred_optimized_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_prefix_constraints_lib.dart b/tests/language_strong/deferred_prefix_constraints_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_prefix_constraints_lib.dart
rename to tests/language_strong/deferred_prefix_constraints_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_prefix_constraints_lib2.dart b/tests/language_strong/deferred_prefix_constraints_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_prefix_constraints_lib2.dart
rename to tests/language_strong/deferred_prefix_constraints_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_lib1.dart b/tests/language_strong/deferred_redirecting_factory_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_lib1.dart
rename to tests/language_strong/deferred_redirecting_factory_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_lib2.dart b/tests/language_strong/deferred_redirecting_factory_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_lib2.dart
rename to tests/language_strong/deferred_redirecting_factory_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_test.dart b/tests/language_strong/deferred_redirecting_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_redirecting_factory_test.dart
rename to tests/language_strong/deferred_redirecting_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_regression_22995_lib.dart b/tests/language_strong/deferred_regression_22995_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_regression_22995_lib.dart
rename to tests/language_strong/deferred_regression_22995_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_regression_22995_test.dart b/tests/language_strong/deferred_regression_22995_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_regression_22995_test.dart
rename to tests/language_strong/deferred_regression_22995_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shadow_load_library_lib.dart b/tests/language_strong/deferred_shadow_load_library_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shadow_load_library_lib.dart
rename to tests/language_strong/deferred_shadow_load_library_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shadow_load_library_test.dart b/tests/language_strong/deferred_shadow_load_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shadow_load_library_test.dart
rename to tests/language_strong/deferred_shadow_load_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib1.dart b/tests/language_strong/deferred_shared_and_unshared_classes_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib1.dart
rename to tests/language_strong/deferred_shared_and_unshared_classes_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib2.dart b/tests/language_strong/deferred_shared_and_unshared_classes_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib2.dart
rename to tests/language_strong/deferred_shared_and_unshared_classes_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib_shared.dart b/tests/language_strong/deferred_shared_and_unshared_classes_lib_shared.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_lib_shared.dart
rename to tests/language_strong/deferred_shared_and_unshared_classes_lib_shared.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_test.dart b/tests/language_strong/deferred_shared_and_unshared_classes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_shared_and_unshared_classes_test.dart
rename to tests/language_strong/deferred_shared_and_unshared_classes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_static_seperate_lib1.dart b/tests/language_strong/deferred_static_seperate_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_static_seperate_lib1.dart
rename to tests/language_strong/deferred_static_seperate_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_static_seperate_lib2.dart b/tests/language_strong/deferred_static_seperate_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_static_seperate_lib2.dart
rename to tests/language_strong/deferred_static_seperate_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_static_seperate_test.dart b/tests/language_strong/deferred_static_seperate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_static_seperate_test.dart
rename to tests/language_strong/deferred_static_seperate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib1.dart b/tests/language_strong/deferred_type_dependency_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib1.dart
rename to tests/language_strong/deferred_type_dependency_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib2.dart b/tests/language_strong/deferred_type_dependency_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib2.dart
rename to tests/language_strong/deferred_type_dependency_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib3.dart b/tests/language_strong/deferred_type_dependency_lib3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_type_dependency_lib3.dart
rename to tests/language_strong/deferred_type_dependency_lib3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deferred_type_dependency_test.dart b/tests/language_strong/deferred_type_dependency_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deferred_type_dependency_test.dart
rename to tests/language_strong/deferred_type_dependency_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deopt_inlined_function_lazy_test.dart b/tests/language_strong/deopt_inlined_function_lazy_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deopt_inlined_function_lazy_test.dart
rename to tests/language_strong/deopt_inlined_function_lazy_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deopt_inlined_function_test.dart b/tests/language_strong/deopt_inlined_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deopt_inlined_function_test.dart
rename to tests/language_strong/deopt_inlined_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deopt_lazy_finalization_test.dart b/tests/language_strong/deopt_lazy_finalization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deopt_lazy_finalization_test.dart
rename to tests/language_strong/deopt_lazy_finalization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deopt_no_feedback_test.dart b/tests/language_strong/deopt_no_feedback_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deopt_no_feedback_test.dart
rename to tests/language_strong/deopt_no_feedback_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deopt_smi_op_test.dart b/tests/language_strong/deopt_smi_op_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deopt_smi_op_test.dart
rename to tests/language_strong/deopt_smi_op_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/deoptimized_function_on_stack_test.dart b/tests/language_strong/deoptimized_function_on_stack_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/deoptimized_function_on_stack_test.dart
rename to tests/language_strong/deoptimized_function_on_stack_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/disassemble_test.dart b/tests/language_strong/disassemble_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/disassemble_test.dart
rename to tests/language_strong/disassemble_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/div_by_zero_test.dart b/tests/language_strong/div_by_zero_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/div_by_zero_test.dart
rename to tests/language_strong/div_by_zero_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/div_with_power_of_two2_test.dart b/tests/language_strong/div_with_power_of_two2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/div_with_power_of_two2_test.dart
rename to tests/language_strong/div_with_power_of_two2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/div_with_power_of_two_test.dart b/tests/language_strong/div_with_power_of_two_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/div_with_power_of_two_test.dart
rename to tests/language_strong/div_with_power_of_two_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/do_while2_test.dart b/tests/language_strong/do_while2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/do_while2_test.dart
rename to tests/language_strong/do_while2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/do_while3_test.dart b/tests/language_strong/do_while3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/do_while3_test.dart
rename to tests/language_strong/do_while3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/do_while4_test.dart b/tests/language_strong/do_while4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/do_while4_test.dart
rename to tests/language_strong/do_while4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/do_while_test.dart b/tests/language_strong/do_while_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/do_while_test.dart
rename to tests/language_strong/do_while_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_comparison_test.dart b/tests/language_strong/double_comparison_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_comparison_test.dart
rename to tests/language_strong/double_comparison_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_int_addition_test.dart b/tests/language_strong/double_int_addition_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_int_addition_test.dart
rename to tests/language_strong/double_int_addition_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_int_to_string_test.dart b/tests/language_strong/double_int_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_int_to_string_test.dart
rename to tests/language_strong/double_int_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_modulo_test.dart b/tests/language_strong/double_modulo_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_modulo_test.dart
rename to tests/language_strong/double_modulo_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_nan_comparison_test.dart b/tests/language_strong/double_nan_comparison_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_nan_comparison_test.dart
rename to tests/language_strong/double_nan_comparison_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential2_test.dart b/tests/language_strong/double_to_string_as_exponential2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential2_test.dart
rename to tests/language_strong/double_to_string_as_exponential2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential3_test.dart b/tests/language_strong/double_to_string_as_exponential3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential3_test.dart
rename to tests/language_strong/double_to_string_as_exponential3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential_test.dart b/tests/language_strong/double_to_string_as_exponential_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_exponential_test.dart
rename to tests/language_strong/double_to_string_as_exponential_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_fixed2_test.dart b/tests/language_strong/double_to_string_as_fixed2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_fixed2_test.dart
rename to tests/language_strong/double_to_string_as_fixed2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_fixed_test.dart b/tests/language_strong/double_to_string_as_fixed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_fixed_test.dart
rename to tests/language_strong/double_to_string_as_fixed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_precision2_test.dart b/tests/language_strong/double_to_string_as_precision2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_precision2_test.dart
rename to tests/language_strong/double_to_string_as_precision2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_precision3_test.dart b/tests/language_strong/double_to_string_as_precision3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_precision3_test.dart
rename to tests/language_strong/double_to_string_as_precision3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_as_precision_test.dart b/tests/language_strong/double_to_string_as_precision_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_as_precision_test.dart
rename to tests/language_strong/double_to_string_as_precision_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/double_to_string_test.dart b/tests/language_strong/double_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/double_to_string_test.dart
rename to tests/language_strong/double_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_constructor_test.dart b/tests/language_strong/duplicate_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_constructor_test.dart
rename to tests/language_strong/duplicate_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_export_liba.dart b/tests/language_strong/duplicate_export_liba.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_export_liba.dart
rename to tests/language_strong/duplicate_export_liba.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_export_negative_test.dart b/tests/language_strong/duplicate_export_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_export_negative_test.dart
rename to tests/language_strong/duplicate_export_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_export_test.dart b/tests/language_strong/duplicate_export_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_export_test.dart
rename to tests/language_strong/duplicate_export_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_implements_test.dart b/tests/language_strong/duplicate_implements_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_implements_test.dart
rename to tests/language_strong/duplicate_implements_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_import_liba.dart b/tests/language_strong/duplicate_import_liba.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_import_liba.dart
rename to tests/language_strong/duplicate_import_liba.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_import_libb.dart b/tests/language_strong/duplicate_import_libb.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_import_libb.dart
rename to tests/language_strong/duplicate_import_libb.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_import_libc.dart b/tests/language_strong/duplicate_import_libc.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_import_libc.dart
rename to tests/language_strong/duplicate_import_libc.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_import_libd.dart b/tests/language_strong/duplicate_import_libd.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_import_libd.dart
rename to tests/language_strong/duplicate_import_libd.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_import_prefix_test.dart b/tests/language_strong/duplicate_import_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_import_prefix_test.dart
rename to tests/language_strong/duplicate_import_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_interface_lib.dart b/tests/language_strong/duplicate_interface_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_interface_lib.dart
rename to tests/language_strong/duplicate_interface_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_interface_negative_test.dart b/tests/language_strong/duplicate_interface_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_interface_negative_test.dart
rename to tests/language_strong/duplicate_interface_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/duplicate_interface_test.dart b/tests/language_strong/duplicate_interface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/duplicate_interface_test.dart
rename to tests/language_strong/duplicate_interface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic2_test.dart b/tests/language_strong/dynamic2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic2_test.dart
rename to tests/language_strong/dynamic2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic_call_test.dart b/tests/language_strong/dynamic_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic_call_test.dart
rename to tests/language_strong/dynamic_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic_field_test.dart b/tests/language_strong/dynamic_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic_field_test.dart
rename to tests/language_strong/dynamic_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic_prefix_core_test.dart b/tests/language_strong/dynamic_prefix_core_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic_prefix_core_test.dart
rename to tests/language_strong/dynamic_prefix_core_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic_test.dart b/tests/language_strong/dynamic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic_test.dart
rename to tests/language_strong/dynamic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/dynamic_type_literal_test.dart b/tests/language_strong/dynamic_type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/dynamic_type_literal_test.dart
rename to tests/language_strong/dynamic_type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/emit_const_fields_test.dart b/tests/language_strong/emit_const_fields_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/emit_const_fields_test.dart
rename to tests/language_strong/emit_const_fields_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/empty_block_case_test.dart b/tests/language_strong/empty_block_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/empty_block_case_test.dart
rename to tests/language_strong/empty_block_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/empty_library.dart b/tests/language_strong/empty_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/empty_library.dart
rename to tests/language_strong/empty_library.dart
diff --git a/pkg/dev_compiler/test/codegen/language/empty_main.dart b/tests/language_strong/empty_main.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/empty_main.dart
rename to tests/language_strong/empty_main.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_duplicate_lib.dart b/tests/language_strong/enum_duplicate_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_duplicate_lib.dart
rename to tests/language_strong/enum_duplicate_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_duplicate_test.dart b/tests/language_strong/enum_duplicate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_duplicate_test.dart
rename to tests/language_strong/enum_duplicate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_index_test.dart b/tests/language_strong/enum_index_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_index_test.dart
rename to tests/language_strong/enum_index_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_is_keyword_test.dart b/tests/language_strong/enum_is_keyword_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_is_keyword_test.dart
rename to tests/language_strong/enum_is_keyword_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_mirror_test.dart b/tests/language_strong/enum_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_mirror_test.dart
rename to tests/language_strong/enum_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_private_lib.dart b/tests/language_strong/enum_private_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_private_lib.dart
rename to tests/language_strong/enum_private_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_private_test.dart b/tests/language_strong/enum_private_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_private_test.dart
rename to tests/language_strong/enum_private_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_syntax_test.dart b/tests/language_strong/enum_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_syntax_test.dart
rename to tests/language_strong/enum_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_test.dart b/tests/language_strong/enum_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_test.dart
rename to tests/language_strong/enum_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/enum_value_name_test.dart b/tests/language_strong/enum_value_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/enum_value_name_test.dart
rename to tests/language_strong/enum_value_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/equality_test.dart b/tests/language_strong/equality_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/equality_test.dart
rename to tests/language_strong/equality_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/error_stacktrace_test.dart b/tests/language_strong/error_stacktrace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/error_stacktrace_test.dart
rename to tests/language_strong/error_stacktrace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/evaluation_redirecting_constructor_test.dart b/tests/language_strong/evaluation_redirecting_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/evaluation_redirecting_constructor_test.dart
rename to tests/language_strong/evaluation_redirecting_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/example_constructor_test.dart b/tests/language_strong/example_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/example_constructor_test.dart
rename to tests/language_strong/example_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/exception_identity_test.dart b/tests/language_strong/exception_identity_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/exception_identity_test.dart
rename to tests/language_strong/exception_identity_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/exception_in_increment_test.dart b/tests/language_strong/exception_in_increment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/exception_in_increment_test.dart
rename to tests/language_strong/exception_in_increment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/exception_test.dart b/tests/language_strong/exception_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/exception_test.dart
rename to tests/language_strong/exception_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally10_test.dart b/tests/language_strong/execute_finally10_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally10_test.dart
rename to tests/language_strong/execute_finally10_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally11_test.dart b/tests/language_strong/execute_finally11_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally11_test.dart
rename to tests/language_strong/execute_finally11_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally12_test.dart b/tests/language_strong/execute_finally12_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally12_test.dart
rename to tests/language_strong/execute_finally12_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally1_test.dart b/tests/language_strong/execute_finally1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally1_test.dart
rename to tests/language_strong/execute_finally1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally2_test.dart b/tests/language_strong/execute_finally2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally2_test.dart
rename to tests/language_strong/execute_finally2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally3_test.dart b/tests/language_strong/execute_finally3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally3_test.dart
rename to tests/language_strong/execute_finally3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally4_test.dart b/tests/language_strong/execute_finally4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally4_test.dart
rename to tests/language_strong/execute_finally4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally5_test.dart b/tests/language_strong/execute_finally5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally5_test.dart
rename to tests/language_strong/execute_finally5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally6_test.dart b/tests/language_strong/execute_finally6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally6_test.dart
rename to tests/language_strong/execute_finally6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally7_test.dart b/tests/language_strong/execute_finally7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally7_test.dart
rename to tests/language_strong/execute_finally7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally8_test.dart b/tests/language_strong/execute_finally8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally8_test.dart
rename to tests/language_strong/execute_finally8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/execute_finally9_test.dart b/tests/language_strong/execute_finally9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/execute_finally9_test.dart
rename to tests/language_strong/execute_finally9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/exhaustive_for_test.dart b/tests/language_strong/exhaustive_for_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/exhaustive_for_test.dart
rename to tests/language_strong/exhaustive_for_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/expect_test.dart b/tests/language_strong/expect_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/expect_test.dart
rename to tests/language_strong/expect_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export1_lib.dart b/tests/language_strong/export1_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export1_lib.dart
rename to tests/language_strong/export1_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_ambiguous_main_a.dart b/tests/language_strong/export_ambiguous_main_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_ambiguous_main_a.dart
rename to tests/language_strong/export_ambiguous_main_a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_ambiguous_main_b.dart b/tests/language_strong/export_ambiguous_main_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_ambiguous_main_b.dart
rename to tests/language_strong/export_ambiguous_main_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_ambiguous_main_negative_test.dart b/tests/language_strong/export_ambiguous_main_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_ambiguous_main_negative_test.dart
rename to tests/language_strong/export_ambiguous_main_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_cyclic_helper1.dart b/tests/language_strong/export_cyclic_helper1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_cyclic_helper1.dart
rename to tests/language_strong/export_cyclic_helper1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_cyclic_helper2.dart b/tests/language_strong/export_cyclic_helper2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_cyclic_helper2.dart
rename to tests/language_strong/export_cyclic_helper2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_cyclic_helper3.dart b/tests/language_strong/export_cyclic_helper3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_cyclic_helper3.dart
rename to tests/language_strong/export_cyclic_helper3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_cyclic_test.dart b/tests/language_strong/export_cyclic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_cyclic_test.dart
rename to tests/language_strong/export_cyclic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_double_same_main_test.dart b/tests/language_strong/export_double_same_main_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_double_same_main_test.dart
rename to tests/language_strong/export_double_same_main_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_helper1.dart b/tests/language_strong/export_helper1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_helper1.dart
rename to tests/language_strong/export_helper1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_helper2.dart b/tests/language_strong/export_helper2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_helper2.dart
rename to tests/language_strong/export_helper2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_helper3.dart b/tests/language_strong/export_helper3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_helper3.dart
rename to tests/language_strong/export_helper3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_helper4.dart b/tests/language_strong/export_helper4.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_helper4.dart
rename to tests/language_strong/export_helper4.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_main_override_test.dart b/tests/language_strong/export_main_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_main_override_test.dart
rename to tests/language_strong/export_main_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_main_test.dart b/tests/language_strong/export_main_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_main_test.dart
rename to tests/language_strong/export_main_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_order_helper1.dart b/tests/language_strong/export_order_helper1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_order_helper1.dart
rename to tests/language_strong/export_order_helper1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_order_helper2.dart b/tests/language_strong/export_order_helper2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_order_helper2.dart
rename to tests/language_strong/export_order_helper2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_order_test.dart b/tests/language_strong/export_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_order_test.dart
rename to tests/language_strong/export_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_private_test.dart b/tests/language_strong/export_private_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_private_test.dart
rename to tests/language_strong/export_private_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/export_test.dart b/tests/language_strong/export_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/export_test.dart
rename to tests/language_strong/export_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/extend_type_parameter2_negative_test.dart b/tests/language_strong/extend_type_parameter2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/extend_type_parameter2_negative_test.dart
rename to tests/language_strong/extend_type_parameter2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/extend_type_parameter_negative_test.dart b/tests/language_strong/extend_type_parameter_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/extend_type_parameter_negative_test.dart
rename to tests/language_strong/extend_type_parameter_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/extends_test.dart b/tests/language_strong/extends_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/extends_test.dart
rename to tests/language_strong/extends_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/extends_test_lib.dart b/tests/language_strong/extends_test_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/extends_test_lib.dart
rename to tests/language_strong/extends_test_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/external_test.dart b/tests/language_strong/external_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/external_test.dart
rename to tests/language_strong/external_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_equality_test.dart b/tests/language_strong/f_bounded_equality_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_equality_test.dart
rename to tests/language_strong/f_bounded_equality_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_quantification2_test.dart b/tests/language_strong/f_bounded_quantification2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_quantification2_test.dart
rename to tests/language_strong/f_bounded_quantification2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_quantification3_test.dart b/tests/language_strong/f_bounded_quantification3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_quantification3_test.dart
rename to tests/language_strong/f_bounded_quantification3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_quantification4_test.dart b/tests/language_strong/f_bounded_quantification4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_quantification4_test.dart
rename to tests/language_strong/f_bounded_quantification4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_quantification5_test.dart b/tests/language_strong/f_bounded_quantification5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_quantification5_test.dart
rename to tests/language_strong/f_bounded_quantification5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/f_bounded_quantification_test.dart b/tests/language_strong/f_bounded_quantification_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/f_bounded_quantification_test.dart
rename to tests/language_strong/f_bounded_quantification_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory1_test.dart b/tests/language_strong/factory1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory1_test.dart
rename to tests/language_strong/factory1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory2_negative_test.dart b/tests/language_strong/factory2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory2_negative_test.dart
rename to tests/language_strong/factory2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory2_test.dart b/tests/language_strong/factory2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory2_test.dart
rename to tests/language_strong/factory2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory3_negative_test.dart b/tests/language_strong/factory3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory3_negative_test.dart
rename to tests/language_strong/factory3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory3_test.dart b/tests/language_strong/factory3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory3_test.dart
rename to tests/language_strong/factory3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory4_test.dart b/tests/language_strong/factory4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory4_test.dart
rename to tests/language_strong/factory4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory5_test.dart b/tests/language_strong/factory5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory5_test.dart
rename to tests/language_strong/factory5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_arrow_test.dart b/tests/language_strong/factory_arrow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_arrow_test.dart
rename to tests/language_strong/factory_arrow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_implementation_test.dart b/tests/language_strong/factory_implementation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_implementation_test.dart
rename to tests/language_strong/factory_implementation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_negative_test.dart b/tests/language_strong/factory_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_negative_test.dart
rename to tests/language_strong/factory_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_redirection2_test.dart b/tests/language_strong/factory_redirection2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_redirection2_test.dart
rename to tests/language_strong/factory_redirection2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_redirection3_cyclic_test.dart b/tests/language_strong/factory_redirection3_cyclic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_redirection3_cyclic_test.dart
rename to tests/language_strong/factory_redirection3_cyclic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_redirection_test.dart b/tests/language_strong/factory_redirection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_redirection_test.dart
rename to tests/language_strong/factory_redirection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_return_type_checked_test.dart b/tests/language_strong/factory_return_type_checked_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_return_type_checked_test.dart
rename to tests/language_strong/factory_return_type_checked_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_test.dart b/tests/language_strong/factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_test.dart
rename to tests/language_strong/factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_type_parameter2_test.dart b/tests/language_strong/factory_type_parameter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_type_parameter2_test.dart
rename to tests/language_strong/factory_type_parameter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/factory_type_parameter_test.dart b/tests/language_strong/factory_type_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/factory_type_parameter_test.dart
rename to tests/language_strong/factory_type_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/failing_main.dart b/tests/language_strong/failing_main.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/failing_main.dart
rename to tests/language_strong/failing_main.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fannkuch_test.dart b/tests/language_strong/fannkuch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fannkuch_test.dart
rename to tests/language_strong/fannkuch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fast_method_extraction_test.dart b/tests/language_strong/fast_method_extraction_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fast_method_extraction_test.dart
rename to tests/language_strong/fast_method_extraction_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fauxverride_test.dart b/tests/language_strong/fauxverride_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fauxverride_test.dart
rename to tests/language_strong/fauxverride_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fibo_test.dart b/tests/language_strong/fibo_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fibo_test.dart
rename to tests/language_strong/fibo_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field1_negative_test.dart b/tests/language_strong/field1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field1_negative_test.dart
rename to tests/language_strong/field1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field2_negative_test.dart b/tests/language_strong/field2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field2_negative_test.dart
rename to tests/language_strong/field2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field3_negative_test.dart b/tests/language_strong/field3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field3_negative_test.dart
rename to tests/language_strong/field3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field3a_negative_test.dart b/tests/language_strong/field3a_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field3a_negative_test.dart
rename to tests/language_strong/field3a_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field4_negative_test.dart b/tests/language_strong/field4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field4_negative_test.dart
rename to tests/language_strong/field4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field5_negative_test.dart b/tests/language_strong/field5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field5_negative_test.dart
rename to tests/language_strong/field5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field6_negative_test.dart b/tests/language_strong/field6_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field6_negative_test.dart
rename to tests/language_strong/field6_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field6a_negative_test.dart b/tests/language_strong/field6a_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field6a_negative_test.dart
rename to tests/language_strong/field6a_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_decl_missing_var_type_test.dart b/tests/language_strong/field_decl_missing_var_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_decl_missing_var_type_test.dart
rename to tests/language_strong/field_decl_missing_var_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_increment_bailout_test.dart b/tests/language_strong/field_increment_bailout_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_increment_bailout_test.dart
rename to tests/language_strong/field_increment_bailout_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_inference_test.dart b/tests/language_strong/field_inference_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_inference_test.dart
rename to tests/language_strong/field_inference_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_initialization_order_test.dart b/tests/language_strong/field_initialization_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_initialization_order_test.dart
rename to tests/language_strong/field_initialization_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_method4_negative_test.dart b/tests/language_strong/field_method4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_method4_negative_test.dart
rename to tests/language_strong/field_method4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_method_test.dart b/tests/language_strong/field_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_method_test.dart
rename to tests/language_strong/field_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_optimization2_test.dart b/tests/language_strong/field_optimization2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_optimization2_test.dart
rename to tests/language_strong/field_optimization2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_optimization3_test.dart b/tests/language_strong/field_optimization3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_optimization3_test.dart
rename to tests/language_strong/field_optimization3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_optimization_test.dart b/tests/language_strong/field_optimization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_optimization_test.dart
rename to tests/language_strong/field_optimization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_override2_test.dart b/tests/language_strong/field_override2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_override2_test.dart
rename to tests/language_strong/field_override2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_override3_test.dart b/tests/language_strong/field_override3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_override3_test.dart
rename to tests/language_strong/field_override3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_override4_test.dart b/tests/language_strong/field_override4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_override4_test.dart
rename to tests/language_strong/field_override4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_override_test.dart b/tests/language_strong/field_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_override_test.dart
rename to tests/language_strong/field_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_parameter_test.dart b/tests/language_strong/field_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_parameter_test.dart
rename to tests/language_strong/field_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_super_access2_test.dart b/tests/language_strong/field_super_access2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_super_access2_test.dart
rename to tests/language_strong/field_super_access2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_super_access_test.dart b/tests/language_strong/field_super_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_super_access_test.dart
rename to tests/language_strong/field_super_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_test.dart b/tests/language_strong/field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_test.dart
rename to tests/language_strong/field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_type_check2_test.dart b/tests/language_strong/field_type_check2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_type_check2_test.dart
rename to tests/language_strong/field_type_check2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/field_type_check_test.dart b/tests/language_strong/field_type_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/field_type_check_test.dart
rename to tests/language_strong/field_type_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_field_initialization_order_test.dart b/tests/language_strong/final_field_initialization_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_field_initialization_order_test.dart
rename to tests/language_strong/final_field_initialization_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_field_override_test.dart b/tests/language_strong/final_field_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_field_override_test.dart
rename to tests/language_strong/final_field_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_for_in_variable_test.dart b/tests/language_strong/final_for_in_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_for_in_variable_test.dart
rename to tests/language_strong/final_for_in_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_is_not_const_test.dart b/tests/language_strong/final_is_not_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_is_not_const_test.dart
rename to tests/language_strong/final_is_not_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_param_test.dart b/tests/language_strong/final_param_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_param_test.dart
rename to tests/language_strong/final_param_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_super_field_set_test.dart b/tests/language_strong/final_super_field_set_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_super_field_set_test.dart
rename to tests/language_strong/final_super_field_set_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_syntax_test.dart b/tests/language_strong/final_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_syntax_test.dart
rename to tests/language_strong/final_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_used_in_try_test.dart b/tests/language_strong/final_used_in_try_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_used_in_try_test.dart
rename to tests/language_strong/final_used_in_try_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/final_variable_assignment_test.dart b/tests/language_strong/final_variable_assignment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/final_variable_assignment_test.dart
rename to tests/language_strong/final_variable_assignment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/finally_test.dart b/tests/language_strong/finally_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/finally_test.dart
rename to tests/language_strong/finally_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_constants_test.dart b/tests/language_strong/first_class_types_constants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_constants_test.dart
rename to tests/language_strong/first_class_types_constants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_lib1.dart b/tests/language_strong/first_class_types_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_lib1.dart
rename to tests/language_strong/first_class_types_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_lib2.dart b/tests/language_strong/first_class_types_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_lib2.dart
rename to tests/language_strong/first_class_types_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_libraries_test.dart b/tests/language_strong/first_class_types_libraries_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_libraries_test.dart
rename to tests/language_strong/first_class_types_libraries_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_literals_test.dart b/tests/language_strong/first_class_types_literals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_literals_test.dart
rename to tests/language_strong/first_class_types_literals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_class_types_test.dart b/tests/language_strong/first_class_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_class_types_test.dart
rename to tests/language_strong/first_class_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/first_test.dart b/tests/language_strong/first_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/first_test.dart
rename to tests/language_strong/first_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fixed_length_test.dart b/tests/language_strong/fixed_length_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fixed_length_test.dart
rename to tests/language_strong/fixed_length_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fixed_type_variable2_test.dart b/tests/language_strong/fixed_type_variable2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fixed_type_variable2_test.dart
rename to tests/language_strong/fixed_type_variable2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/fixed_type_variable_test.dart b/tests/language_strong/fixed_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/fixed_type_variable_test.dart
rename to tests/language_strong/fixed_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/flatten_test.dart b/tests/language_strong/flatten_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/flatten_test.dart
rename to tests/language_strong/flatten_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for2_test.dart b/tests/language_strong/for2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for2_test.dart
rename to tests/language_strong/for2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_in2_test.dart b/tests/language_strong/for_in2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_in2_test.dart
rename to tests/language_strong/for_in2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_in_side_effects_test.dart b/tests/language_strong/for_in_side_effects_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_in_side_effects_test.dart
rename to tests/language_strong/for_in_side_effects_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_in_test.dart b/tests/language_strong/for_in_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_in_test.dart
rename to tests/language_strong/for_in_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_inlining_test.dart b/tests/language_strong/for_inlining_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_inlining_test.dart
rename to tests/language_strong/for_inlining_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_test.dart b/tests/language_strong/for_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_test.dart
rename to tests/language_strong/for_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_variable_capture_test.dart b/tests/language_strong/for_variable_capture_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_variable_capture_test.dart
rename to tests/language_strong/for_variable_capture_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/for_without_condition_test.dart b/tests/language_strong/for_without_condition_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/for_without_condition_test.dart
rename to tests/language_strong/for_without_condition_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/forwarding_factory_constructor_default_values_test.dart b/tests/language_strong/forwarding_factory_constructor_default_values_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/forwarding_factory_constructor_default_values_test.dart
rename to tests/language_strong/forwarding_factory_constructor_default_values_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/full_stacktrace1_test.dart b/tests/language_strong/full_stacktrace1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/full_stacktrace1_test.dart
rename to tests/language_strong/full_stacktrace1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/full_stacktrace2_test.dart b/tests/language_strong/full_stacktrace2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/full_stacktrace2_test.dart
rename to tests/language_strong/full_stacktrace2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/full_stacktrace3_test.dart b/tests/language_strong/full_stacktrace3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/full_stacktrace3_test.dart
rename to tests/language_strong/full_stacktrace3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_argument_test.dart b/tests/language_strong/function_argument_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_argument_test.dart
rename to tests/language_strong/function_argument_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_field_test.dart b/tests/language_strong/function_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_field_test.dart
rename to tests/language_strong/function_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_getter_test.dart b/tests/language_strong/function_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_getter_test.dart
rename to tests/language_strong/function_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_literals2_test.dart b/tests/language_strong/function_literals2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_literals2_test.dart
rename to tests/language_strong/function_literals2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_literals_test.dart b/tests/language_strong/function_literals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_literals_test.dart
rename to tests/language_strong/function_literals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_malformed_result_type_test.dart b/tests/language_strong/function_malformed_result_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_malformed_result_type_test.dart
rename to tests/language_strong/function_malformed_result_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_propagation_test.dart b/tests/language_strong/function_propagation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_propagation_test.dart
rename to tests/language_strong/function_propagation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype0_test.dart b/tests/language_strong/function_subtype0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype0_test.dart
rename to tests/language_strong/function_subtype0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype1_test.dart b/tests/language_strong/function_subtype1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype1_test.dart
rename to tests/language_strong/function_subtype1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype2_test.dart b/tests/language_strong/function_subtype2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype2_test.dart
rename to tests/language_strong/function_subtype2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype3_test.dart b/tests/language_strong/function_subtype3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype3_test.dart
rename to tests/language_strong/function_subtype3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure0_test.dart b/tests/language_strong/function_subtype_bound_closure0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure0_test.dart
rename to tests/language_strong/function_subtype_bound_closure0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure1_test.dart b/tests/language_strong/function_subtype_bound_closure1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure1_test.dart
rename to tests/language_strong/function_subtype_bound_closure1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure2_test.dart b/tests/language_strong/function_subtype_bound_closure2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure2_test.dart
rename to tests/language_strong/function_subtype_bound_closure2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure3_test.dart b/tests/language_strong/function_subtype_bound_closure3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure3_test.dart
rename to tests/language_strong/function_subtype_bound_closure3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure4_test.dart b/tests/language_strong/function_subtype_bound_closure4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure4_test.dart
rename to tests/language_strong/function_subtype_bound_closure4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure5_test.dart b/tests/language_strong/function_subtype_bound_closure5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure5_test.dart
rename to tests/language_strong/function_subtype_bound_closure5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure5a_test.dart b/tests/language_strong/function_subtype_bound_closure5a_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure5a_test.dart
rename to tests/language_strong/function_subtype_bound_closure5a_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure6_test.dart b/tests/language_strong/function_subtype_bound_closure6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure6_test.dart
rename to tests/language_strong/function_subtype_bound_closure6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure7_test.dart b/tests/language_strong/function_subtype_bound_closure7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_bound_closure7_test.dart
rename to tests/language_strong/function_subtype_bound_closure7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_call0_test.dart b/tests/language_strong/function_subtype_call0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_call0_test.dart
rename to tests/language_strong/function_subtype_call0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_call1_test.dart b/tests/language_strong/function_subtype_call1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_call1_test.dart
rename to tests/language_strong/function_subtype_call1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_call2_test.dart b/tests/language_strong/function_subtype_call2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_call2_test.dart
rename to tests/language_strong/function_subtype_call2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_cast0_test.dart b/tests/language_strong/function_subtype_cast0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_cast0_test.dart
rename to tests/language_strong/function_subtype_cast0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_cast1_test.dart b/tests/language_strong/function_subtype_cast1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_cast1_test.dart
rename to tests/language_strong/function_subtype_cast1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_cast2_test.dart b/tests/language_strong/function_subtype_cast2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_cast2_test.dart
rename to tests/language_strong/function_subtype_cast2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_cast3_test.dart b/tests/language_strong/function_subtype_cast3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_cast3_test.dart
rename to tests/language_strong/function_subtype_cast3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_checked0_test.dart b/tests/language_strong/function_subtype_checked0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_checked0_test.dart
rename to tests/language_strong/function_subtype_checked0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_closure0_test.dart b/tests/language_strong/function_subtype_closure0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_closure0_test.dart
rename to tests/language_strong/function_subtype_closure0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_closure1_test.dart b/tests/language_strong/function_subtype_closure1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_closure1_test.dart
rename to tests/language_strong/function_subtype_closure1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_factory0_test.dart b/tests/language_strong/function_subtype_factory0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_factory0_test.dart
rename to tests/language_strong/function_subtype_factory0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_factory1_test.dart b/tests/language_strong/function_subtype_factory1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_factory1_test.dart
rename to tests/language_strong/function_subtype_factory1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_inline0_test.dart b/tests/language_strong/function_subtype_inline0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_inline0_test.dart
rename to tests/language_strong/function_subtype_inline0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_inline1_test.dart b/tests/language_strong/function_subtype_inline1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_inline1_test.dart
rename to tests/language_strong/function_subtype_inline1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_inline2_test.dart b/tests/language_strong/function_subtype_inline2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_inline2_test.dart
rename to tests/language_strong/function_subtype_inline2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local0_test.dart b/tests/language_strong/function_subtype_local0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local0_test.dart
rename to tests/language_strong/function_subtype_local0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local1_test.dart b/tests/language_strong/function_subtype_local1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local1_test.dart
rename to tests/language_strong/function_subtype_local1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local2_test.dart b/tests/language_strong/function_subtype_local2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local2_test.dart
rename to tests/language_strong/function_subtype_local2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local3_test.dart b/tests/language_strong/function_subtype_local3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local3_test.dart
rename to tests/language_strong/function_subtype_local3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local4_test.dart b/tests/language_strong/function_subtype_local4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local4_test.dart
rename to tests/language_strong/function_subtype_local4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local5_test.dart b/tests/language_strong/function_subtype_local5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local5_test.dart
rename to tests/language_strong/function_subtype_local5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_local6_test.dart b/tests/language_strong/function_subtype_local6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_local6_test.dart
rename to tests/language_strong/function_subtype_local6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_named1_test.dart b/tests/language_strong/function_subtype_named1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_named1_test.dart
rename to tests/language_strong/function_subtype_named1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_named2_test.dart b/tests/language_strong/function_subtype_named2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_named2_test.dart
rename to tests/language_strong/function_subtype_named2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_not0_test.dart b/tests/language_strong/function_subtype_not0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_not0_test.dart
rename to tests/language_strong/function_subtype_not0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_not1_test.dart b/tests/language_strong/function_subtype_not1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_not1_test.dart
rename to tests/language_strong/function_subtype_not1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_not2_test.dart b/tests/language_strong/function_subtype_not2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_not2_test.dart
rename to tests/language_strong/function_subtype_not2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_not3_test.dart b/tests/language_strong/function_subtype_not3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_not3_test.dart
rename to tests/language_strong/function_subtype_not3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_null.dart b/tests/language_strong/function_subtype_null.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_null.dart
rename to tests/language_strong/function_subtype_null.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_optional1_test.dart b/tests/language_strong/function_subtype_optional1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_optional1_test.dart
rename to tests/language_strong/function_subtype_optional1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_optional2_test.dart b/tests/language_strong/function_subtype_optional2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_optional2_test.dart
rename to tests/language_strong/function_subtype_optional2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_regression_ddc_588_test.dart b/tests/language_strong/function_subtype_regression_ddc_588_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_regression_ddc_588_test.dart
rename to tests/language_strong/function_subtype_regression_ddc_588_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_setter0_test.dart b/tests/language_strong/function_subtype_setter0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_setter0_test.dart
rename to tests/language_strong/function_subtype_setter0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_simple0_test.dart b/tests/language_strong/function_subtype_simple0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_simple0_test.dart
rename to tests/language_strong/function_subtype_simple0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_simple1_test.dart b/tests/language_strong/function_subtype_simple1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_simple1_test.dart
rename to tests/language_strong/function_subtype_simple1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_simple2_test.dart b/tests/language_strong/function_subtype_simple2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_simple2_test.dart
rename to tests/language_strong/function_subtype_simple2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_top_level0_test.dart b/tests/language_strong/function_subtype_top_level0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_top_level0_test.dart
rename to tests/language_strong/function_subtype_top_level0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_top_level1_test.dart b/tests/language_strong/function_subtype_top_level1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_top_level1_test.dart
rename to tests/language_strong/function_subtype_top_level1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_typearg0_test.dart b/tests/language_strong/function_subtype_typearg0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_typearg0_test.dart
rename to tests/language_strong/function_subtype_typearg0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_typearg1_test.dart b/tests/language_strong/function_subtype_typearg1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_typearg1_test.dart
rename to tests/language_strong/function_subtype_typearg1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_typearg2_test.dart b/tests/language_strong/function_subtype_typearg2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_typearg2_test.dart
rename to tests/language_strong/function_subtype_typearg2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_typearg3_test.dart b/tests/language_strong/function_subtype_typearg3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_typearg3_test.dart
rename to tests/language_strong/function_subtype_typearg3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_subtype_typearg4_test.dart b/tests/language_strong/function_subtype_typearg4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_subtype_typearg4_test.dart
rename to tests/language_strong/function_subtype_typearg4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_syntax_test.dart b/tests/language_strong/function_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_syntax_test.dart
rename to tests/language_strong/function_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_test.dart b/tests/language_strong/function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_test.dart
rename to tests/language_strong/function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type2_test.dart b/tests/language_strong/function_type2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type2_test.dart
rename to tests/language_strong/function_type2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type3_test.dart b/tests/language_strong/function_type3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type3_test.dart
rename to tests/language_strong/function_type3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias2_test.dart b/tests/language_strong/function_type_alias2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias2_test.dart
rename to tests/language_strong/function_type_alias2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias3_test.dart b/tests/language_strong/function_type_alias3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias3_test.dart
rename to tests/language_strong/function_type_alias3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias4_test.dart b/tests/language_strong/function_type_alias4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias4_test.dart
rename to tests/language_strong/function_type_alias4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias5_test.dart b/tests/language_strong/function_type_alias5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias5_test.dart
rename to tests/language_strong/function_type_alias5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias6_test.dart b/tests/language_strong/function_type_alias6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias6_test.dart
rename to tests/language_strong/function_type_alias6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias7_test.dart b/tests/language_strong/function_type_alias7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias7_test.dart
rename to tests/language_strong/function_type_alias7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias8_test.dart b/tests/language_strong/function_type_alias8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias8_test.dart
rename to tests/language_strong/function_type_alias8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias9_test.dart b/tests/language_strong/function_type_alias9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias9_test.dart
rename to tests/language_strong/function_type_alias9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_alias_test.dart b/tests/language_strong/function_type_alias_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_alias_test.dart
rename to tests/language_strong/function_type_alias_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_call_getter2_test.dart b/tests/language_strong/function_type_call_getter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_call_getter2_test.dart
rename to tests/language_strong/function_type_call_getter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_call_getter_test.dart b/tests/language_strong/function_type_call_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_call_getter_test.dart
rename to tests/language_strong/function_type_call_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_parameter2_negative_test.dart b/tests/language_strong/function_type_parameter2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_parameter2_negative_test.dart
rename to tests/language_strong/function_type_parameter2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_parameter2_test.dart b/tests/language_strong/function_type_parameter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_parameter2_test.dart
rename to tests/language_strong/function_type_parameter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_parameter_negative_test.dart b/tests/language_strong/function_type_parameter_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_parameter_negative_test.dart
rename to tests/language_strong/function_type_parameter_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_parameter_test.dart b/tests/language_strong/function_type_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_parameter_test.dart
rename to tests/language_strong/function_type_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_test.dart b/tests/language_strong/function_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_test.dart
rename to tests/language_strong/function_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/function_type_this_parameter_test.dart b/tests/language_strong/function_type_this_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/function_type_this_parameter_test.dart
rename to tests/language_strong/function_type_this_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/gc_test.dart b/tests/language_strong/gc_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/gc_test.dart
rename to tests/language_strong/gc_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic2_test.dart b/tests/language_strong/generic2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic2_test.dart
rename to tests/language_strong/generic2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_async_star_test.dart b/tests/language_strong/generic_async_star_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_async_star_test.dart
rename to tests/language_strong/generic_async_star_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_async_test.dart b/tests/language_strong/generic_async_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_async_test.dart
rename to tests/language_strong/generic_async_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_closure_test.dart b/tests/language_strong/generic_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_closure_test.dart
rename to tests/language_strong/generic_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_constructor_mixin2_test.dart b/tests/language_strong/generic_constructor_mixin2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_constructor_mixin2_test.dart
rename to tests/language_strong/generic_constructor_mixin2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_constructor_mixin3_test.dart b/tests/language_strong/generic_constructor_mixin3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_constructor_mixin3_test.dart
rename to tests/language_strong/generic_constructor_mixin3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_constructor_mixin_test.dart b/tests/language_strong/generic_constructor_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_constructor_mixin_test.dart
rename to tests/language_strong/generic_constructor_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_creation_test.dart b/tests/language_strong/generic_creation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_creation_test.dart
rename to tests/language_strong/generic_creation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_deep_test.dart b/tests/language_strong/generic_deep_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_deep_test.dart
rename to tests/language_strong/generic_deep_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin2_test.dart b/tests/language_strong/generic_field_mixin2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin2_test.dart
rename to tests/language_strong/generic_field_mixin2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin3_test.dart b/tests/language_strong/generic_field_mixin3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin3_test.dart
rename to tests/language_strong/generic_field_mixin3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin4_test.dart b/tests/language_strong/generic_field_mixin4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin4_test.dart
rename to tests/language_strong/generic_field_mixin4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin5_test.dart b/tests/language_strong/generic_field_mixin5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin5_test.dart
rename to tests/language_strong/generic_field_mixin5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin6_test.dart b/tests/language_strong/generic_field_mixin6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin6_test.dart
rename to tests/language_strong/generic_field_mixin6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_field_mixin_test.dart b/tests/language_strong/generic_field_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_field_mixin_test.dart
rename to tests/language_strong/generic_field_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_inheritance_test.dart b/tests/language_strong/generic_inheritance_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_inheritance_test.dart
rename to tests/language_strong/generic_inheritance_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof.dart b/tests/language_strong/generic_instanceof.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof.dart
rename to tests/language_strong/generic_instanceof.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof2_test.dart b/tests/language_strong/generic_instanceof2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof2_test.dart
rename to tests/language_strong/generic_instanceof2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof3_test.dart b/tests/language_strong/generic_instanceof3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof3_test.dart
rename to tests/language_strong/generic_instanceof3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof4_test.dart b/tests/language_strong/generic_instanceof4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof4_test.dart
rename to tests/language_strong/generic_instanceof4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof5_test.dart b/tests/language_strong/generic_instanceof5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof5_test.dart
rename to tests/language_strong/generic_instanceof5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_instanceof_test.dart b/tests/language_strong/generic_instanceof_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_instanceof_test.dart
rename to tests/language_strong/generic_instanceof_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_is_check_test.dart b/tests/language_strong/generic_is_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_is_check_test.dart
rename to tests/language_strong/generic_is_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_list_checked_test.dart b/tests/language_strong/generic_list_checked_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_list_checked_test.dart
rename to tests/language_strong/generic_list_checked_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_native_test.dart b/tests/language_strong/generic_native_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_native_test.dart
rename to tests/language_strong/generic_native_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_object_type_test.dart b/tests/language_strong/generic_object_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_object_type_test.dart
rename to tests/language_strong/generic_object_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_parameterized_extends_test.dart b/tests/language_strong/generic_parameterized_extends_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_parameterized_extends_test.dart
rename to tests/language_strong/generic_parameterized_extends_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_self_reference_test.dart b/tests/language_strong/generic_self_reference_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_self_reference_test.dart
rename to tests/language_strong/generic_self_reference_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_sync_star_test.dart b/tests/language_strong/generic_sync_star_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_sync_star_test.dart
rename to tests/language_strong/generic_sync_star_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_syntax_test.dart b/tests/language_strong/generic_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_syntax_test.dart
rename to tests/language_strong/generic_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_tearoff_test.dart b/tests/language_strong/generic_tearoff_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_tearoff_test.dart
rename to tests/language_strong/generic_tearoff_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generic_test.dart b/tests/language_strong/generic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generic_test.dart
rename to tests/language_strong/generic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generics2_test.dart b/tests/language_strong/generics2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generics2_test.dart
rename to tests/language_strong/generics2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generics3_test.dart b/tests/language_strong/generics3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generics3_test.dart
rename to tests/language_strong/generics3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/generics_test.dart b/tests/language_strong/generics_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/generics_test.dart
rename to tests/language_strong/generics_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/get_set_syntax_test.dart b/tests/language_strong/get_set_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/get_set_syntax_test.dart
rename to tests/language_strong/get_set_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_closure_execution_order_test.dart b/tests/language_strong/getter_closure_execution_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_closure_execution_order_test.dart
rename to tests/language_strong/getter_closure_execution_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_declaration_negative_test.dart b/tests/language_strong/getter_declaration_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_declaration_negative_test.dart
rename to tests/language_strong/getter_declaration_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_no_setter2_test.dart b/tests/language_strong/getter_no_setter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_no_setter2_test.dart
rename to tests/language_strong/getter_no_setter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_no_setter_test.dart b/tests/language_strong/getter_no_setter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_no_setter_test.dart
rename to tests/language_strong/getter_no_setter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_override2_test.dart b/tests/language_strong/getter_override2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_override2_test.dart
rename to tests/language_strong/getter_override2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_override3_test.dart b/tests/language_strong/getter_override3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_override3_test.dart
rename to tests/language_strong/getter_override3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_override_test.dart b/tests/language_strong/getter_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_override_test.dart
rename to tests/language_strong/getter_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_parameters_test.dart b/tests/language_strong/getter_parameters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_parameters_test.dart
rename to tests/language_strong/getter_parameters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_in_lib.dart b/tests/language_strong/getter_setter_in_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_in_lib.dart
rename to tests/language_strong/getter_setter_in_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_in_lib2.dart b/tests/language_strong/getter_setter_in_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_in_lib2.dart
rename to tests/language_strong/getter_setter_in_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_in_lib3.dart b/tests/language_strong/getter_setter_in_lib3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_in_lib3.dart
rename to tests/language_strong/getter_setter_in_lib3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_in_lib_test.dart b/tests/language_strong/getter_setter_in_lib_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_in_lib_test.dart
rename to tests/language_strong/getter_setter_in_lib_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_interceptor_test.dart b/tests/language_strong/getter_setter_interceptor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_interceptor_test.dart
rename to tests/language_strong/getter_setter_interceptor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getter_setter_order_test.dart b/tests/language_strong/getter_setter_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getter_setter_order_test.dart
rename to tests/language_strong/getter_setter_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getters_setters2_test.dart b/tests/language_strong/getters_setters2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getters_setters2_test.dart
rename to tests/language_strong/getters_setters2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getters_setters_test.dart b/tests/language_strong/getters_setters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getters_setters_test.dart
rename to tests/language_strong/getters_setters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getters_setters_type2_test.dart b/tests/language_strong/getters_setters_type2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getters_setters_type2_test.dart
rename to tests/language_strong/getters_setters_type2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getters_setters_type3_test.dart b/tests/language_strong/getters_setters_type3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getters_setters_type3_test.dart
rename to tests/language_strong/getters_setters_type3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/getters_setters_type_test.dart b/tests/language_strong/getters_setters_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/getters_setters_type_test.dart
rename to tests/language_strong/getters_setters_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/guess_cid_test.dart b/tests/language_strong/guess_cid_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/guess_cid_test.dart
rename to tests/language_strong/guess_cid_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/gvn_field_access_test.dart b/tests/language_strong/gvn_field_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/gvn_field_access_test.dart
rename to tests/language_strong/gvn_field_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/gvn_interceptor_test.dart b/tests/language_strong/gvn_interceptor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/gvn_interceptor_test.dart
rename to tests/language_strong/gvn_interceptor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/gvn_test.dart b/tests/language_strong/gvn_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/gvn_test.dart
rename to tests/language_strong/gvn_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hash_code_mangling_test.dart b/tests/language_strong/hash_code_mangling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hash_code_mangling_test.dart
rename to tests/language_strong/hash_code_mangling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hash_map_null_key_foreach_test.dart b/tests/language_strong/hash_map_null_key_foreach_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hash_map_null_key_foreach_test.dart
rename to tests/language_strong/hash_map_null_key_foreach_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hashcode_dynamic_test.dart b/tests/language_strong/hashcode_dynamic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hashcode_dynamic_test.dart
rename to tests/language_strong/hashcode_dynamic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hello_dart_test.dart b/tests/language_strong/hello_dart_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hello_dart_test.dart
rename to tests/language_strong/hello_dart_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hello_script_lib.dart b/tests/language_strong/hello_script_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hello_script_lib.dart
rename to tests/language_strong/hello_script_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hello_script_lib_source.dart b/tests/language_strong/hello_script_lib_source.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hello_script_lib_source.dart
rename to tests/language_strong/hello_script_lib_source.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hello_script_test.dart b/tests/language_strong/hello_script_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hello_script_test.dart
rename to tests/language_strong/hello_script_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hidden_import_lib.dart b/tests/language_strong/hidden_import_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hidden_import_lib.dart
rename to tests/language_strong/hidden_import_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/hidden_import_test.dart b/tests/language_strong/hidden_import_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/hidden_import_test.dart
rename to tests/language_strong/hidden_import_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/identical_closure2_test.dart b/tests/language_strong/identical_closure2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/identical_closure2_test.dart
rename to tests/language_strong/identical_closure2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/identical_closure_test.dart b/tests/language_strong/identical_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/identical_closure_test.dart
rename to tests/language_strong/identical_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/identical_const_test.dart b/tests/language_strong/identical_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/identical_const_test.dart
rename to tests/language_strong/identical_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/identical_test.dart b/tests/language_strong/identical_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/identical_test.dart
rename to tests/language_strong/identical_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_and_test.dart b/tests/language_strong/if_and_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_and_test.dart
rename to tests/language_strong/if_and_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_assignment_behavior_test.dart b/tests/language_strong/if_null_assignment_behavior_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_assignment_behavior_test.dart
rename to tests/language_strong/if_null_assignment_behavior_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_assignment_helper.dart b/tests/language_strong/if_null_assignment_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_assignment_helper.dart
rename to tests/language_strong/if_null_assignment_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_assignment_static_test.dart b/tests/language_strong/if_null_assignment_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_assignment_static_test.dart
rename to tests/language_strong/if_null_assignment_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_behavior_test.dart b/tests/language_strong/if_null_behavior_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_behavior_test.dart
rename to tests/language_strong/if_null_behavior_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_evaluation_order_test.dart b/tests/language_strong/if_null_evaluation_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_evaluation_order_test.dart
rename to tests/language_strong/if_null_evaluation_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_null_precedence_test.dart b/tests/language_strong/if_null_precedence_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_null_precedence_test.dart
rename to tests/language_strong/if_null_precedence_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/if_test.dart b/tests/language_strong/if_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/if_test.dart
rename to tests/language_strong/if_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/illegal_declaration_test.dart b/tests/language_strong/illegal_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/illegal_declaration_test.dart
rename to tests/language_strong/illegal_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/illegal_initializer_test.dart b/tests/language_strong/illegal_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/illegal_initializer_test.dart
rename to tests/language_strong/illegal_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/illegal_invocation_lib.dart b/tests/language_strong/illegal_invocation_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/illegal_invocation_lib.dart
rename to tests/language_strong/illegal_invocation_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/illegal_invocation_test.dart b/tests/language_strong/illegal_invocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/illegal_invocation_test.dart
rename to tests/language_strong/illegal_invocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_closure1_test.dart b/tests/language_strong/implicit_closure1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_closure1_test.dart
rename to tests/language_strong/implicit_closure1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_closure2_test.dart b/tests/language_strong/implicit_closure2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_closure2_test.dart
rename to tests/language_strong/implicit_closure2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_closure_test.dart b/tests/language_strong/implicit_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_closure_test.dart
rename to tests/language_strong/implicit_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_scope_test.dart b/tests/language_strong/implicit_scope_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_scope_test.dart
rename to tests/language_strong/implicit_scope_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_super_constructor_call_test.dart b/tests/language_strong/implicit_super_constructor_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_super_constructor_call_test.dart
rename to tests/language_strong/implicit_super_constructor_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_super_constructor_test.dart b/tests/language_strong/implicit_super_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_super_constructor_test.dart
rename to tests/language_strong/implicit_super_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implicit_this_test.dart b/tests/language_strong/implicit_this_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implicit_this_test.dart
rename to tests/language_strong/implicit_this_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/implied_interface_test.dart b/tests/language_strong/implied_interface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/implied_interface_test.dart
rename to tests/language_strong/implied_interface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import1_lib.dart b/tests/language_strong/import1_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import1_lib.dart
rename to tests/language_strong/import1_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_collection_no_prefix_test.dart b/tests/language_strong/import_collection_no_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_collection_no_prefix_test.dart
rename to tests/language_strong/import_collection_no_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_combinators_negative_test.dart b/tests/language_strong/import_combinators_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_combinators_negative_test.dart
rename to tests/language_strong/import_combinators_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_combinators_part.dart b/tests/language_strong/import_combinators_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_combinators_part.dart
rename to tests/language_strong/import_combinators_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_combinators_test.dart b/tests/language_strong/import_combinators_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_combinators_test.dart
rename to tests/language_strong/import_combinators_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_core_no_prefix_test.dart b/tests/language_strong/import_core_no_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_core_no_prefix_test.dart
rename to tests/language_strong/import_core_no_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_core_prefix_test.dart b/tests/language_strong/import_core_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_core_prefix_test.dart
rename to tests/language_strong/import_core_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_core_test.dart b/tests/language_strong/import_core_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_core_test.dart
rename to tests/language_strong/import_core_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_private_test.dart b/tests/language_strong/import_private_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_private_test.dart
rename to tests/language_strong/import_private_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_self_test.dart b/tests/language_strong/import_self_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_self_test.dart
rename to tests/language_strong/import_self_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_show_lib.dart b/tests/language_strong/import_show_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_show_lib.dart
rename to tests/language_strong/import_show_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/import_show_test.dart b/tests/language_strong/import_show_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/import_show_test.dart
rename to tests/language_strong/import_show_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/incr_op_test.dart b/tests/language_strong/incr_op_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/incr_op_test.dart
rename to tests/language_strong/incr_op_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/index_test.dart b/tests/language_strong/index_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/index_test.dart
rename to tests/language_strong/index_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/indirect_const_null_test.dart b/tests/language_strong/indirect_const_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/indirect_const_null_test.dart
rename to tests/language_strong/indirect_const_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inference_captured_variable2_test.dart b/tests/language_strong/inference_captured_variable2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inference_captured_variable2_test.dart
rename to tests/language_strong/inference_captured_variable2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inference_captured_variable_test.dart b/tests/language_strong/inference_captured_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inference_captured_variable_test.dart
rename to tests/language_strong/inference_captured_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inference_list_or_null_test.dart b/tests/language_strong/inference_list_or_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inference_list_or_null_test.dart
rename to tests/language_strong/inference_list_or_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inference_mixin_field_test.dart b/tests/language_strong/inference_mixin_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inference_mixin_field_test.dart
rename to tests/language_strong/inference_mixin_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inference_super_constructor_call_test.dart b/tests/language_strong/inference_super_constructor_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inference_super_constructor_call_test.dart
rename to tests/language_strong/inference_super_constructor_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_closure_test.dart b/tests/language_strong/inferrer_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_closure_test.dart
rename to tests/language_strong/inferrer_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_constructor2_test.dart b/tests/language_strong/inferrer_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_constructor2_test.dart
rename to tests/language_strong/inferrer_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_constructor3_test.dart b/tests/language_strong/inferrer_constructor3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_constructor3_test.dart
rename to tests/language_strong/inferrer_constructor3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_constructor4_test.dart b/tests/language_strong/inferrer_constructor4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_constructor4_test.dart
rename to tests/language_strong/inferrer_constructor4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_constructor5_test.dart b/tests/language_strong/inferrer_constructor5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_constructor5_test.dart
rename to tests/language_strong/inferrer_constructor5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_constructor_test.dart b/tests/language_strong/inferrer_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_constructor_test.dart
rename to tests/language_strong/inferrer_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_named_parameter_test.dart b/tests/language_strong/inferrer_named_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_named_parameter_test.dart
rename to tests/language_strong/inferrer_named_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_synthesized_constructor_test.dart b/tests/language_strong/inferrer_synthesized_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_synthesized_constructor_test.dart
rename to tests/language_strong/inferrer_synthesized_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_synthesized_super_constructor2_test.dart b/tests/language_strong/inferrer_synthesized_super_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_synthesized_super_constructor2_test.dart
rename to tests/language_strong/inferrer_synthesized_super_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_synthesized_super_constructor_test.dart b/tests/language_strong/inferrer_synthesized_super_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_synthesized_super_constructor_test.dart
rename to tests/language_strong/inferrer_synthesized_super_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inferrer_this_access_test.dart b/tests/language_strong/inferrer_this_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inferrer_this_access_test.dart
rename to tests/language_strong/inferrer_this_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/infinite_switch_label_test.dart b/tests/language_strong/infinite_switch_label_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/infinite_switch_label_test.dart
rename to tests/language_strong/infinite_switch_label_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/infinity_test.dart b/tests/language_strong/infinity_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/infinity_test.dart
rename to tests/language_strong/infinity_test.dart
diff --git a/tests/language_strong/initializing_formal_access_test.dart b/tests/language_strong/initializing_formal_access_test.dart
new file mode 100644
index 0000000..71f445e
--- /dev/null
+++ b/tests/language_strong/initializing_formal_access_test.dart
@@ -0,0 +1,29 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+class C {
+  final int x;
+  final int y;
+
+  const C.constant(this.x) : y = x + 1;
+
+  C(this.x) : y = x + 1 {
+    int z = x + 2;
+    assert(z == y + 1);
+  }
+}
+
+main() {
+  C c = new C(2);
+  Expect.equals(c.x, 2);
+  Expect.equals(c.y, 3);
+  const C cc = const C.constant(4);
+  Expect.equals(cc.x, 4);
+  Expect.equals(cc.y, 5);
+}
diff --git a/tests/language_strong/initializing_formal_capture_test.dart b/tests/language_strong/initializing_formal_capture_test.dart
new file mode 100644
index 0000000..8257d4f
--- /dev/null
+++ b/tests/language_strong/initializing_formal_capture_test.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+class A {
+  var x, y;
+  A(this.x) : y = (() => x);
+}
+
+main() {
+  A a = new A(2);
+  a.x = 3;
+  Expect.equals(a.x, 3);
+  Expect.equals(a.y(), 2);
+}
diff --git a/tests/language_strong/initializing_formal_final_test.dart b/tests/language_strong/initializing_formal_final_test.dart
new file mode 100644
index 0000000..3df4ba5
--- /dev/null
+++ b/tests/language_strong/initializing_formal_final_test.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+class A {
+  var x, y;
+  // This should cause a warning because `x` is final when
+  // accessed as an initializing formal.
+  A(this.x) : y = (() { x = 3; });
+}
+
+main() {
+  A a = new A(2);
+  Expect.equals(a.x, 2);
+  Expect.throws(() => a.y(), (e) => e is NoSuchMethodError);
+}
diff --git a/tests/language_strong/initializing_formal_promotion_test.dart b/tests/language_strong/initializing_formal_promotion_test.dart
new file mode 100644
index 0000000..89ec79e
--- /dev/null
+++ b/tests/language_strong/initializing_formal_promotion_test.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+class B {}
+
+class A {
+  B x, y;
+  // Promotion occurs for the initializing formal because C <: B.
+  A(this.x) : y = (x is C) ? x.x : x;
+}
+
+class C extends A implements B {
+  C(B x) : super(x);
+}
+
+main() {
+  C c = new C(null);
+  C cc = new C(c);
+  Expect.equals(c.y, null);
+  Expect.equals(cc.y, null);
+}
diff --git a/tests/language_strong/initializing_formal_scope_test.dart b/tests/language_strong/initializing_formal_scope_test.dart
new file mode 100644
index 0000000..5544a8e
--- /dev/null
+++ b/tests/language_strong/initializing_formal_scope_test.dart
@@ -0,0 +1,26 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+// Duplicate definition checks for `this.x` will check the scopes associated
+// with the constructor, not all enclosing scopes; so this is not a conflict.
+var x;
+
+class A {
+  var x;
+  A(this.x) {
+    // In the body the field is in scope, not the initializing formal;
+    // so we can use the setter.
+    x += 1;
+  }
+}
+
+main() {
+  A a = new A(2);
+  Expect.equals(a.x, 3);
+}
diff --git a/tests/language_strong/initializing_formal_type_test.dart b/tests/language_strong/initializing_formal_type_test.dart
new file mode 100644
index 0000000..af44444
--- /dev/null
+++ b/tests/language_strong/initializing_formal_type_test.dart
@@ -0,0 +1,25 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--initializing-formal-access
+// VMOptions=--initializing-formal-access
+
+import "package:expect/expect.dart";
+
+class A {
+  num x;
+  double y;
+  // Finding the type of an initializing formal: should cause a warning
+  // in the initializer but not the body, because the former has type
+  // `int` and the latter has type `num`.
+  A(int this.x) : y = x {
+    y = x;
+  }
+}
+
+main() {
+  A a = new A(null);
+  Expect.equals(a.x, null);
+  Expect.equals(a.y, null);
+}
diff --git a/pkg/dev_compiler/test/codegen/language/inline_add_constants_to_initial_env_test.dart b/tests/language_strong/inline_add_constants_to_initial_env_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_add_constants_to_initial_env_test.dart
rename to tests/language_strong/inline_add_constants_to_initial_env_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_argument_test.dart b/tests/language_strong/inline_argument_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_argument_test.dart
rename to tests/language_strong/inline_argument_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_closure_with_constant_arguments_test.dart b/tests/language_strong/inline_closure_with_constant_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_closure_with_constant_arguments_test.dart
rename to tests/language_strong/inline_closure_with_constant_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_effect_context_test.dart b/tests/language_strong/inline_effect_context_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_effect_context_test.dart
rename to tests/language_strong/inline_effect_context_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_getter_test.dart b/tests/language_strong/inline_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_getter_test.dart
rename to tests/language_strong/inline_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_in_for_initializer_and_bailout_test.dart b/tests/language_strong/inline_in_for_initializer_and_bailout_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_in_for_initializer_and_bailout_test.dart
rename to tests/language_strong/inline_in_for_initializer_and_bailout_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_super_field_lib.dart b/tests/language_strong/inline_super_field_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_super_field_lib.dart
rename to tests/language_strong/inline_super_field_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_super_field_test.dart b/tests/language_strong/inline_super_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_super_field_test.dart
rename to tests/language_strong/inline_super_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_super_part.dart b/tests/language_strong/inline_super_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_super_part.dart
rename to tests/language_strong/inline_super_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_super_test.dart b/tests/language_strong/inline_super_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_super_test.dart
rename to tests/language_strong/inline_super_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_test.dart b/tests/language_strong/inline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_test.dart
rename to tests/language_strong/inline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_test_context_test.dart b/tests/language_strong/inline_test_context_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_test_context_test.dart
rename to tests/language_strong/inline_test_context_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inline_value_context_test.dart b/tests/language_strong/inline_value_context_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inline_value_context_test.dart
rename to tests/language_strong/inline_value_context_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inlined_conditional_test.dart b/tests/language_strong/inlined_conditional_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inlined_conditional_test.dart
rename to tests/language_strong/inlined_conditional_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inlined_throw_test.dart b/tests/language_strong/inlined_throw_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inlined_throw_test.dart
rename to tests/language_strong/inlined_throw_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inst_field_initializer1_negative_test.dart b/tests/language_strong/inst_field_initializer1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inst_field_initializer1_negative_test.dart
rename to tests/language_strong/inst_field_initializer1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/inst_field_initializer_test.dart b/tests/language_strong/inst_field_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/inst_field_initializer_test.dart
rename to tests/language_strong/inst_field_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_call_wrong_argument_count_negative_test.dart b/tests/language_strong/instance_call_wrong_argument_count_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_call_wrong_argument_count_negative_test.dart
rename to tests/language_strong/instance_call_wrong_argument_count_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_compound_assignment_operator_test.dart b/tests/language_strong/instance_compound_assignment_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_compound_assignment_operator_test.dart
rename to tests/language_strong/instance_compound_assignment_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_creation_in_function_annotation_test.dart b/tests/language_strong/instance_creation_in_function_annotation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_creation_in_function_annotation_test.dart
rename to tests/language_strong/instance_creation_in_function_annotation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_field_initializer_test.dart b/tests/language_strong/instance_field_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_field_initializer_test.dart
rename to tests/language_strong/instance_field_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_incr_deopt_test.dart b/tests/language_strong/instance_incr_deopt_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_incr_deopt_test.dart
rename to tests/language_strong/instance_incr_deopt_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_inline_test.dart b/tests/language_strong/instance_inline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_inline_test.dart
rename to tests/language_strong/instance_inline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_method2_negative_test.dart b/tests/language_strong/instance_method2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_method2_negative_test.dart
rename to tests/language_strong/instance_method2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instance_method_negative_test.dart b/tests/language_strong/instance_method_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instance_method_negative_test.dart
rename to tests/language_strong/instance_method_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instanceof2_test.dart b/tests/language_strong/instanceof2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instanceof2_test.dart
rename to tests/language_strong/instanceof2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instanceof3_test.dart b/tests/language_strong/instanceof3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instanceof3_test.dart
rename to tests/language_strong/instanceof3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instanceof4_test.dart b/tests/language_strong/instanceof4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instanceof4_test.dart
rename to tests/language_strong/instanceof4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instanceof_optimized_test.dart b/tests/language_strong/instanceof_optimized_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instanceof_optimized_test.dart
rename to tests/language_strong/instanceof_optimized_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instanceof_test.dart b/tests/language_strong/instanceof_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instanceof_test.dart
rename to tests/language_strong/instanceof_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/instantiate_type_variable_test.dart b/tests/language_strong/instantiate_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/instantiate_type_variable_test.dart
rename to tests/language_strong/instantiate_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/int2_test.dart b/tests/language_strong/int2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/int2_test.dart
rename to tests/language_strong/int2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/int_test.dart b/tests/language_strong/int_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/int_test.dart
rename to tests/language_strong/int_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/integer_division_by_zero_test.dart b/tests/language_strong/integer_division_by_zero_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/integer_division_by_zero_test.dart
rename to tests/language_strong/integer_division_by_zero_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor2_test.dart b/tests/language_strong/interceptor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor2_test.dart
rename to tests/language_strong/interceptor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor3_test.dart b/tests/language_strong/interceptor3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor3_test.dart
rename to tests/language_strong/interceptor3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor4_test.dart b/tests/language_strong/interceptor4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor4_test.dart
rename to tests/language_strong/interceptor4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor5_test.dart b/tests/language_strong/interceptor5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor5_test.dart
rename to tests/language_strong/interceptor5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor6_test.dart b/tests/language_strong/interceptor6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor6_test.dart
rename to tests/language_strong/interceptor6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor7_test.dart b/tests/language_strong/interceptor7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor7_test.dart
rename to tests/language_strong/interceptor7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor8_test.dart b/tests/language_strong/interceptor8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor8_test.dart
rename to tests/language_strong/interceptor8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor9_test.dart b/tests/language_strong/interceptor9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor9_test.dart
rename to tests/language_strong/interceptor9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interceptor_test.dart b/tests/language_strong/interceptor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interceptor_test.dart
rename to tests/language_strong/interceptor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface2_negative_test.dart b/tests/language_strong/interface2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface2_negative_test.dart
rename to tests/language_strong/interface2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_constants_test.dart b/tests/language_strong/interface_constants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_constants_test.dart
rename to tests/language_strong/interface_constants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_cycle_test.dart b/tests/language_strong/interface_cycle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_cycle_test.dart
rename to tests/language_strong/interface_cycle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_inherit_field_test.dart b/tests/language_strong/interface_inherit_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_inherit_field_test.dart
rename to tests/language_strong/interface_inherit_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_injection1_negative_test.dart b/tests/language_strong/interface_injection1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_injection1_negative_test.dart
rename to tests/language_strong/interface_injection1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_injection2_negative_test.dart b/tests/language_strong/interface_injection2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_injection2_negative_test.dart
rename to tests/language_strong/interface_injection2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_static_method_negative_test.dart b/tests/language_strong/interface_static_method_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_static_method_negative_test.dart
rename to tests/language_strong/interface_static_method_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_static_non_final_fields_negative_test.dart b/tests/language_strong/interface_static_non_final_fields_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_static_non_final_fields_negative_test.dart
rename to tests/language_strong/interface_static_non_final_fields_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/interface_test.dart b/tests/language_strong/interface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/interface_test.dart
rename to tests/language_strong/interface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/internal_library_test.dart b/tests/language_strong/internal_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/internal_library_test.dart
rename to tests/language_strong/internal_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/intrinsified_methods_test.dart b/tests/language_strong/intrinsified_methods_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/intrinsified_methods_test.dart
rename to tests/language_strong/intrinsified_methods_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/invocation_mirror2_test.dart b/tests/language_strong/invocation_mirror2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/invocation_mirror2_test.dart
rename to tests/language_strong/invocation_mirror2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/invocation_mirror_invoke_on2_test.dart b/tests/language_strong/invocation_mirror_invoke_on2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/invocation_mirror_invoke_on2_test.dart
rename to tests/language_strong/invocation_mirror_invoke_on2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/invocation_mirror_invoke_on_test.dart b/tests/language_strong/invocation_mirror_invoke_on_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/invocation_mirror_invoke_on_test.dart
rename to tests/language_strong/invocation_mirror_invoke_on_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/invocation_mirror_test.dart b/tests/language_strong/invocation_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/invocation_mirror_test.dart
rename to tests/language_strong/invocation_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_function_test.dart b/tests/language_strong/is_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_function_test.dart
rename to tests/language_strong/is_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_interfaces2_test.dart b/tests/language_strong/is_interfaces2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_interfaces2_test.dart
rename to tests/language_strong/is_interfaces2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_interfaces_test.dart b/tests/language_strong/is_interfaces_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_interfaces_test.dart
rename to tests/language_strong/is_interfaces_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_malformed_type_test.dart b/tests/language_strong/is_malformed_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_malformed_type_test.dart
rename to tests/language_strong/is_malformed_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_nan_test.dart b/tests/language_strong/is_nan_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_nan_test.dart
rename to tests/language_strong/is_nan_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_not_class1_negative_test.dart b/tests/language_strong/is_not_class1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_not_class1_negative_test.dart
rename to tests/language_strong/is_not_class1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_not_class2_test.dart b/tests/language_strong/is_not_class2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_not_class2_test.dart
rename to tests/language_strong/is_not_class2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_not_class4_negative_test.dart b/tests/language_strong/is_not_class4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_not_class4_negative_test.dart
rename to tests/language_strong/is_not_class4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_object_test.dart b/tests/language_strong/is_object_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_object_test.dart
rename to tests/language_strong/is_object_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_operator_clash_test.dart b/tests/language_strong/is_operator_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_operator_clash_test.dart
rename to tests/language_strong/is_operator_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/is_operator_test.dart b/tests/language_strong/is_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/is_operator_test.dart
rename to tests/language_strong/is_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/isnot_malformed_type_test.dart b/tests/language_strong/isnot_malformed_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/isnot_malformed_type_test.dart
rename to tests/language_strong/isnot_malformed_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10204_test.dart b/tests/language_strong/issue10204_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10204_test.dart
rename to tests/language_strong/issue10204_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10321_test.dart b/tests/language_strong/issue10321_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10321_test.dart
rename to tests/language_strong/issue10321_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10561_test.dart b/tests/language_strong/issue10561_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10561_test.dart
rename to tests/language_strong/issue10561_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10581_test.dart b/tests/language_strong/issue10581_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10581_test.dart
rename to tests/language_strong/issue10581_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10721_test.dart b/tests/language_strong/issue10721_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10721_test.dart
rename to tests/language_strong/issue10721_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10747_test.dart b/tests/language_strong/issue10747_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10747_test.dart
rename to tests/language_strong/issue10747_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue10783_test.dart b/tests/language_strong/issue10783_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue10783_test.dart
rename to tests/language_strong/issue10783_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue11724_test.dart b/tests/language_strong/issue11724_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue11724_test.dart
rename to tests/language_strong/issue11724_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue11793_test.dart b/tests/language_strong/issue11793_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue11793_test.dart
rename to tests/language_strong/issue11793_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue12023_test.dart b/tests/language_strong/issue12023_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue12023_test.dart
rename to tests/language_strong/issue12023_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue12284_test.dart b/tests/language_strong/issue12284_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue12284_test.dart
rename to tests/language_strong/issue12284_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue12288_test.dart b/tests/language_strong/issue12288_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue12288_test.dart
rename to tests/language_strong/issue12288_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue12336_test.dart b/tests/language_strong/issue12336_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue12336_test.dart
rename to tests/language_strong/issue12336_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue13179_test.dart b/tests/language_strong/issue13179_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue13179_test.dart
rename to tests/language_strong/issue13179_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue13474_test.dart b/tests/language_strong/issue13474_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue13474_test.dart
rename to tests/language_strong/issue13474_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue13556_test.dart b/tests/language_strong/issue13556_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue13556_test.dart
rename to tests/language_strong/issue13556_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue1363_lib.dart b/tests/language_strong/issue1363_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue1363_lib.dart
rename to tests/language_strong/issue1363_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue1363_test.dart b/tests/language_strong/issue1363_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue1363_test.dart
rename to tests/language_strong/issue1363_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue13673_test.dart b/tests/language_strong/issue13673_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue13673_test.dart
rename to tests/language_strong/issue13673_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue14014_2_test.dart b/tests/language_strong/issue14014_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue14014_2_test.dart
rename to tests/language_strong/issue14014_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue14014_3_test.dart b/tests/language_strong/issue14014_3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue14014_3_test.dart
rename to tests/language_strong/issue14014_3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue14014_test.dart b/tests/language_strong/issue14014_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue14014_test.dart
rename to tests/language_strong/issue14014_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue14242_test.dart b/tests/language_strong/issue14242_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue14242_test.dart
rename to tests/language_strong/issue14242_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue15606_test.dart b/tests/language_strong/issue15606_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue15606_test.dart
rename to tests/language_strong/issue15606_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue15702_test.dart b/tests/language_strong/issue15702_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue15702_test.dart
rename to tests/language_strong/issue15702_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue15720_test.dart b/tests/language_strong/issue15720_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue15720_test.dart
rename to tests/language_strong/issue15720_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue1578_negative_test.dart b/tests/language_strong/issue1578_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue1578_negative_test.dart
rename to tests/language_strong/issue1578_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue18628_1_test.dart b/tests/language_strong/issue18628_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue18628_1_test.dart
rename to tests/language_strong/issue18628_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue18628_2_test.dart b/tests/language_strong/issue18628_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue18628_2_test.dart
rename to tests/language_strong/issue18628_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue20476_test.dart b/tests/language_strong/issue20476_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue20476_test.dart
rename to tests/language_strong/issue20476_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue21079_test.dart b/tests/language_strong/issue21079_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue21079_test.dart
rename to tests/language_strong/issue21079_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue21159_test.dart b/tests/language_strong/issue21159_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue21159_test.dart
rename to tests/language_strong/issue21159_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue21957_test.dart b/tests/language_strong/issue21957_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue21957_test.dart
rename to tests/language_strong/issue21957_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue22800_test.dart b/tests/language_strong/issue22800_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue22800_test.dart
rename to tests/language_strong/issue22800_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue23244_test.dart b/tests/language_strong/issue23244_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue23244_test.dart
rename to tests/language_strong/issue23244_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue3806_test.dart b/tests/language_strong/issue3806_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue3806_test.dart
rename to tests/language_strong/issue3806_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue4157508_test.dart b/tests/language_strong/issue4157508_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue4157508_test.dart
rename to tests/language_strong/issue4157508_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue4295001_test.dart b/tests/language_strong/issue4295001_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue4295001_test.dart
rename to tests/language_strong/issue4295001_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue4515170_test.dart b/tests/language_strong/issue4515170_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue4515170_test.dart
rename to tests/language_strong/issue4515170_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue7513_test.dart b/tests/language_strong/issue7513_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue7513_test.dart
rename to tests/language_strong/issue7513_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue7525_test.dart b/tests/language_strong/issue7525_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue7525_test.dart
rename to tests/language_strong/issue7525_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9602_other.dart b/tests/language_strong/issue9602_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9602_other.dart
rename to tests/language_strong/issue9602_other.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9602_test.dart b/tests/language_strong/issue9602_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9602_test.dart
rename to tests/language_strong/issue9602_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9664_test.dart b/tests/language_strong/issue9664_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9664_test.dart
rename to tests/language_strong/issue9664_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9687_test.dart b/tests/language_strong/issue9687_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9687_test.dart
rename to tests/language_strong/issue9687_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9939_test.dart b/tests/language_strong/issue9939_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9939_test.dart
rename to tests/language_strong/issue9939_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue9949_test.dart b/tests/language_strong/issue9949_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue9949_test.dart
rename to tests/language_strong/issue9949_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib1.dart b/tests/language_strong/issue_1751477_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib1.dart
rename to tests/language_strong/issue_1751477_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib11.dart b/tests/language_strong/issue_1751477_lib11.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib11.dart
rename to tests/language_strong/issue_1751477_lib11.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib2.dart b/tests/language_strong/issue_1751477_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib2.dart
rename to tests/language_strong/issue_1751477_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib21.dart b/tests/language_strong/issue_1751477_lib21.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib21.dart
rename to tests/language_strong/issue_1751477_lib21.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib3.dart b/tests/language_strong/issue_1751477_lib3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib3.dart
rename to tests/language_strong/issue_1751477_lib3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib31.dart b/tests/language_strong/issue_1751477_lib31.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib31.dart
rename to tests/language_strong/issue_1751477_lib31.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib4.dart b/tests/language_strong/issue_1751477_lib4.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib4.dart
rename to tests/language_strong/issue_1751477_lib4.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib41.dart b/tests/language_strong/issue_1751477_lib41.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib41.dart
rename to tests/language_strong/issue_1751477_lib41.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib5.dart b/tests/language_strong/issue_1751477_lib5.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib5.dart
rename to tests/language_strong/issue_1751477_lib5.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib51.dart b/tests/language_strong/issue_1751477_lib51.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib51.dart
rename to tests/language_strong/issue_1751477_lib51.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib6.dart b/tests/language_strong/issue_1751477_lib6.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib6.dart
rename to tests/language_strong/issue_1751477_lib6.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib61.dart b/tests/language_strong/issue_1751477_lib61.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib61.dart
rename to tests/language_strong/issue_1751477_lib61.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib7.dart b/tests/language_strong/issue_1751477_lib7.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib7.dart
rename to tests/language_strong/issue_1751477_lib7.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib71.dart b/tests/language_strong/issue_1751477_lib71.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib71.dart
rename to tests/language_strong/issue_1751477_lib71.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib8.dart b/tests/language_strong/issue_1751477_lib8.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib8.dart
rename to tests/language_strong/issue_1751477_lib8.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib81.dart b/tests/language_strong/issue_1751477_lib81.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib81.dart
rename to tests/language_strong/issue_1751477_lib81.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib9.dart b/tests/language_strong/issue_1751477_lib9.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib9.dart
rename to tests/language_strong/issue_1751477_lib9.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_lib91.dart b/tests/language_strong/issue_1751477_lib91.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_lib91.dart
rename to tests/language_strong/issue_1751477_lib91.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_1751477_test.dart b/tests/language_strong/issue_1751477_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_1751477_test.dart
rename to tests/language_strong/issue_1751477_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_22780_test.dart b/tests/language_strong/issue_22780_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_22780_test.dart
rename to tests/language_strong/issue_22780_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/issue_23914_test.dart b/tests/language_strong/issue_23914_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/issue_23914_test.dart
rename to tests/language_strong/issue_23914_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/js_properties_test.dart b/tests/language_strong/js_properties_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/js_properties_test.dart
rename to tests/language_strong/js_properties_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/keyword_type_expression_test.dart b/tests/language_strong/keyword_type_expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/keyword_type_expression_test.dart
rename to tests/language_strong/keyword_type_expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label2_negative_test.dart b/tests/language_strong/label2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label2_negative_test.dart
rename to tests/language_strong/label2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label3_negative_test.dart b/tests/language_strong/label3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label3_negative_test.dart
rename to tests/language_strong/label3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label5_negative_test.dart b/tests/language_strong/label5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label5_negative_test.dart
rename to tests/language_strong/label5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label6_negative_test.dart b/tests/language_strong/label6_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label6_negative_test.dart
rename to tests/language_strong/label6_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label8_negative_test.dart b/tests/language_strong/label8_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label8_negative_test.dart
rename to tests/language_strong/label8_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/label_test.dart b/tests/language_strong/label_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/label_test.dart
rename to tests/language_strong/label_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/large_class_declaration_test.dart b/tests/language_strong/large_class_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/large_class_declaration_test.dart
rename to tests/language_strong/large_class_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/large_implicit_getter_test.dart b/tests/language_strong/large_implicit_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/large_implicit_getter_test.dart
rename to tests/language_strong/large_implicit_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/larger_implicit_getter_test.dart b/tests/language_strong/larger_implicit_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/larger_implicit_getter_test.dart
rename to tests/language_strong/larger_implicit_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_map_test.dart b/tests/language_strong/lazy_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_map_test.dart
rename to tests/language_strong/lazy_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static2_test.dart b/tests/language_strong/lazy_static2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static2_test.dart
rename to tests/language_strong/lazy_static2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static3_test.dart b/tests/language_strong/lazy_static3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static3_test.dart
rename to tests/language_strong/lazy_static3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static4_test.dart b/tests/language_strong/lazy_static4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static4_test.dart
rename to tests/language_strong/lazy_static4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static5_test.dart b/tests/language_strong/lazy_static5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static5_test.dart
rename to tests/language_strong/lazy_static5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static6_src.dart b/tests/language_strong/lazy_static6_src.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static6_src.dart
rename to tests/language_strong/lazy_static6_src.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static6_test.dart b/tests/language_strong/lazy_static6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static6_test.dart
rename to tests/language_strong/lazy_static6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static7_test.dart b/tests/language_strong/lazy_static7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static7_test.dart
rename to tests/language_strong/lazy_static7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/lazy_static_test.dart b/tests/language_strong/lazy_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/lazy_static_test.dart
rename to tests/language_strong/lazy_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/least_upper_bound_expansive_test.dart b/tests/language_strong/least_upper_bound_expansive_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/least_upper_bound_expansive_test.dart
rename to tests/language_strong/least_upper_bound_expansive_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/least_upper_bound_test.dart b/tests/language_strong/least_upper_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/least_upper_bound_test.dart
rename to tests/language_strong/least_upper_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/left_shift_test.dart b/tests/language_strong/left_shift_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/left_shift_test.dart
rename to tests/language_strong/left_shift_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library1.dart b/tests/language_strong/library1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library1.dart
rename to tests/language_strong/library1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library10.dart b/tests/language_strong/library10.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library10.dart
rename to tests/language_strong/library10.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library11.dart b/tests/language_strong/library11.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library11.dart
rename to tests/language_strong/library11.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library12.dart b/tests/language_strong/library12.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library12.dart
rename to tests/language_strong/library12.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library1_lib.dart b/tests/language_strong/library1_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library1_lib.dart
rename to tests/language_strong/library1_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library1_lib.lib b/tests/language_strong/library1_lib.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library1_lib.lib
rename to tests/language_strong/library1_lib.lib
diff --git a/pkg/dev_compiler/test/codegen/language/library1_test.dart b/tests/language_strong/library1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library1_test.dart
rename to tests/language_strong/library1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library2.dart b/tests/language_strong/library2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library2.dart
rename to tests/language_strong/library2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library3.dart b/tests/language_strong/library3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library3.dart
rename to tests/language_strong/library3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library4.dart b/tests/language_strong/library4.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library4.dart
rename to tests/language_strong/library4.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library5_test.dart b/tests/language_strong/library5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library5_test.dart
rename to tests/language_strong/library5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library5a.dart b/tests/language_strong/library5a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library5a.dart
rename to tests/language_strong/library5a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library5b.dart b/tests/language_strong/library5b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library5b.dart
rename to tests/language_strong/library5b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library6.dart b/tests/language_strong/library6.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library6.dart
rename to tests/language_strong/library6.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_a.dart b/tests/language_strong/library_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_a.dart
rename to tests/language_strong/library_a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_ambiguous_test.dart b/tests/language_strong/library_ambiguous_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_ambiguous_test.dart
rename to tests/language_strong/library_ambiguous_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_b.dart b/tests/language_strong/library_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_b.dart
rename to tests/language_strong/library_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_c.dart b/tests/language_strong/library_c.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_c.dart
rename to tests/language_strong/library_c.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_d.dart b/tests/language_strong/library_d.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_d.dart
rename to tests/language_strong/library_d.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_e.dart b/tests/language_strong/library_e.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_e.dart
rename to tests/language_strong/library_e.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_f.dart b/tests/language_strong/library_f.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_f.dart
rename to tests/language_strong/library_f.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_juxtaposition_lib.dart b/tests/language_strong/library_juxtaposition_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_juxtaposition_lib.dart
rename to tests/language_strong/library_juxtaposition_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_juxtaposition_part.dart b/tests/language_strong/library_juxtaposition_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_juxtaposition_part.dart
rename to tests/language_strong/library_juxtaposition_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_juxtaposition_test.dart b/tests/language_strong/library_juxtaposition_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_juxtaposition_test.dart
rename to tests/language_strong/library_juxtaposition_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_negative_test.dart b/tests/language_strong/library_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_negative_test.dart
rename to tests/language_strong/library_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes.dart b/tests/language_strong/library_prefixes.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes.dart
rename to tests/language_strong/library_prefixes.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes.lib b/tests/language_strong/library_prefixes.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes.lib
rename to tests/language_strong/library_prefixes.lib
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes_test.dart b/tests/language_strong/library_prefixes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes_test.dart
rename to tests/language_strong/library_prefixes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes_test1.dart b/tests/language_strong/library_prefixes_test1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes_test1.dart
rename to tests/language_strong/library_prefixes_test1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes_test1.lib b/tests/language_strong/library_prefixes_test1.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes_test1.lib
rename to tests/language_strong/library_prefixes_test1.lib
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes_test2.dart b/tests/language_strong/library_prefixes_test2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes_test2.dart
rename to tests/language_strong/library_prefixes_test2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_prefixes_test2.lib b/tests/language_strong/library_prefixes_test2.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_prefixes_test2.lib
rename to tests/language_strong/library_prefixes_test2.lib
diff --git a/pkg/dev_compiler/test/codegen/language/library_private_in_constructor_a.dart b/tests/language_strong/library_private_in_constructor_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_private_in_constructor_a.dart
rename to tests/language_strong/library_private_in_constructor_a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_private_in_constructor_b.dart b/tests/language_strong/library_private_in_constructor_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_private_in_constructor_b.dart
rename to tests/language_strong/library_private_in_constructor_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_private_in_constructor_test.dart b/tests/language_strong/library_private_in_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_private_in_constructor_test.dart
rename to tests/language_strong/library_private_in_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_same_name_used_lib1.dart b/tests/language_strong/library_same_name_used_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_same_name_used_lib1.dart
rename to tests/language_strong/library_same_name_used_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_same_name_used_lib2.dart b/tests/language_strong/library_same_name_used_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_same_name_used_lib2.dart
rename to tests/language_strong/library_same_name_used_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/library_same_name_used_test.dart b/tests/language_strong/library_same_name_used_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/library_same_name_used_test.dart
rename to tests/language_strong/library_same_name_used_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/licm2_test.dart b/tests/language_strong/licm2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/licm2_test.dart
rename to tests/language_strong/licm2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/licm3_test.dart b/tests/language_strong/licm3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/licm3_test.dart
rename to tests/language_strong/licm3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/licm_test.dart b/tests/language_strong/licm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/licm_test.dart
rename to tests/language_strong/licm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_double_index_in_loop2_test.dart b/tests/language_strong/list_double_index_in_loop2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_double_index_in_loop2_test.dart
rename to tests/language_strong/list_double_index_in_loop2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_double_index_in_loop_test.dart b/tests/language_strong/list_double_index_in_loop_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_double_index_in_loop_test.dart
rename to tests/language_strong/list_double_index_in_loop_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_in_closure_test.dart b/tests/language_strong/list_in_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_in_closure_test.dart
rename to tests/language_strong/list_in_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_is_test.dart b/tests/language_strong/list_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_is_test.dart
rename to tests/language_strong/list_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_length_tracer_test.dart b/tests/language_strong/list_length_tracer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_length_tracer_test.dart
rename to tests/language_strong/list_length_tracer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal1_test.dart b/tests/language_strong/list_literal1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal1_test.dart
rename to tests/language_strong/list_literal1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal2_negative_test.dart b/tests/language_strong/list_literal2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal2_negative_test.dart
rename to tests/language_strong/list_literal2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal2_test.dart b/tests/language_strong/list_literal2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal2_test.dart
rename to tests/language_strong/list_literal2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal3_test.dart b/tests/language_strong/list_literal3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal3_test.dart
rename to tests/language_strong/list_literal3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal4_test.dart b/tests/language_strong/list_literal4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal4_test.dart
rename to tests/language_strong/list_literal4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal_negative_test.dart b/tests/language_strong/list_literal_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal_negative_test.dart
rename to tests/language_strong/list_literal_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal_syntax_test.dart b/tests/language_strong/list_literal_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal_syntax_test.dart
rename to tests/language_strong/list_literal_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_literal_test.dart b/tests/language_strong/list_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_literal_test.dart
rename to tests/language_strong/list_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_mixin_test.dart b/tests/language_strong/list_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_mixin_test.dart
rename to tests/language_strong/list_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_test.dart b/tests/language_strong/list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_test.dart
rename to tests/language_strong/list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_tracer_call_last_test.dart b/tests/language_strong/list_tracer_call_last_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_tracer_call_last_test.dart
rename to tests/language_strong/list_tracer_call_last_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_tracer_closure_test.dart b/tests/language_strong/list_tracer_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_tracer_closure_test.dart
rename to tests/language_strong/list_tracer_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_tracer_in_list_test.dart b/tests/language_strong/list_tracer_in_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_tracer_in_list_test.dart
rename to tests/language_strong/list_tracer_in_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_tracer_in_map_test.dart b/tests/language_strong/list_tracer_in_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_tracer_in_map_test.dart
rename to tests/language_strong/list_tracer_in_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/list_tracer_return_from_tearoff_closure_test.dart b/tests/language_strong/list_tracer_return_from_tearoff_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/list_tracer_return_from_tearoff_closure_test.dart
rename to tests/language_strong/list_tracer_return_from_tearoff_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/literal_unary_plus_test.dart b/tests/language_strong/literal_unary_plus_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/literal_unary_plus_test.dart
rename to tests/language_strong/literal_unary_plus_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/liveness_test.dart b/tests/language_strong/liveness_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/liveness_test.dart
rename to tests/language_strong/liveness_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/load_indexed_constant_test.dart b/tests/language_strong/load_indexed_constant_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/load_indexed_constant_test.dart
rename to tests/language_strong/load_indexed_constant_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_export_a.dart b/tests/language_strong/local_export_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_export_a.dart
rename to tests/language_strong/local_export_a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_export_a_export.dart b/tests/language_strong/local_export_a_export.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_export_a_export.dart
rename to tests/language_strong/local_export_a_export.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_export_test.dart b/tests/language_strong/local_export_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_export_test.dart
rename to tests/language_strong/local_export_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_function2_test.dart b/tests/language_strong/local_function2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_function2_test.dart
rename to tests/language_strong/local_function2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_function3_test.dart b/tests/language_strong/local_function3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_function3_test.dart
rename to tests/language_strong/local_function3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_function_non_equal_test.dart b/tests/language_strong/local_function_non_equal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_function_non_equal_test.dart
rename to tests/language_strong/local_function_non_equal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/local_function_test.dart b/tests/language_strong/local_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/local_function_test.dart
rename to tests/language_strong/local_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/logical_expression2_test.dart b/tests/language_strong/logical_expression2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/logical_expression2_test.dart
rename to tests/language_strong/logical_expression2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/logical_expression3_test.dart b/tests/language_strong/logical_expression3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/logical_expression3_test.dart
rename to tests/language_strong/logical_expression3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/logical_expression4_test.dart b/tests/language_strong/logical_expression4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/logical_expression4_test.dart
rename to tests/language_strong/logical_expression4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/logical_expression5_test.dart b/tests/language_strong/logical_expression5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/logical_expression5_test.dart
rename to tests/language_strong/logical_expression5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/logical_expression_test.dart b/tests/language_strong/logical_expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/logical_expression_test.dart
rename to tests/language_strong/logical_expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/loop_exchange2_test.dart b/tests/language_strong/loop_exchange2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/loop_exchange2_test.dart
rename to tests/language_strong/loop_exchange2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/loop_exchange3_test.dart b/tests/language_strong/loop_exchange3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/loop_exchange3_test.dart
rename to tests/language_strong/loop_exchange3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/loop_exchange4_test.dart b/tests/language_strong/loop_exchange4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/loop_exchange4_test.dart
rename to tests/language_strong/loop_exchange4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/loop_exchange_test.dart b/tests/language_strong/loop_exchange_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/loop_exchange_test.dart
rename to tests/language_strong/loop_exchange_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/loop_hoist_test.dart b/tests/language_strong/loop_hoist_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/loop_hoist_test.dart
rename to tests/language_strong/loop_hoist_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/main_not_a_function_test.dart b/tests/language_strong/main_not_a_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/main_not_a_function_test.dart
rename to tests/language_strong/main_not_a_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/main_test.dart b/tests/language_strong/main_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/main_test.dart
rename to tests/language_strong/main_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_instantiation_test.dart b/tests/language_strong/malbounded_instantiation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_instantiation_test.dart
rename to tests/language_strong/malbounded_instantiation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_redirecting_factory2_test.dart b/tests/language_strong/malbounded_redirecting_factory2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_redirecting_factory2_test.dart
rename to tests/language_strong/malbounded_redirecting_factory2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_redirecting_factory_test.dart b/tests/language_strong/malbounded_redirecting_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_redirecting_factory_test.dart
rename to tests/language_strong/malbounded_redirecting_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_type_cast2_test.dart b/tests/language_strong/malbounded_type_cast2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_type_cast2_test.dart
rename to tests/language_strong/malbounded_type_cast2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_type_cast_test.dart b/tests/language_strong/malbounded_type_cast_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_type_cast_test.dart
rename to tests/language_strong/malbounded_type_cast_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_type_literal_test.dart b/tests/language_strong/malbounded_type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_type_literal_test.dart
rename to tests/language_strong/malbounded_type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_type_test2_test.dart b/tests/language_strong/malbounded_type_test2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_type_test2_test.dart
rename to tests/language_strong/malbounded_type_test2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malbounded_type_test_test.dart b/tests/language_strong/malbounded_type_test_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malbounded_type_test_test.dart
rename to tests/language_strong/malbounded_type_test_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed2_lib.dart b/tests/language_strong/malformed2_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed2_lib.dart
rename to tests/language_strong/malformed2_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed2_test.dart b/tests/language_strong/malformed2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed2_test.dart
rename to tests/language_strong/malformed2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed_bound_test.dart b/tests/language_strong/malformed_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed_bound_test.dart
rename to tests/language_strong/malformed_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed_inheritance_test.dart b/tests/language_strong/malformed_inheritance_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed_inheritance_test.dart
rename to tests/language_strong/malformed_inheritance_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed_test.dart b/tests/language_strong/malformed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed_test.dart
rename to tests/language_strong/malformed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/malformed_type_test.dart b/tests/language_strong/malformed_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/malformed_type_test.dart
rename to tests/language_strong/malformed_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/many_calls_test.dart b/tests/language_strong/many_calls_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/many_calls_test.dart
rename to tests/language_strong/many_calls_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/many_generic_instanceof_test.dart b/tests/language_strong/many_generic_instanceof_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/many_generic_instanceof_test.dart
rename to tests/language_strong/many_generic_instanceof_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/many_method_calls_test.dart b/tests/language_strong/many_method_calls_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/many_method_calls_test.dart
rename to tests/language_strong/many_method_calls_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/many_named_arguments_test.dart b/tests/language_strong/many_named_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/many_named_arguments_test.dart
rename to tests/language_strong/many_named_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/many_overridden_no_such_method_test.dart b/tests/language_strong/many_overridden_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/many_overridden_no_such_method_test.dart
rename to tests/language_strong/many_overridden_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal10_test.dart b/tests/language_strong/map_literal10_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal10_test.dart
rename to tests/language_strong/map_literal10_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal11_test.dart b/tests/language_strong/map_literal11_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal11_test.dart
rename to tests/language_strong/map_literal11_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal1_test.dart b/tests/language_strong/map_literal1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal1_test.dart
rename to tests/language_strong/map_literal1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal2_negative_test.dart b/tests/language_strong/map_literal2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal2_negative_test.dart
rename to tests/language_strong/map_literal2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal2_test.dart b/tests/language_strong/map_literal2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal2_test.dart
rename to tests/language_strong/map_literal2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal3_test.dart b/tests/language_strong/map_literal3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal3_test.dart
rename to tests/language_strong/map_literal3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal4_test.dart b/tests/language_strong/map_literal4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal4_test.dart
rename to tests/language_strong/map_literal4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal5_test.dart b/tests/language_strong/map_literal5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal5_test.dart
rename to tests/language_strong/map_literal5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal6_test.dart b/tests/language_strong/map_literal6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal6_test.dart
rename to tests/language_strong/map_literal6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal7_test.dart b/tests/language_strong/map_literal7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal7_test.dart
rename to tests/language_strong/map_literal7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal8_test.dart b/tests/language_strong/map_literal8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal8_test.dart
rename to tests/language_strong/map_literal8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal9_test.dart b/tests/language_strong/map_literal9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal9_test.dart
rename to tests/language_strong/map_literal9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal_negative_test.dart b/tests/language_strong/map_literal_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal_negative_test.dart
rename to tests/language_strong/map_literal_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal_syntax_test.dart b/tests/language_strong/map_literal_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal_syntax_test.dart
rename to tests/language_strong/map_literal_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_literal_test.dart b/tests/language_strong/map_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_literal_test.dart
rename to tests/language_strong/map_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/map_test.dart b/tests/language_strong/map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/map_test.dart
rename to tests/language_strong/map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mega_load_test.dart b/tests/language_strong/mega_load_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mega_load_test.dart
rename to tests/language_strong/mega_load_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/megamorphic_no_such_method_test.dart b/tests/language_strong/megamorphic_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/megamorphic_no_such_method_test.dart
rename to tests/language_strong/megamorphic_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/memory_swap_test.dart b/tests/language_strong/memory_swap_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/memory_swap_test.dart
rename to tests/language_strong/memory_swap_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/metadata_lib.dart b/tests/language_strong/metadata_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/metadata_lib.dart
rename to tests/language_strong/metadata_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/metadata_scope1_test.dart b/tests/language_strong/metadata_scope1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/metadata_scope1_test.dart
rename to tests/language_strong/metadata_scope1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/metadata_scope2_test.dart b/tests/language_strong/metadata_scope2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/metadata_scope2_test.dart
rename to tests/language_strong/metadata_scope2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/metadata_self_test.dart b/tests/language_strong/metadata_self_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/metadata_self_test.dart
rename to tests/language_strong/metadata_self_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/metadata_test.dart b/tests/language_strong/metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/metadata_test.dart
rename to tests/language_strong/metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_binding_test.dart b/tests/language_strong/method_binding_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_binding_test.dart
rename to tests/language_strong/method_binding_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_invocation_test.dart b/tests/language_strong/method_invocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_invocation_test.dart
rename to tests/language_strong/method_invocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_name_test.dart b/tests/language_strong/method_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_name_test.dart
rename to tests/language_strong/method_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override2_test.dart b/tests/language_strong/method_override2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override2_test.dart
rename to tests/language_strong/method_override2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override3_test.dart b/tests/language_strong/method_override3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override3_test.dart
rename to tests/language_strong/method_override3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override4_test.dart b/tests/language_strong/method_override4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override4_test.dart
rename to tests/language_strong/method_override4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override5_test.dart b/tests/language_strong/method_override5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override5_test.dart
rename to tests/language_strong/method_override5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override6_test.dart b/tests/language_strong/method_override6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override6_test.dart
rename to tests/language_strong/method_override6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override7_test.dart b/tests/language_strong/method_override7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override7_test.dart
rename to tests/language_strong/method_override7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override8_test.dart b/tests/language_strong/method_override8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override8_test.dart
rename to tests/language_strong/method_override8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/method_override_test.dart b/tests/language_strong/method_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/method_override_test.dart
rename to tests/language_strong/method_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/methods_as_constants2_test.dart b/tests/language_strong/methods_as_constants2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/methods_as_constants2_test.dart
rename to tests/language_strong/methods_as_constants2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/methods_as_constants_test.dart b/tests/language_strong/methods_as_constants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/methods_as_constants_test.dart
rename to tests/language_strong/methods_as_constants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/minify_closure_variable_collision_test.dart b/tests/language_strong/minify_closure_variable_collision_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/minify_closure_variable_collision_test.dart
rename to tests/language_strong/minify_closure_variable_collision_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mint_arithmetic_test.dart b/tests/language_strong/mint_arithmetic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mint_arithmetic_test.dart
rename to tests/language_strong/mint_arithmetic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mint_compares_test.dart b/tests/language_strong/mint_compares_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mint_compares_test.dart
rename to tests/language_strong/mint_compares_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/missing_const_constructor_test.dart b/tests/language_strong/missing_const_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/missing_const_constructor_test.dart
rename to tests/language_strong/missing_const_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/missing_part_of_tag_part.dart b/tests/language_strong/missing_part_of_tag_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/missing_part_of_tag_part.dart
rename to tests/language_strong/missing_part_of_tag_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/missing_part_of_tag_test.dart b/tests/language_strong/missing_part_of_tag_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/missing_part_of_tag_test.dart
rename to tests/language_strong/missing_part_of_tag_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_abstract_getter_test.dart b/tests/language_strong/mixin_abstract_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_abstract_getter_test.dart
rename to tests/language_strong/mixin_abstract_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_black_listed_test.dart b/tests/language_strong/mixin_black_listed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_black_listed_test.dart
rename to tests/language_strong/mixin_black_listed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_bound_test.dart b/tests/language_strong/mixin_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_bound_test.dart
rename to tests/language_strong/mixin_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_cyclic_test.dart b/tests/language_strong/mixin_cyclic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_cyclic_test.dart
rename to tests/language_strong/mixin_cyclic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_extends_field_test.dart b/tests/language_strong/mixin_extends_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_extends_field_test.dart
rename to tests/language_strong/mixin_extends_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_extends_is_test.dart b/tests/language_strong/mixin_extends_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_extends_is_test.dart
rename to tests/language_strong/mixin_extends_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_extends_method_test.dart b/tests/language_strong/mixin_extends_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_extends_method_test.dart
rename to tests/language_strong/mixin_extends_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_field_initializer_test.dart b/tests/language_strong/mixin_field_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_field_initializer_test.dart
rename to tests/language_strong/mixin_field_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_field_test.dart b/tests/language_strong/mixin_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_field_test.dart
rename to tests/language_strong/mixin_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor1_test.dart b/tests/language_strong/mixin_forwarding_constructor1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor1_test.dart
rename to tests/language_strong/mixin_forwarding_constructor1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor2_test.dart b/tests/language_strong/mixin_forwarding_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor2_test.dart
rename to tests/language_strong/mixin_forwarding_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor3_test.dart b/tests/language_strong/mixin_forwarding_constructor3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor3_test.dart
rename to tests/language_strong/mixin_forwarding_constructor3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor4_test.dart b/tests/language_strong/mixin_forwarding_constructor4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_forwarding_constructor4_test.dart
rename to tests/language_strong/mixin_forwarding_constructor4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_generic_test.dart b/tests/language_strong/mixin_generic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_generic_test.dart
rename to tests/language_strong/mixin_generic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_getter_regression_test.dart b/tests/language_strong/mixin_getter_regression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_getter_regression_test.dart
rename to tests/language_strong/mixin_getter_regression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_constructor_test.dart b/tests/language_strong/mixin_illegal_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_constructor_test.dart
rename to tests/language_strong/mixin_illegal_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_cycles_test.dart b/tests/language_strong/mixin_illegal_cycles_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_cycles_test.dart
rename to tests/language_strong/mixin_illegal_cycles_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_object_test.dart b/tests/language_strong/mixin_illegal_object_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_object_test.dart
rename to tests/language_strong/mixin_illegal_object_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_static_access_test.dart b/tests/language_strong/mixin_illegal_static_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_static_access_test.dart
rename to tests/language_strong/mixin_illegal_static_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_super_use_test.dart b/tests/language_strong/mixin_illegal_super_use_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_super_use_test.dart
rename to tests/language_strong/mixin_illegal_super_use_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_superclass_test.dart b/tests/language_strong/mixin_illegal_superclass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_superclass_test.dart
rename to tests/language_strong/mixin_illegal_superclass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_illegal_syntax_test.dart b/tests/language_strong/mixin_illegal_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_illegal_syntax_test.dart
rename to tests/language_strong/mixin_illegal_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_implements2_test.dart b/tests/language_strong/mixin_implements2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_implements2_test.dart
rename to tests/language_strong/mixin_implements2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_implements_test.dart b/tests/language_strong/mixin_implements_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_implements_test.dart
rename to tests/language_strong/mixin_implements_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_invalid_bound2_test.dart b/tests/language_strong/mixin_invalid_bound2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_invalid_bound2_test.dart
rename to tests/language_strong/mixin_invalid_bound2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_invalid_bound_test.dart b/tests/language_strong/mixin_invalid_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_invalid_bound_test.dart
rename to tests/language_strong/mixin_invalid_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_invalid_inheritance1_test.dart b/tests/language_strong/mixin_invalid_inheritance1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_invalid_inheritance1_test.dart
rename to tests/language_strong/mixin_invalid_inheritance1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_invalid_inheritance2_test.dart b/tests/language_strong/mixin_invalid_inheritance2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_invalid_inheritance2_test.dart
rename to tests/language_strong/mixin_invalid_inheritance2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_is_test.dart b/tests/language_strong/mixin_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_is_test.dart
rename to tests/language_strong/mixin_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_issue10216_2_test.dart b/tests/language_strong/mixin_issue10216_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_issue10216_2_test.dart
rename to tests/language_strong/mixin_issue10216_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_issue10216_test.dart b/tests/language_strong/mixin_issue10216_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_issue10216_test.dart
rename to tests/language_strong/mixin_issue10216_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_lib_extends_field_lib.dart b/tests/language_strong/mixin_lib_extends_field_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_lib_extends_field_lib.dart
rename to tests/language_strong/mixin_lib_extends_field_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_lib_extends_field_test.dart b/tests/language_strong/mixin_lib_extends_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_lib_extends_field_test.dart
rename to tests/language_strong/mixin_lib_extends_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_lib_extends_method_lib.dart b/tests/language_strong/mixin_lib_extends_method_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_lib_extends_method_lib.dart
rename to tests/language_strong/mixin_lib_extends_method_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_lib_extends_method_test.dart b/tests/language_strong/mixin_lib_extends_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_lib_extends_method_test.dart
rename to tests/language_strong/mixin_lib_extends_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_method_test.dart b/tests/language_strong/mixin_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_method_test.dart
rename to tests/language_strong/mixin_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin2_test.dart b/tests/language_strong/mixin_mixin2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin2_test.dart
rename to tests/language_strong/mixin_mixin2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin3_test.dart b/tests/language_strong/mixin_mixin3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin3_test.dart
rename to tests/language_strong/mixin_mixin3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin4_test.dart b/tests/language_strong/mixin_mixin4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin4_test.dart
rename to tests/language_strong/mixin_mixin4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin5_test.dart b/tests/language_strong/mixin_mixin5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin5_test.dart
rename to tests/language_strong/mixin_mixin5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin6_test.dart b/tests/language_strong/mixin_mixin6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin6_test.dart
rename to tests/language_strong/mixin_mixin6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin7_test.dart b/tests/language_strong/mixin_mixin7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin7_test.dart
rename to tests/language_strong/mixin_mixin7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin_bound2_test.dart b/tests/language_strong/mixin_mixin_bound2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin_bound2_test.dart
rename to tests/language_strong/mixin_mixin_bound2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin_bound_test.dart b/tests/language_strong/mixin_mixin_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin_bound_test.dart
rename to tests/language_strong/mixin_mixin_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_mixin_test.dart b/tests/language_strong/mixin_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_mixin_test.dart
rename to tests/language_strong/mixin_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_naming_test.dart b/tests/language_strong/mixin_naming_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_naming_test.dart
rename to tests/language_strong/mixin_naming_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_only_for_rti_test.dart b/tests/language_strong/mixin_only_for_rti_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_only_for_rti_test.dart
rename to tests/language_strong/mixin_only_for_rti_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_override_regression_test.dart b/tests/language_strong/mixin_override_regression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_override_regression_test.dart
rename to tests/language_strong/mixin_override_regression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_prefix_lib.dart b/tests/language_strong/mixin_prefix_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_prefix_lib.dart
rename to tests/language_strong/mixin_prefix_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_prefix_test.dart b/tests/language_strong/mixin_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_prefix_test.dart
rename to tests/language_strong/mixin_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_regress_11398_test.dart b/tests/language_strong/mixin_regress_11398_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_regress_11398_test.dart
rename to tests/language_strong/mixin_regress_11398_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_regress_13688_test.dart b/tests/language_strong/mixin_regress_13688_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_regress_13688_test.dart
rename to tests/language_strong/mixin_regress_13688_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_bound2_test.dart b/tests/language_strong/mixin_super_bound2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_bound2_test.dart
rename to tests/language_strong/mixin_super_bound2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_bound_test.dart b/tests/language_strong/mixin_super_bound_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_bound_test.dart
rename to tests/language_strong/mixin_super_bound_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor2_test.dart b/tests/language_strong/mixin_super_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor2_test.dart
rename to tests/language_strong/mixin_super_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor_default_test.dart b/tests/language_strong/mixin_super_constructor_default_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor_default_test.dart
rename to tests/language_strong/mixin_super_constructor_default_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor_multiple_test.dart b/tests/language_strong/mixin_super_constructor_multiple_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor_multiple_test.dart
rename to tests/language_strong/mixin_super_constructor_multiple_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor_named_test.dart b/tests/language_strong/mixin_super_constructor_named_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor_named_test.dart
rename to tests/language_strong/mixin_super_constructor_named_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor_positionals_test.dart b/tests/language_strong/mixin_super_constructor_positionals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor_positionals_test.dart
rename to tests/language_strong/mixin_super_constructor_positionals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_constructor_test.dart b/tests/language_strong/mixin_super_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_constructor_test.dart
rename to tests/language_strong/mixin_super_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_super_test.dart b/tests/language_strong/mixin_super_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_super_test.dart
rename to tests/language_strong/mixin_super_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_this_use_test.dart b/tests/language_strong/mixin_this_use_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_this_use_test.dart
rename to tests/language_strong/mixin_this_use_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter1_test.dart b/tests/language_strong/mixin_type_parameter1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter1_test.dart
rename to tests/language_strong/mixin_type_parameter1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter2_test.dart b/tests/language_strong/mixin_type_parameter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter2_test.dart
rename to tests/language_strong/mixin_type_parameter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter3_test.dart b/tests/language_strong/mixin_type_parameter3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter3_test.dart
rename to tests/language_strong/mixin_type_parameter3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter4_test.dart b/tests/language_strong/mixin_type_parameter4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter4_test.dart
rename to tests/language_strong/mixin_type_parameter4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter5_test.dart b/tests/language_strong/mixin_type_parameter5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter5_test.dart
rename to tests/language_strong/mixin_type_parameter5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameter6_test.dart b/tests/language_strong/mixin_type_parameter6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameter6_test.dart
rename to tests/language_strong/mixin_type_parameter6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_errors_test.dart b/tests/language_strong/mixin_type_parameters_errors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_errors_test.dart
rename to tests/language_strong/mixin_type_parameters_errors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_mixin_extends_test.dart b/tests/language_strong/mixin_type_parameters_mixin_extends_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_mixin_extends_test.dart
rename to tests/language_strong/mixin_type_parameters_mixin_extends_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_mixin_test.dart b/tests/language_strong/mixin_type_parameters_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_mixin_test.dart
rename to tests/language_strong/mixin_type_parameters_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_simple_test.dart b/tests/language_strong/mixin_type_parameters_simple_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_simple_test.dart
rename to tests/language_strong/mixin_type_parameters_simple_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_super_extends_test.dart b/tests/language_strong/mixin_type_parameters_super_extends_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_super_extends_test.dart
rename to tests/language_strong/mixin_type_parameters_super_extends_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_parameters_super_test.dart b/tests/language_strong/mixin_type_parameters_super_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_parameters_super_test.dart
rename to tests/language_strong/mixin_type_parameters_super_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_type_variable_test.dart b/tests/language_strong/mixin_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_type_variable_test.dart
rename to tests/language_strong/mixin_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_typedef_constructor_test.dart b/tests/language_strong/mixin_typedef_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_typedef_constructor_test.dart
rename to tests/language_strong/mixin_typedef_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mixin_with_two_implicit_constructors_test.dart b/tests/language_strong/mixin_with_two_implicit_constructors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mixin_with_two_implicit_constructors_test.dart
rename to tests/language_strong/mixin_with_two_implicit_constructors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/modulo_test.dart b/tests/language_strong/modulo_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/modulo_test.dart
rename to tests/language_strong/modulo_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/mul_recipr_test.dart b/tests/language_strong/mul_recipr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/mul_recipr_test.dart
rename to tests/language_strong/mul_recipr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multi_assign_test.dart b/tests/language_strong/multi_assign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multi_assign_test.dart
rename to tests/language_strong/multi_assign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multi_pass2_test.dart b/tests/language_strong/multi_pass2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multi_pass2_test.dart
rename to tests/language_strong/multi_pass2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multi_pass_a.dart b/tests/language_strong/multi_pass_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multi_pass_a.dart
rename to tests/language_strong/multi_pass_a.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multi_pass_b.dart b/tests/language_strong/multi_pass_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multi_pass_b.dart
rename to tests/language_strong/multi_pass_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multi_pass_test.dart b/tests/language_strong/multi_pass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multi_pass_test.dart
rename to tests/language_strong/multi_pass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multiline_newline_cr.dart b/tests/language_strong/multiline_newline_cr.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiline_newline_cr.dart
rename to tests/language_strong/multiline_newline_cr.dart
Binary files differ
diff --git a/pkg/dev_compiler/test/codegen/language/multiline_newline_crlf.dart b/tests/language_strong/multiline_newline_crlf.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiline_newline_crlf.dart
rename to tests/language_strong/multiline_newline_crlf.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multiline_newline_lf.dart b/tests/language_strong/multiline_newline_lf.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiline_newline_lf.dart
rename to tests/language_strong/multiline_newline_lf.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multiline_newline_test.dart b/tests/language_strong/multiline_newline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiline_newline_test.dart
rename to tests/language_strong/multiline_newline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multiline_strings_test.dart b/tests/language_strong/multiline_strings_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiline_strings_test.dart
rename to tests/language_strong/multiline_strings_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/multiple_field_assignment_constructor_test.dart b/tests/language_strong/multiple_field_assignment_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/multiple_field_assignment_constructor_test.dart
rename to tests/language_strong/multiple_field_assignment_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_argument_in_const_creation_test.dart b/tests/language_strong/named_argument_in_const_creation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_argument_in_const_creation_test.dart
rename to tests/language_strong/named_argument_in_const_creation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_argument_test.dart b/tests/language_strong/named_argument_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_argument_test.dart
rename to tests/language_strong/named_argument_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_constructor_lib.dart b/tests/language_strong/named_constructor_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_constructor_lib.dart
rename to tests/language_strong/named_constructor_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_constructor_test.dart b/tests/language_strong/named_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_constructor_test.dart
rename to tests/language_strong/named_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameter_clash_test.dart b/tests/language_strong/named_parameter_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameter_clash_test.dart
rename to tests/language_strong/named_parameter_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameter_regression_test.dart b/tests/language_strong/named_parameter_regression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameter_regression_test.dart
rename to tests/language_strong/named_parameter_regression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters2_test.dart b/tests/language_strong/named_parameters2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters2_test.dart
rename to tests/language_strong/named_parameters2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters3_test.dart b/tests/language_strong/named_parameters3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters3_test.dart
rename to tests/language_strong/named_parameters3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters4_test.dart b/tests/language_strong/named_parameters4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters4_test.dart
rename to tests/language_strong/named_parameters4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_aggregated_test.dart b/tests/language_strong/named_parameters_aggregated_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_aggregated_test.dart
rename to tests/language_strong/named_parameters_aggregated_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_named_count_test.dart b/tests/language_strong/named_parameters_named_count_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_named_count_test.dart
rename to tests/language_strong/named_parameters_named_count_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_passing_false_test.dart b/tests/language_strong/named_parameters_passing_false_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_passing_false_test.dart
rename to tests/language_strong/named_parameters_passing_false_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_passing_falsy_test.dart b/tests/language_strong/named_parameters_passing_falsy_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_passing_falsy_test.dart
rename to tests/language_strong/named_parameters_passing_falsy_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_passing_null_test.dart b/tests/language_strong/named_parameters_passing_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_passing_null_test.dart
rename to tests/language_strong/named_parameters_passing_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_passing_zero_test.dart b/tests/language_strong/named_parameters_passing_zero_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_passing_zero_test.dart
rename to tests/language_strong/named_parameters_passing_zero_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_test.dart b/tests/language_strong/named_parameters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_test.dart
rename to tests/language_strong/named_parameters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_type_test.dart b/tests/language_strong/named_parameters_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_type_test.dart
rename to tests/language_strong/named_parameters_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_with_conversions_test.dart b/tests/language_strong/named_parameters_with_conversions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_with_conversions_test.dart
rename to tests/language_strong/named_parameters_with_conversions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_with_dollars_test.dart b/tests/language_strong/named_parameters_with_dollars_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_with_dollars_test.dart
rename to tests/language_strong/named_parameters_with_dollars_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/named_parameters_with_object_property_names_test.dart b/tests/language_strong/named_parameters_with_object_property_names_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/named_parameters_with_object_property_names_test.dart
rename to tests/language_strong/named_parameters_with_object_property_names_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/namer2_test.dart b/tests/language_strong/namer2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/namer2_test.dart
rename to tests/language_strong/namer2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/namer_test.dart b/tests/language_strong/namer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/namer_test.dart
rename to tests/language_strong/namer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/naming2_test.dart b/tests/language_strong/naming2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/naming2_test.dart
rename to tests/language_strong/naming2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/naming3_test.dart b/tests/language_strong/naming3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/naming3_test.dart
rename to tests/language_strong/naming3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/naming_test.dart b/tests/language_strong/naming_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/naming_test.dart
rename to tests/language_strong/naming_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/nan_identical_test.dart b/tests/language_strong/nan_identical_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/nan_identical_test.dart
rename to tests/language_strong/nan_identical_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/native_test.dart b/tests/language_strong/native_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/native_test.dart
rename to tests/language_strong/native_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/nested_comments_test.dart b/tests/language_strong/nested_comments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/nested_comments_test.dart
rename to tests/language_strong/nested_comments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/nested_if_test.dart b/tests/language_strong/nested_if_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/nested_if_test.dart
rename to tests/language_strong/nested_if_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/nested_switch_label_test.dart b/tests/language_strong/nested_switch_label_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/nested_switch_label_test.dart
rename to tests/language_strong/nested_switch_label_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_expression1_negative_test.dart b/tests/language_strong/new_expression1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_expression1_negative_test.dart
rename to tests/language_strong/new_expression1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_expression2_negative_test.dart b/tests/language_strong/new_expression2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_expression2_negative_test.dart
rename to tests/language_strong/new_expression2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_expression3_negative_test.dart b/tests/language_strong/new_expression3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_expression3_negative_test.dart
rename to tests/language_strong/new_expression3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_expression_type_args_test.dart b/tests/language_strong/new_expression_type_args_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_expression_type_args_test.dart
rename to tests/language_strong/new_expression_type_args_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_prefix_test.dart b/tests/language_strong/new_prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_prefix_test.dart
rename to tests/language_strong/new_prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/new_statement_test.dart b/tests/language_strong/new_statement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/new_statement_test.dart
rename to tests/language_strong/new_statement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_main_test.dart b/tests/language_strong/no_main_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_main_test.dart
rename to tests/language_strong/no_main_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_constructor2_test.dart b/tests/language_strong/no_such_constructor2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_constructor2_test.dart
rename to tests/language_strong/no_such_constructor2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_constructor_test.dart b/tests/language_strong/no_such_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_constructor_test.dart
rename to tests/language_strong/no_such_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method2_test.dart b/tests/language_strong/no_such_method2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method2_test.dart
rename to tests/language_strong/no_such_method2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method3_test.dart b/tests/language_strong/no_such_method3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method3_test.dart
rename to tests/language_strong/no_such_method3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_dispatcher_test.dart b/tests/language_strong/no_such_method_dispatcher_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_dispatcher_test.dart
rename to tests/language_strong/no_such_method_dispatcher_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_empty_selector_test.dart b/tests/language_strong/no_such_method_empty_selector_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_empty_selector_test.dart
rename to tests/language_strong/no_such_method_empty_selector_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_mock_test.dart b/tests/language_strong/no_such_method_mock_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_mock_test.dart
rename to tests/language_strong/no_such_method_mock_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_native_test.dart b/tests/language_strong/no_such_method_native_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_native_test.dart
rename to tests/language_strong/no_such_method_native_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_negative_test.dart b/tests/language_strong/no_such_method_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_negative_test.dart
rename to tests/language_strong/no_such_method_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_subtype_test.dart b/tests/language_strong/no_such_method_subtype_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_subtype_test.dart
rename to tests/language_strong/no_such_method_subtype_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/no_such_method_test.dart b/tests/language_strong/no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/no_such_method_test.dart
rename to tests/language_strong/no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/non_const_constructor_without_body_test.dart b/tests/language_strong/non_const_constructor_without_body_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/non_const_constructor_without_body_test.dart
rename to tests/language_strong/non_const_constructor_without_body_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/non_const_super_negative_test.dart b/tests/language_strong/non_const_super_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/non_const_super_negative_test.dart
rename to tests/language_strong/non_const_super_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/non_dominating_loop_test.dart b/tests/language_strong/non_dominating_loop_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/non_dominating_loop_test.dart
rename to tests/language_strong/non_dominating_loop_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/non_parameterized_factory2_test.dart b/tests/language_strong/non_parameterized_factory2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/non_parameterized_factory2_test.dart
rename to tests/language_strong/non_parameterized_factory2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/non_parameterized_factory_test.dart b/tests/language_strong/non_parameterized_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/non_parameterized_factory_test.dart
rename to tests/language_strong/non_parameterized_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/not_enough_positional_arguments_test.dart b/tests/language_strong/not_enough_positional_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/not_enough_positional_arguments_test.dart
rename to tests/language_strong/not_enough_positional_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null2_test.dart b/tests/language_strong/null2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null2_test.dart
rename to tests/language_strong/null2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_access_error_test.dart b/tests/language_strong/null_access_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_access_error_test.dart
rename to tests/language_strong/null_access_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_inline_test.dart b/tests/language_strong/null_inline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_inline_test.dart
rename to tests/language_strong/null_inline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_is2_test.dart b/tests/language_strong/null_is2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_is2_test.dart
rename to tests/language_strong/null_is2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_is_test.dart b/tests/language_strong/null_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_is_test.dart
rename to tests/language_strong/null_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_method_test.dart b/tests/language_strong/null_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_method_test.dart
rename to tests/language_strong/null_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_no_such_method_test.dart b/tests/language_strong/null_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_no_such_method_test.dart
rename to tests/language_strong/null_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_test.dart b/tests/language_strong/null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_test.dart
rename to tests/language_strong/null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_to_string2_test.dart b/tests/language_strong/null_to_string2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_to_string2_test.dart
rename to tests/language_strong/null_to_string2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/null_to_string_test.dart b/tests/language_strong/null_to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/null_to_string_test.dart
rename to tests/language_strong/null_to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/nullaware_opt_test.dart b/tests/language_strong/nullaware_opt_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/nullaware_opt_test.dart
rename to tests/language_strong/nullaware_opt_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/number_constant_folding1_test.dart b/tests/language_strong/number_constant_folding1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/number_constant_folding1_test.dart
rename to tests/language_strong/number_constant_folding1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/number_identifier_test.dart b/tests/language_strong/number_identifier_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/number_identifier_test.dart
rename to tests/language_strong/number_identifier_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/number_identity2_test.dart b/tests/language_strong/number_identity2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/number_identity2_test.dart
rename to tests/language_strong/number_identity2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/number_identity_test.dart b/tests/language_strong/number_identity_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/number_identity_test.dart
rename to tests/language_strong/number_identity_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/number_syntax_test.dart b/tests/language_strong/number_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/number_syntax_test.dart
rename to tests/language_strong/number_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/numbers_test.dart b/tests/language_strong/numbers_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/numbers_test.dart
rename to tests/language_strong/numbers_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/on_catch_malformed_type_test.dart b/tests/language_strong/on_catch_malformed_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/on_catch_malformed_type_test.dart
rename to tests/language_strong/on_catch_malformed_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator1_negative_test.dart b/tests/language_strong/operator1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator1_negative_test.dart
rename to tests/language_strong/operator1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator2_negative_test.dart b/tests/language_strong/operator2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator2_negative_test.dart
rename to tests/language_strong/operator2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator2_test.dart b/tests/language_strong/operator2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator2_test.dart
rename to tests/language_strong/operator2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator3_test.dart b/tests/language_strong/operator3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator3_test.dart
rename to tests/language_strong/operator3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator4_test.dart b/tests/language_strong/operator4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator4_test.dart
rename to tests/language_strong/operator4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator5_test.dart b/tests/language_strong/operator5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator5_test.dart
rename to tests/language_strong/operator5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator6_test.dart b/tests/language_strong/operator6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator6_test.dart
rename to tests/language_strong/operator6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator_equals_test.dart b/tests/language_strong/operator_equals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator_equals_test.dart
rename to tests/language_strong/operator_equals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator_index_evaluation_order_test.dart b/tests/language_strong/operator_index_evaluation_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator_index_evaluation_order_test.dart
rename to tests/language_strong/operator_index_evaluation_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator_negate_and_method_negate_test.dart b/tests/language_strong/operator_negate_and_method_negate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator_negate_and_method_negate_test.dart
rename to tests/language_strong/operator_negate_and_method_negate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/operator_test.dart b/tests/language_strong/operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/operator_test.dart
rename to tests/language_strong/operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimize_redundant_array_load_test.dart b/tests/language_strong/optimize_redundant_array_load_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimize_redundant_array_load_test.dart
rename to tests/language_strong/optimize_redundant_array_load_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_constant_array_string_access_test.dart b/tests/language_strong/optimized_constant_array_string_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_constant_array_string_access_test.dart
rename to tests/language_strong/optimized_constant_array_string_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_hoisting_checked_mode_assert_test.dart b/tests/language_strong/optimized_hoisting_checked_mode_assert_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_hoisting_checked_mode_assert_test.dart
rename to tests/language_strong/optimized_hoisting_checked_mode_assert_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_isempty_test.dart b/tests/language_strong/optimized_isempty_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_isempty_test.dart
rename to tests/language_strong/optimized_isempty_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_lists_test.dart b/tests/language_strong/optimized_lists_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_lists_test.dart
rename to tests/language_strong/optimized_lists_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_setter_test.dart b/tests/language_strong/optimized_setter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_setter_test.dart
rename to tests/language_strong/optimized_setter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_string_charat_test.dart b/tests/language_strong/optimized_string_charat_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_string_charat_test.dart
rename to tests/language_strong/optimized_string_charat_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optimized_string_charcodeat_test.dart b/tests/language_strong/optimized_string_charcodeat_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optimized_string_charcodeat_test.dart
rename to tests/language_strong/optimized_string_charcodeat_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/optional_named_parameters_test.dart b/tests/language_strong/optional_named_parameters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/optional_named_parameters_test.dart
rename to tests/language_strong/optional_named_parameters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ordered_maps_test.dart b/tests/language_strong/ordered_maps_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ordered_maps_test.dart
rename to tests/language_strong/ordered_maps_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/osr_test.dart b/tests/language_strong/osr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/osr_test.dart
rename to tests/language_strong/osr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/other_library.dart b/tests/language_strong/other_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/other_library.dart
rename to tests/language_strong/other_library.dart
diff --git a/pkg/dev_compiler/test/codegen/language/overridden_no_such_method.dart b/tests/language_strong/overridden_no_such_method.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/overridden_no_such_method.dart
rename to tests/language_strong/overridden_no_such_method.dart
diff --git a/pkg/dev_compiler/test/codegen/language/overridden_no_such_method_test.dart b/tests/language_strong/overridden_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/overridden_no_such_method_test.dart
rename to tests/language_strong/overridden_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_field_method1_negative_test.dart b/tests/language_strong/override_field_method1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_field_method1_negative_test.dart
rename to tests/language_strong/override_field_method1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_field_method2_negative_test.dart b/tests/language_strong/override_field_method2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_field_method2_negative_test.dart
rename to tests/language_strong/override_field_method2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_field_method4_negative_test.dart b/tests/language_strong/override_field_method4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_field_method4_negative_test.dart
rename to tests/language_strong/override_field_method4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_field_method5_negative_test.dart b/tests/language_strong/override_field_method5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_field_method5_negative_test.dart
rename to tests/language_strong/override_field_method5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_field_test.dart b/tests/language_strong/override_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_field_test.dart
rename to tests/language_strong/override_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_abstract_test.dart b/tests/language_strong/override_inheritance_abstract_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_abstract_test.dart
rename to tests/language_strong/override_inheritance_abstract_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_field_test.dart b/tests/language_strong/override_inheritance_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_field_test.dart
rename to tests/language_strong/override_inheritance_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_generic_test.dart b/tests/language_strong/override_inheritance_generic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_generic_test.dart
rename to tests/language_strong/override_inheritance_generic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_method_test.dart b/tests/language_strong/override_inheritance_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_method_test.dart
rename to tests/language_strong/override_inheritance_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_mixed_test.dart b/tests/language_strong/override_inheritance_mixed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_mixed_test.dart
rename to tests/language_strong/override_inheritance_mixed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_inheritance_no_such_method_test.dart b/tests/language_strong/override_inheritance_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_inheritance_no_such_method_test.dart
rename to tests/language_strong/override_inheritance_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/override_method_with_field_test.dart b/tests/language_strong/override_method_with_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/override_method_with_field_test.dart
rename to tests/language_strong/override_method_with_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/param1_test.dart b/tests/language_strong/param1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/param1_test.dart
rename to tests/language_strong/param1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/param2_test.dart b/tests/language_strong/param2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/param2_test.dart
rename to tests/language_strong/param2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/param_test.dart b/tests/language_strong/param_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/param_test.dart
rename to tests/language_strong/param_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_default_test.dart b/tests/language_strong/parameter_default_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_default_test.dart
rename to tests/language_strong/parameter_default_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer1_negative_test.dart b/tests/language_strong/parameter_initializer1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer1_negative_test.dart
rename to tests/language_strong/parameter_initializer1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer2_negative_test.dart b/tests/language_strong/parameter_initializer2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer2_negative_test.dart
rename to tests/language_strong/parameter_initializer2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer2_test.dart b/tests/language_strong/parameter_initializer2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer2_test.dart
rename to tests/language_strong/parameter_initializer2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer3_negative_test.dart b/tests/language_strong/parameter_initializer3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer3_negative_test.dart
rename to tests/language_strong/parameter_initializer3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer4_negative_test.dart b/tests/language_strong/parameter_initializer4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer4_negative_test.dart
rename to tests/language_strong/parameter_initializer4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer5_test.dart b/tests/language_strong/parameter_initializer5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer5_test.dart
rename to tests/language_strong/parameter_initializer5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer6_negative_test.dart b/tests/language_strong/parameter_initializer6_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer6_negative_test.dart
rename to tests/language_strong/parameter_initializer6_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_initializer_test.dart b/tests/language_strong/parameter_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_initializer_test.dart
rename to tests/language_strong/parameter_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_metadata_test.dart b/tests/language_strong/parameter_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_metadata_test.dart
rename to tests/language_strong/parameter_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_name_conflict_test.dart b/tests/language_strong/parameter_name_conflict_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_name_conflict_test.dart
rename to tests/language_strong/parameter_name_conflict_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parameter_types_specialization_test.dart b/tests/language_strong/parameter_types_specialization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parameter_types_specialization_test.dart
rename to tests/language_strong/parameter_types_specialization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parse_closures_in_initializers_test.dart b/tests/language_strong/parse_closures_in_initializers_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parse_closures_in_initializers_test.dart
rename to tests/language_strong/parse_closures_in_initializers_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parse_types_test.dart b/tests/language_strong/parse_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parse_types_test.dart
rename to tests/language_strong/parse_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/parser_quirks_test.dart b/tests/language_strong/parser_quirks_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/parser_quirks_test.dart
rename to tests/language_strong/parser_quirks_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/part2_test.dart b/tests/language_strong/part2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/part2_test.dart
rename to tests/language_strong/part2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/part_part.dart b/tests/language_strong/part_part.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/part_part.dart
rename to tests/language_strong/part_part.dart
diff --git a/pkg/dev_compiler/test/codegen/language/part_test.dart b/tests/language_strong/part_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/part_test.dart
rename to tests/language_strong/part_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/partial_min_test.dart b/tests/language_strong/partial_min_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/partial_min_test.dart
rename to tests/language_strong/partial_min_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/patch_test.dart b/tests/language_strong/patch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/patch_test.dart
rename to tests/language_strong/patch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/phi_merge_test.dart b/tests/language_strong/phi_merge_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/phi_merge_test.dart
rename to tests/language_strong/phi_merge_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/positional_parameters_type_test.dart b/tests/language_strong/positional_parameters_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/positional_parameters_type_test.dart
rename to tests/language_strong/positional_parameters_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/positive_bit_operations_test.dart b/tests/language_strong/positive_bit_operations_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/positive_bit_operations_test.dart
rename to tests/language_strong/positive_bit_operations_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix101_test.dart b/tests/language_strong/prefix101_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix101_test.dart
rename to tests/language_strong/prefix101_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix10_negative_test.dart b/tests/language_strong/prefix10_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix10_negative_test.dart
rename to tests/language_strong/prefix10_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix10_test.dart b/tests/language_strong/prefix10_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix10_test.dart
rename to tests/language_strong/prefix10_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix11_negative_test.dart b/tests/language_strong/prefix11_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix11_negative_test.dart
rename to tests/language_strong/prefix11_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix11_test.dart b/tests/language_strong/prefix11_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix11_test.dart
rename to tests/language_strong/prefix11_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix12_negative_test.dart b/tests/language_strong/prefix12_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix12_negative_test.dart
rename to tests/language_strong/prefix12_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix12_test.dart b/tests/language_strong/prefix12_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix12_test.dart
rename to tests/language_strong/prefix12_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix13_negative_test.dart b/tests/language_strong/prefix13_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix13_negative_test.dart
rename to tests/language_strong/prefix13_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix14_test.dart b/tests/language_strong/prefix14_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix14_test.dart
rename to tests/language_strong/prefix14_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix15_negative_test.dart b/tests/language_strong/prefix15_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix15_negative_test.dart
rename to tests/language_strong/prefix15_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix15_test.dart b/tests/language_strong/prefix15_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix15_test.dart
rename to tests/language_strong/prefix15_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix16_test.dart b/tests/language_strong/prefix16_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix16_test.dart
rename to tests/language_strong/prefix16_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix17_test.dart b/tests/language_strong/prefix17_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix17_test.dart
rename to tests/language_strong/prefix17_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix18_negative_test.dart b/tests/language_strong/prefix18_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix18_negative_test.dart
rename to tests/language_strong/prefix18_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix1_negative_test.dart b/tests/language_strong/prefix1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix1_negative_test.dart
rename to tests/language_strong/prefix1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix21_bad_lib.dart b/tests/language_strong/prefix21_bad_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix21_bad_lib.dart
rename to tests/language_strong/prefix21_bad_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix21_good_lib.dart b/tests/language_strong/prefix21_good_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix21_good_lib.dart
rename to tests/language_strong/prefix21_good_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix21_test.dart b/tests/language_strong/prefix21_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix21_test.dart
rename to tests/language_strong/prefix21_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix22_test.dart b/tests/language_strong/prefix22_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix22_test.dart
rename to tests/language_strong/prefix22_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix23_test.dart b/tests/language_strong/prefix23_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix23_test.dart
rename to tests/language_strong/prefix23_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix24_lib1.dart b/tests/language_strong/prefix24_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix24_lib1.dart
rename to tests/language_strong/prefix24_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix24_lib2.dart b/tests/language_strong/prefix24_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix24_lib2.dart
rename to tests/language_strong/prefix24_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix24_lib3.dart b/tests/language_strong/prefix24_lib3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix24_lib3.dart
rename to tests/language_strong/prefix24_lib3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix24_test.dart b/tests/language_strong/prefix24_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix24_test.dart
rename to tests/language_strong/prefix24_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix2_negative_test.dart b/tests/language_strong/prefix2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix2_negative_test.dart
rename to tests/language_strong/prefix2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix3_negative_test.dart b/tests/language_strong/prefix3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix3_negative_test.dart
rename to tests/language_strong/prefix3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix4_negative_test.dart b/tests/language_strong/prefix4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix4_negative_test.dart
rename to tests/language_strong/prefix4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix5_negative_test.dart b/tests/language_strong/prefix5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix5_negative_test.dart
rename to tests/language_strong/prefix5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix6_negative_test.dart b/tests/language_strong/prefix6_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix6_negative_test.dart
rename to tests/language_strong/prefix6_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix7_negative_test.dart b/tests/language_strong/prefix7_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix7_negative_test.dart
rename to tests/language_strong/prefix7_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix8_negative_test.dart b/tests/language_strong/prefix8_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix8_negative_test.dart
rename to tests/language_strong/prefix8_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_assignment_test.dart b/tests/language_strong/prefix_assignment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_assignment_test.dart
rename to tests/language_strong/prefix_assignment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_identifier_reference_test.dart b/tests/language_strong/prefix_identifier_reference_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_identifier_reference_test.dart
rename to tests/language_strong/prefix_identifier_reference_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_new_test.dart b/tests/language_strong/prefix_new_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_new_test.dart
rename to tests/language_strong/prefix_new_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_new_test1.dart b/tests/language_strong/prefix_new_test1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_new_test1.dart
rename to tests/language_strong/prefix_new_test1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_new_test2.dart b/tests/language_strong/prefix_new_test2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_new_test2.dart
rename to tests/language_strong/prefix_new_test2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_test.dart b/tests/language_strong/prefix_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_test.dart
rename to tests/language_strong/prefix_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_test1.dart b/tests/language_strong/prefix_test1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_test1.dart
rename to tests/language_strong/prefix_test1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_test2.dart b/tests/language_strong/prefix_test2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_test2.dart
rename to tests/language_strong/prefix_test2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/prefix_unqualified_invocation_test.dart b/tests/language_strong/prefix_unqualified_invocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/prefix_unqualified_invocation_test.dart
rename to tests/language_strong/prefix_unqualified_invocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private1.dart b/tests/language_strong/private1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private1.dart
rename to tests/language_strong/private1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private2.dart b/tests/language_strong/private2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private2.dart
rename to tests/language_strong/private2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private2_lib.dart b/tests/language_strong/private2_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private2_lib.dart
rename to tests/language_strong/private2_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private2_lib.lib b/tests/language_strong/private2_lib.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private2_lib.lib
rename to tests/language_strong/private2_lib.lib
diff --git a/pkg/dev_compiler/test/codegen/language/private2_main.dart b/tests/language_strong/private2_main.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private2_main.dart
rename to tests/language_strong/private2_main.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private2_test.dart b/tests/language_strong/private2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private2_test.dart
rename to tests/language_strong/private2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private3.dart b/tests/language_strong/private3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private3.dart
rename to tests/language_strong/private3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private3_test.dart b/tests/language_strong/private3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private3_test.dart
rename to tests/language_strong/private3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private4_test.dart b/tests/language_strong/private4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private4_test.dart
rename to tests/language_strong/private4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_access_lib.dart b/tests/language_strong/private_access_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_access_lib.dart
rename to tests/language_strong/private_access_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_access_test.dart b/tests/language_strong/private_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_access_test.dart
rename to tests/language_strong/private_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_clash_lib.dart b/tests/language_strong/private_clash_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_clash_lib.dart
rename to tests/language_strong/private_clash_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_clash_test.dart b/tests/language_strong/private_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_clash_test.dart
rename to tests/language_strong/private_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_lib b/tests/language_strong/private_lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_lib
rename to tests/language_strong/private_lib
diff --git a/pkg/dev_compiler/test/codegen/language/private_lib.dart b/tests/language_strong/private_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_lib.dart
rename to tests/language_strong/private_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_main.dart b/tests/language_strong/private_main.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_main.dart
rename to tests/language_strong/private_main.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member1_lib_b.dart b/tests/language_strong/private_member1_lib_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member1_lib_b.dart
rename to tests/language_strong/private_member1_lib_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member1_negative_test.dart b/tests/language_strong/private_member1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member1_negative_test.dart
rename to tests/language_strong/private_member1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member2_lib_b.dart b/tests/language_strong/private_member2_lib_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member2_lib_b.dart
rename to tests/language_strong/private_member2_lib_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member2_negative_test.dart b/tests/language_strong/private_member2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member2_negative_test.dart
rename to tests/language_strong/private_member2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member3_lib_b.dart b/tests/language_strong/private_member3_lib_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member3_lib_b.dart
rename to tests/language_strong/private_member3_lib_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member3_negative_test.dart b/tests/language_strong/private_member3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member3_negative_test.dart
rename to tests/language_strong/private_member3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member_lib_b.dart b/tests/language_strong/private_member_lib_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member_lib_b.dart
rename to tests/language_strong/private_member_lib_b.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_member_test.dart b/tests/language_strong/private_member_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_member_test.dart
rename to tests/language_strong/private_member_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_mixin2_test.dart b/tests/language_strong/private_mixin2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_mixin2_test.dart
rename to tests/language_strong/private_mixin2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_mixin_exception_throw_test.dart b/tests/language_strong/private_mixin_exception_throw_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_mixin_exception_throw_test.dart
rename to tests/language_strong/private_mixin_exception_throw_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_other.dart b/tests/language_strong/private_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_other.dart
rename to tests/language_strong/private_other.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_other.lib b/tests/language_strong/private_other.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_other.lib
rename to tests/language_strong/private_other.lib
diff --git a/pkg/dev_compiler/test/codegen/language/private_other_mixin2.lib b/tests/language_strong/private_other_mixin2.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_other_mixin2.lib
rename to tests/language_strong/private_other_mixin2.lib
diff --git a/pkg/dev_compiler/test/codegen/language/private_selector_lib.dart b/tests/language_strong/private_selector_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_selector_lib.dart
rename to tests/language_strong/private_selector_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_selector_test.dart b/tests/language_strong/private_selector_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_selector_test.dart
rename to tests/language_strong/private_selector_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/private_test.dart b/tests/language_strong/private_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/private_test.dart
rename to tests/language_strong/private_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/propagate_past_constant_test.dart b/tests/language_strong/propagate_past_constant_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/propagate_past_constant_test.dart
rename to tests/language_strong/propagate_past_constant_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/propagated_argument_type_check_test.dart b/tests/language_strong/propagated_argument_type_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/propagated_argument_type_check_test.dart
rename to tests/language_strong/propagated_argument_type_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/property_field_override_test.dart b/tests/language_strong/property_field_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/property_field_override_test.dart
rename to tests/language_strong/property_field_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/proxy2_test.dart b/tests/language_strong/proxy2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/proxy2_test.dart
rename to tests/language_strong/proxy2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/proxy3_test.dart b/tests/language_strong/proxy3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/proxy3_test.dart
rename to tests/language_strong/proxy3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/proxy_test.dart b/tests/language_strong/proxy_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/proxy_test.dart
rename to tests/language_strong/proxy_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/pure_function2_test.dart b/tests/language_strong/pure_function2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/pure_function2_test.dart
rename to tests/language_strong/pure_function2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/pure_function_test.dart b/tests/language_strong/pure_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/pure_function_test.dart
rename to tests/language_strong/pure_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/range_analysis2_test.dart b/tests/language_strong/range_analysis2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/range_analysis2_test.dart
rename to tests/language_strong/range_analysis2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/range_analysis3_test.dart b/tests/language_strong/range_analysis3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/range_analysis3_test.dart
rename to tests/language_strong/range_analysis3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/range_analysis_test.dart b/tests/language_strong/range_analysis_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/range_analysis_test.dart
rename to tests/language_strong/range_analysis_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/raw_string_test.dart b/tests/language_strong/raw_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/raw_string_test.dart
rename to tests/language_strong/raw_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/readuntil_test.dat b/tests/language_strong/readuntil_test.dat
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/readuntil_test.dat
rename to tests/language_strong/readuntil_test.dat
diff --git a/pkg/dev_compiler/test/codegen/language/recursive_calls_test.dart b/tests/language_strong/recursive_calls_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/recursive_calls_test.dart
rename to tests/language_strong/recursive_calls_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/recursive_generic_test.dart b/tests/language_strong/recursive_generic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/recursive_generic_test.dart
rename to tests/language_strong/recursive_generic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/recursive_inheritance_test.dart b/tests/language_strong/recursive_inheritance_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/recursive_inheritance_test.dart
rename to tests/language_strong/recursive_inheritance_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/recursive_loop_phis_test.dart b/tests/language_strong/recursive_loop_phis_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/recursive_loop_phis_test.dart
rename to tests/language_strong/recursive_loop_phis_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_constructor_initializer_test.dart b/tests/language_strong/redirecting_constructor_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_constructor_initializer_test.dart
rename to tests/language_strong/redirecting_constructor_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_default_values_test.dart b/tests/language_strong/redirecting_factory_default_values_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_default_values_test.dart
rename to tests/language_strong/redirecting_factory_default_values_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_incompatible_signature_test.dart b/tests/language_strong/redirecting_factory_incompatible_signature_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_incompatible_signature_test.dart
rename to tests/language_strong/redirecting_factory_incompatible_signature_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_infinite_steps_test.dart b/tests/language_strong/redirecting_factory_infinite_steps_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_infinite_steps_test.dart
rename to tests/language_strong/redirecting_factory_infinite_steps_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_long_test.dart b/tests/language_strong/redirecting_factory_long_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_long_test.dart
rename to tests/language_strong/redirecting_factory_long_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_malbounded_test.dart b/tests/language_strong/redirecting_factory_malbounded_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_malbounded_test.dart
rename to tests/language_strong/redirecting_factory_malbounded_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/redirecting_factory_reflection_test.dart b/tests/language_strong/redirecting_factory_reflection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/redirecting_factory_reflection_test.dart
rename to tests/language_strong/redirecting_factory_reflection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reexport_core_helper.dart b/tests/language_strong/reexport_core_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reexport_core_helper.dart
rename to tests/language_strong/reexport_core_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reexport_core_test.dart b/tests/language_strong/reexport_core_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reexport_core_test.dart
rename to tests/language_strong/reexport_core_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ref_before_declaration_test.dart b/tests/language_strong/ref_before_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ref_before_declaration_test.dart
rename to tests/language_strong/ref_before_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/refine_receiver_null_test.dart b/tests/language_strong/refine_receiver_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/refine_receiver_null_test.dart
rename to tests/language_strong/refine_receiver_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reg_ex2_test.dart b/tests/language_strong/reg_ex2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reg_ex2_test.dart
rename to tests/language_strong/reg_ex2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reg_exp2_test.dart b/tests/language_strong/reg_exp2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reg_exp2_test.dart
rename to tests/language_strong/reg_exp2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reg_exp3_test.dart b/tests/language_strong/reg_exp3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reg_exp3_test.dart
rename to tests/language_strong/reg_exp3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reg_exp_test.dart b/tests/language_strong/reg_exp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reg_exp_test.dart
rename to tests/language_strong/reg_exp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_10996_lib.dart b/tests/language_strong/regress_10996_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_10996_lib.dart
rename to tests/language_strong/regress_10996_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_10996_test.dart b/tests/language_strong/regress_10996_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_10996_test.dart
rename to tests/language_strong/regress_10996_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_11010_test.dart b/tests/language_strong/regress_11010_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_11010_test.dart
rename to tests/language_strong/regress_11010_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_11800_test.dart b/tests/language_strong/regress_11800_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_11800_test.dart
rename to tests/language_strong/regress_11800_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_12561_test.dart b/tests/language_strong/regress_12561_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_12561_test.dart
rename to tests/language_strong/regress_12561_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_12615_test.dart b/tests/language_strong/regress_12615_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_12615_test.dart
rename to tests/language_strong/regress_12615_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_13462_0_test.dart b/tests/language_strong/regress_13462_0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_13462_0_test.dart
rename to tests/language_strong/regress_13462_0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_13462_1_test.dart b/tests/language_strong/regress_13462_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_13462_1_test.dart
rename to tests/language_strong/regress_13462_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_13494_test.dart b/tests/language_strong/regress_13494_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_13494_test.dart
rename to tests/language_strong/regress_13494_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_14105_test.dart b/tests/language_strong/regress_14105_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_14105_test.dart
rename to tests/language_strong/regress_14105_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_14348_test.dart b/tests/language_strong/regress_14348_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_14348_test.dart
rename to tests/language_strong/regress_14348_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_16640_test.dart b/tests/language_strong/regress_16640_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_16640_test.dart
rename to tests/language_strong/regress_16640_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_17382_test.dart b/tests/language_strong/regress_17382_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_17382_test.dart
rename to tests/language_strong/regress_17382_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_18435_test.dart b/tests/language_strong/regress_18435_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_18435_test.dart
rename to tests/language_strong/regress_18435_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_18535_test.dart b/tests/language_strong/regress_18535_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_18535_test.dart
rename to tests/language_strong/regress_18535_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_18865_test.dart b/tests/language_strong/regress_18865_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_18865_test.dart
rename to tests/language_strong/regress_18865_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_19413_bar.dart b/tests/language_strong/regress_19413_bar.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_19413_bar.dart
rename to tests/language_strong/regress_19413_bar.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_19413_foo.dart b/tests/language_strong/regress_19413_foo.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_19413_foo.dart
rename to tests/language_strong/regress_19413_foo.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_19413_test.dart b/tests/language_strong/regress_19413_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_19413_test.dart
rename to tests/language_strong/regress_19413_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_19728_test.dart b/tests/language_strong/regress_19728_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_19728_test.dart
rename to tests/language_strong/regress_19728_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_20074_test.dart b/tests/language_strong/regress_20074_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_20074_test.dart
rename to tests/language_strong/regress_20074_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_20394_lib.dart b/tests/language_strong/regress_20394_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_20394_lib.dart
rename to tests/language_strong/regress_20394_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_20394_test.dart b/tests/language_strong/regress_20394_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_20394_test.dart
rename to tests/language_strong/regress_20394_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_20840_test.dart b/tests/language_strong/regress_20840_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_20840_test.dart
rename to tests/language_strong/regress_20840_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21016_test.dart b/tests/language_strong/regress_21016_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21016_test.dart
rename to tests/language_strong/regress_21016_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21793_test.dart b/tests/language_strong/regress_21793_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21793_test.dart
rename to tests/language_strong/regress_21793_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21795_test.dart b/tests/language_strong/regress_21795_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21795_test.dart
rename to tests/language_strong/regress_21795_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21912_test.dart b/tests/language_strong/regress_21912_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21912_test.dart
rename to tests/language_strong/regress_21912_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_1_test.dart b/tests/language_strong/regress_21998_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_1_test.dart
rename to tests/language_strong/regress_21998_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_2_test.dart b/tests/language_strong/regress_21998_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_2_test.dart
rename to tests/language_strong/regress_21998_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_3_test.dart b/tests/language_strong/regress_21998_3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_3_test.dart
rename to tests/language_strong/regress_21998_3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_4_test.dart b/tests/language_strong/regress_21998_4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_4_test.dart
rename to tests/language_strong/regress_21998_4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_lib1.dart b/tests/language_strong/regress_21998_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_lib1.dart
rename to tests/language_strong/regress_21998_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_lib2.dart b/tests/language_strong/regress_21998_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_lib2.dart
rename to tests/language_strong/regress_21998_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_21998_lib3.dart b/tests/language_strong/regress_21998_lib3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_21998_lib3.dart
rename to tests/language_strong/regress_21998_lib3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22438_test.dart b/tests/language_strong/regress_22438_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22438_test.dart
rename to tests/language_strong/regress_22438_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22443_lib.dart b/tests/language_strong/regress_22443_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22443_lib.dart
rename to tests/language_strong/regress_22443_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22443_test.dart b/tests/language_strong/regress_22443_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22443_test.dart
rename to tests/language_strong/regress_22443_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22445_test.dart b/tests/language_strong/regress_22445_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22445_test.dart
rename to tests/language_strong/regress_22445_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22579_test.dart b/tests/language_strong/regress_22579_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22579_test.dart
rename to tests/language_strong/regress_22579_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22666_test.dart b/tests/language_strong/regress_22666_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22666_test.dart
rename to tests/language_strong/regress_22666_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22700_test.dart b/tests/language_strong/regress_22700_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22700_test.dart
rename to tests/language_strong/regress_22700_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22719_test.dart b/tests/language_strong/regress_22719_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22719_test.dart
rename to tests/language_strong/regress_22719_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22728_test.dart b/tests/language_strong/regress_22728_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22728_test.dart
rename to tests/language_strong/regress_22728_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22777_test.dart b/tests/language_strong/regress_22777_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22777_test.dart
rename to tests/language_strong/regress_22777_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22822_test.dart b/tests/language_strong/regress_22822_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22822_test.dart
rename to tests/language_strong/regress_22822_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22858_test.dart b/tests/language_strong/regress_22858_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22858_test.dart
rename to tests/language_strong/regress_22858_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22936_test.dart b/tests/language_strong/regress_22936_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22936_test.dart
rename to tests/language_strong/regress_22936_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_22976_test.dart b/tests/language_strong/regress_22976_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_22976_test.dart
rename to tests/language_strong/regress_22976_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23038_test.dart b/tests/language_strong/regress_23038_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23038_test.dart
rename to tests/language_strong/regress_23038_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23046_test.dart b/tests/language_strong/regress_23046_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23046_test.dart
rename to tests/language_strong/regress_23046_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23051_test.dart b/tests/language_strong/regress_23051_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23051_test.dart
rename to tests/language_strong/regress_23051_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23089_test.dart b/tests/language_strong/regress_23089_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23089_test.dart
rename to tests/language_strong/regress_23089_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23408_lib.dart b/tests/language_strong/regress_23408_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23408_lib.dart
rename to tests/language_strong/regress_23408_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23408_test.dart b/tests/language_strong/regress_23408_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23408_test.dart
rename to tests/language_strong/regress_23408_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23498_test.dart b/tests/language_strong/regress_23498_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23498_test.dart
rename to tests/language_strong/regress_23498_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23500_test.dart b/tests/language_strong/regress_23500_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23500_test.dart
rename to tests/language_strong/regress_23500_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23537_test.dart b/tests/language_strong/regress_23537_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23537_test.dart
rename to tests/language_strong/regress_23537_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_23650_test.dart b/tests/language_strong/regress_23650_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_23650_test.dart
rename to tests/language_strong/regress_23650_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/regress_r24720_test.dart b/tests/language_strong/regress_r24720_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/regress_r24720_test.dart
rename to tests/language_strong/regress_r24720_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reify_typevar_static_test.dart b/tests/language_strong/reify_typevar_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reify_typevar_static_test.dart
rename to tests/language_strong/reify_typevar_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/reify_typevar_test.dart b/tests/language_strong/reify_typevar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/reify_typevar_test.dart
rename to tests/language_strong/reify_typevar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/resolution_test.dart b/tests/language_strong/resolution_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/resolution_test.dart
rename to tests/language_strong/resolution_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/resolve_test.dart b/tests/language_strong/resolve_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/resolve_test.dart
rename to tests/language_strong/resolve_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rethrow_test.dart b/tests/language_strong/rethrow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rethrow_test.dart
rename to tests/language_strong/rethrow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/return_in_loop_test.dart b/tests/language_strong/return_in_loop_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/return_in_loop_test.dart
rename to tests/language_strong/return_in_loop_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/return_this_type_test.dart b/tests/language_strong/return_this_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/return_this_type_test.dart
rename to tests/language_strong/return_this_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/return_type_test.dart b/tests/language_strong/return_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/return_type_test.dart
rename to tests/language_strong/return_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_assign_test.dart b/tests/language_strong/rewrite_assign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_assign_test.dart
rename to tests/language_strong/rewrite_assign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_compound_assign_test.dart b/tests/language_strong/rewrite_compound_assign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_compound_assign_test.dart
rename to tests/language_strong/rewrite_compound_assign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_conditional_test.dart b/tests/language_strong/rewrite_conditional_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_conditional_test.dart
rename to tests/language_strong/rewrite_conditional_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_for_update_order_test.dart b/tests/language_strong/rewrite_for_update_order_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_for_update_order_test.dart
rename to tests/language_strong/rewrite_for_update_order_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_if_empty_then_test.dart b/tests/language_strong/rewrite_if_empty_then_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_if_empty_then_test.dart
rename to tests/language_strong/rewrite_if_empty_then_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_if_return_test.dart b/tests/language_strong/rewrite_if_return_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_if_return_test.dart
rename to tests/language_strong/rewrite_if_return_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_if_swap_test.dart b/tests/language_strong/rewrite_if_swap_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_if_swap_test.dart
rename to tests/language_strong/rewrite_if_swap_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_implicit_this_test.dart b/tests/language_strong/rewrite_implicit_this_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_implicit_this_test.dart
rename to tests/language_strong/rewrite_implicit_this_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_logical_test.dart b/tests/language_strong/rewrite_logical_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_logical_test.dart
rename to tests/language_strong/rewrite_logical_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_nested_if1_test.dart b/tests/language_strong/rewrite_nested_if1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_nested_if1_test.dart
rename to tests/language_strong/rewrite_nested_if1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_nested_if2_test.dart b/tests/language_strong/rewrite_nested_if2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_nested_if2_test.dart
rename to tests/language_strong/rewrite_nested_if2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_nested_if3_test.dart b/tests/language_strong/rewrite_nested_if3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_nested_if3_test.dart
rename to tests/language_strong/rewrite_nested_if3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_swap_test.dart b/tests/language_strong/rewrite_swap_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_swap_test.dart
rename to tests/language_strong/rewrite_swap_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_variable_initializer_test.dart b/tests/language_strong/rewrite_variable_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_variable_initializer_test.dart
rename to tests/language_strong/rewrite_variable_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_while_many_exits_test.dart b/tests/language_strong/rewrite_while_many_exits_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_while_many_exits_test.dart
rename to tests/language_strong/rewrite_while_many_exits_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/rewrite_while_test.dart b/tests/language_strong/rewrite_while_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/rewrite_while_test.dart
rename to tests/language_strong/rewrite_while_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/round_test.dart b/tests/language_strong/round_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/round_test.dart
rename to tests/language_strong/round_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/runtime_type_test.dart b/tests/language_strong/runtime_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/runtime_type_test.dart
rename to tests/language_strong/runtime_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/savannah_test.dart b/tests/language_strong/savannah_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/savannah_test.dart
rename to tests/language_strong/savannah_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/scanner_test.dart b/tests/language_strong/scanner_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/scanner_test.dart
rename to tests/language_strong/scanner_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/scope_variable_test.dart b/tests/language_strong/scope_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/scope_variable_test.dart
rename to tests/language_strong/scope_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/scoped_variables_try_catch_test.dart b/tests/language_strong/scoped_variables_try_catch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/scoped_variables_try_catch_test.dart
rename to tests/language_strong/scoped_variables_try_catch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script1_negative_lib.dart b/tests/language_strong/script1_negative_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script1_negative_lib.dart
rename to tests/language_strong/script1_negative_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script1_negative_test.dart b/tests/language_strong/script1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script1_negative_test.dart
rename to tests/language_strong/script1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script2_negative_lib.dart b/tests/language_strong/script2_negative_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script2_negative_lib.dart
rename to tests/language_strong/script2_negative_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script2_negative_source.dart b/tests/language_strong/script2_negative_source.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script2_negative_source.dart
rename to tests/language_strong/script2_negative_source.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script2_negative_test.dart b/tests/language_strong/script2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script2_negative_test.dart
rename to tests/language_strong/script2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script_lib.dart b/tests/language_strong/script_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script_lib.dart
rename to tests/language_strong/script_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/script_source.dart b/tests/language_strong/script_source.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/script_source.dart
rename to tests/language_strong/script_source.dart
diff --git a/pkg/dev_compiler/test/codegen/language/second_test.dart b/tests/language_strong/second_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/second_test.dart
rename to tests/language_strong/second_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter0_test.dart b/tests/language_strong/setter0_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter0_test.dart
rename to tests/language_strong/setter0_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter1_test.dart b/tests/language_strong/setter1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter1_test.dart
rename to tests/language_strong/setter1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter2_test.dart b/tests/language_strong/setter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter2_test.dart
rename to tests/language_strong/setter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter3_test.dart b/tests/language_strong/setter3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter3_test.dart
rename to tests/language_strong/setter3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter4_test.dart b/tests/language_strong/setter4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter4_test.dart
rename to tests/language_strong/setter4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_declaration2_negative_test.dart b/tests/language_strong/setter_declaration2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_declaration2_negative_test.dart
rename to tests/language_strong/setter_declaration2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_declaration_negative_test.dart b/tests/language_strong/setter_declaration_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_declaration_negative_test.dart
rename to tests/language_strong/setter_declaration_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_no_getter_call_test.dart b/tests/language_strong/setter_no_getter_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_no_getter_call_test.dart
rename to tests/language_strong/setter_no_getter_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_no_getter_test.dart b/tests/language_strong/setter_no_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_no_getter_test.dart
rename to tests/language_strong/setter_no_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_override2_test.dart b/tests/language_strong/setter_override2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_override2_test.dart
rename to tests/language_strong/setter_override2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_override3_test.dart b/tests/language_strong/setter_override3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_override3_test.dart
rename to tests/language_strong/setter_override3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/setter_override_test.dart b/tests/language_strong/setter_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/setter_override_test.dart
rename to tests/language_strong/setter_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/side_effect_throw_test.dart b/tests/language_strong/side_effect_throw_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/side_effect_throw_test.dart
rename to tests/language_strong/side_effect_throw_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/skip_expression_test.dart b/tests/language_strong/skip_expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/skip_expression_test.dart
rename to tests/language_strong/skip_expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/smaller_4_Interface_Types_A11_t01_test.dart b/tests/language_strong/smaller_4_Interface_Types_A11_t01_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/smaller_4_Interface_Types_A11_t01_test.dart
rename to tests/language_strong/smaller_4_Interface_Types_A11_t01_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/smaller_4_Interface_Types_A11_t02_test.dart b/tests/language_strong/smaller_4_Interface_Types_A11_t02_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/smaller_4_Interface_Types_A11_t02_test.dart
rename to tests/language_strong/smaller_4_Interface_Types_A11_t02_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/smi_type_test.dart b/tests/language_strong/smi_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/smi_type_test.dart
rename to tests/language_strong/smi_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/source_self_negative_test.dart b/tests/language_strong/source_self_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/source_self_negative_test.dart
rename to tests/language_strong/source_self_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stack_overflow_stacktrace_test.dart b/tests/language_strong/stack_overflow_stacktrace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stack_overflow_stacktrace_test.dart
rename to tests/language_strong/stack_overflow_stacktrace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stack_overflow_test.dart b/tests/language_strong/stack_overflow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stack_overflow_test.dart
rename to tests/language_strong/stack_overflow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stack_trace_test.dart b/tests/language_strong/stack_trace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stack_trace_test.dart
rename to tests/language_strong/stack_trace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stacktrace_rethrow_error_test.dart b/tests/language_strong/stacktrace_rethrow_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stacktrace_rethrow_error_test.dart
rename to tests/language_strong/stacktrace_rethrow_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stacktrace_rethrow_nonerror_test.dart b/tests/language_strong/stacktrace_rethrow_nonerror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stacktrace_rethrow_nonerror_test.dart
rename to tests/language_strong/stacktrace_rethrow_nonerror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/stacktrace_test.dart b/tests/language_strong/stacktrace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/stacktrace_test.dart
rename to tests/language_strong/stacktrace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/state_mangling2_test.dart b/tests/language_strong/state_mangling2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/state_mangling2_test.dart
rename to tests/language_strong/state_mangling2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/state_mangling3_test.dart b/tests/language_strong/state_mangling3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/state_mangling3_test.dart
rename to tests/language_strong/state_mangling3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/state_mangling4_test.dart b/tests/language_strong/state_mangling4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/state_mangling4_test.dart
rename to tests/language_strong/state_mangling4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/state_mangling_test.dart b/tests/language_strong/state_mangling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/state_mangling_test.dart
rename to tests/language_strong/state_mangling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/statement_test.dart b/tests/language_strong/statement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/statement_test.dart
rename to tests/language_strong/statement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_call_wrong_argument_count_negative_test.dart b/tests/language_strong/static_call_wrong_argument_count_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_call_wrong_argument_count_negative_test.dart
rename to tests/language_strong/static_call_wrong_argument_count_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_closure_identical_test.dart b/tests/language_strong/static_closure_identical_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_closure_identical_test.dart
rename to tests/language_strong/static_closure_identical_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_const_field_reserved_name_test.dart b/tests/language_strong/static_const_field_reserved_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_const_field_reserved_name_test.dart
rename to tests/language_strong/static_const_field_reserved_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_const_field_test.dart b/tests/language_strong/static_const_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_const_field_test.dart
rename to tests/language_strong/static_const_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field1_test.dart b/tests/language_strong/static_field1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field1_test.dart
rename to tests/language_strong/static_field1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field1a_test.dart b/tests/language_strong/static_field1a_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field1a_test.dart
rename to tests/language_strong/static_field1a_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field2_test.dart b/tests/language_strong/static_field2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field2_test.dart
rename to tests/language_strong/static_field2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field2a_test.dart b/tests/language_strong/static_field2a_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field2a_test.dart
rename to tests/language_strong/static_field2a_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field3_test.dart b/tests/language_strong/static_field3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field3_test.dart
rename to tests/language_strong/static_field3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field_override1_test.dart b/tests/language_strong/static_field_override1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field_override1_test.dart
rename to tests/language_strong/static_field_override1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field_override2_test.dart b/tests/language_strong/static_field_override2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field_override2_test.dart
rename to tests/language_strong/static_field_override2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field_override3_test.dart b/tests/language_strong/static_field_override3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field_override3_test.dart
rename to tests/language_strong/static_field_override3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_field_test.dart b/tests/language_strong/static_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_field_test.dart
rename to tests/language_strong/static_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_final_field2_test.dart b/tests/language_strong/static_final_field2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_final_field2_test.dart
rename to tests/language_strong/static_final_field2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_getter_no_setter1_test.dart b/tests/language_strong/static_getter_no_setter1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_getter_no_setter1_test.dart
rename to tests/language_strong/static_getter_no_setter1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_getter_no_setter2_test.dart b/tests/language_strong/static_getter_no_setter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_getter_no_setter2_test.dart
rename to tests/language_strong/static_getter_no_setter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_getter_no_setter3_test.dart b/tests/language_strong/static_getter_no_setter3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_getter_no_setter3_test.dart
rename to tests/language_strong/static_getter_no_setter3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_implicit_closure_test.dart b/tests/language_strong/static_implicit_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_implicit_closure_test.dart
rename to tests/language_strong/static_implicit_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_initializer_type_error_test.dart b/tests/language_strong/static_initializer_type_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_initializer_type_error_test.dart
rename to tests/language_strong/static_initializer_type_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_inline_test.dart b/tests/language_strong/static_inline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_inline_test.dart
rename to tests/language_strong/static_inline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_parameter_test.dart b/tests/language_strong/static_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_parameter_test.dart
rename to tests/language_strong/static_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_postfix_operator_test.dart b/tests/language_strong/static_postfix_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_postfix_operator_test.dart
rename to tests/language_strong/static_postfix_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_setter_get_test.dart b/tests/language_strong/static_setter_get_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_setter_get_test.dart
rename to tests/language_strong/static_setter_get_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/static_top_level_test.dart b/tests/language_strong/static_top_level_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/static_top_level_test.dart
rename to tests/language_strong/static_top_level_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/strict_equal_test.dart b/tests/language_strong/strict_equal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/strict_equal_test.dart
rename to tests/language_strong/strict_equal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_charcode_test.dart b/tests/language_strong/string_charcode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_charcode_test.dart
rename to tests/language_strong/string_charcode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_escape2_negative_test_helper.dart b/tests/language_strong/string_escape2_negative_test_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_escape2_negative_test_helper.dart
rename to tests/language_strong/string_escape2_negative_test_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_escape3_negative_test_helper.dart b/tests/language_strong/string_escape3_negative_test_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_escape3_negative_test_helper.dart
rename to tests/language_strong/string_escape3_negative_test_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_escape4_negative_test.dart b/tests/language_strong/string_escape4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_escape4_negative_test.dart
rename to tests/language_strong/string_escape4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_escapes_test.dart b/tests/language_strong/string_escapes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_escapes_test.dart
rename to tests/language_strong/string_escapes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolate1_negative_test.dart b/tests/language_strong/string_interpolate1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolate1_negative_test.dart
rename to tests/language_strong/string_interpolate1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolate2_negative_test.dart b/tests/language_strong/string_interpolate2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolate2_negative_test.dart
rename to tests/language_strong/string_interpolate2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolate2_test.dart b/tests/language_strong/string_interpolate2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolate2_test.dart
rename to tests/language_strong/string_interpolate2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolate_null_test.dart b/tests/language_strong/string_interpolate_null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolate_null_test.dart
rename to tests/language_strong/string_interpolate_null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolate_test.dart b/tests/language_strong/string_interpolate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolate_test.dart
rename to tests/language_strong/string_interpolate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation1_negative_test.dart b/tests/language_strong/string_interpolation1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation1_negative_test.dart
rename to tests/language_strong/string_interpolation1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation2_negative_test.dart b/tests/language_strong/string_interpolation2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation2_negative_test.dart
rename to tests/language_strong/string_interpolation2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation3_negative_test.dart b/tests/language_strong/string_interpolation3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation3_negative_test.dart
rename to tests/language_strong/string_interpolation3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation4_negative_test.dart b/tests/language_strong/string_interpolation4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation4_negative_test.dart
rename to tests/language_strong/string_interpolation4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation5_negative_test.dart b/tests/language_strong/string_interpolation5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation5_negative_test.dart
rename to tests/language_strong/string_interpolation5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation6_negative_test.dart b/tests/language_strong/string_interpolation6_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation6_negative_test.dart
rename to tests/language_strong/string_interpolation6_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation7_test.dart b/tests/language_strong/string_interpolation7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation7_test.dart
rename to tests/language_strong/string_interpolation7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation8_test.dart b/tests/language_strong/string_interpolation8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation8_test.dart
rename to tests/language_strong/string_interpolation8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation9_test.dart b/tests/language_strong/string_interpolation9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation9_test.dart
rename to tests/language_strong/string_interpolation9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation_and_buffer_test.dart b/tests/language_strong/string_interpolation_and_buffer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation_and_buffer_test.dart
rename to tests/language_strong/string_interpolation_and_buffer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation_newline_test.dart b/tests/language_strong/string_interpolation_newline_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation_newline_test.dart
rename to tests/language_strong/string_interpolation_newline_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_interpolation_test.dart b/tests/language_strong/string_interpolation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_interpolation_test.dart
rename to tests/language_strong/string_interpolation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_intrinsics_test.dart b/tests/language_strong/string_intrinsics_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_intrinsics_test.dart
rename to tests/language_strong/string_intrinsics_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_join_test.dart b/tests/language_strong/string_join_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_join_test.dart
rename to tests/language_strong/string_join_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_no_operator_test.dart b/tests/language_strong/string_no_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_no_operator_test.dart
rename to tests/language_strong/string_no_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_optimizations_test.dart b/tests/language_strong/string_optimizations_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_optimizations_test.dart
rename to tests/language_strong/string_optimizations_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_overflow.dart b/tests/language_strong/string_overflow.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_overflow.dart
rename to tests/language_strong/string_overflow.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_split_test.dart b/tests/language_strong/string_split_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_split_test.dart
rename to tests/language_strong/string_split_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_supertype_checked_test.dart b/tests/language_strong/string_supertype_checked_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_supertype_checked_test.dart
rename to tests/language_strong/string_supertype_checked_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_test.dart b/tests/language_strong/string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_test.dart
rename to tests/language_strong/string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_unicode1_negative_test.dart b/tests/language_strong/string_unicode1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_unicode1_negative_test.dart
rename to tests/language_strong/string_unicode1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_unicode2_negative_test.dart b/tests/language_strong/string_unicode2_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_unicode2_negative_test.dart
rename to tests/language_strong/string_unicode2_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_unicode3_negative_test.dart b/tests/language_strong/string_unicode3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_unicode3_negative_test.dart
rename to tests/language_strong/string_unicode3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/string_unicode4_negative_test.dart b/tests/language_strong/string_unicode4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/string_unicode4_negative_test.dart
rename to tests/language_strong/string_unicode4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/sub/sub.dart b/tests/language_strong/sub/sub.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/sub/sub.dart
rename to tests/language_strong/sub/sub.dart
diff --git a/pkg/dev_compiler/test/codegen/language/substring_test.dart b/tests/language_strong/substring_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/substring_test.dart
rename to tests/language_strong/substring_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_abstract_method_test.dart b/tests/language_strong/super_abstract_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_abstract_method_test.dart
rename to tests/language_strong/super_abstract_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_all_named_constructor_test.dart b/tests/language_strong/super_all_named_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_all_named_constructor_test.dart
rename to tests/language_strong/super_all_named_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_assign_test.dart b/tests/language_strong/super_assign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_assign_test.dart
rename to tests/language_strong/super_assign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_bound_closure_test.dart b/tests/language_strong/super_bound_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_bound_closure_test.dart
rename to tests/language_strong/super_bound_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_call2_test.dart b/tests/language_strong/super_call2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_call2_test.dart
rename to tests/language_strong/super_call2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_call3_test.dart b/tests/language_strong/super_call3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_call3_test.dart
rename to tests/language_strong/super_call3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_call4_test.dart b/tests/language_strong/super_call4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_call4_test.dart
rename to tests/language_strong/super_call4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_call_test.dart b/tests/language_strong/super_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_call_test.dart
rename to tests/language_strong/super_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_closure_test.dart b/tests/language_strong/super_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_closure_test.dart
rename to tests/language_strong/super_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_conditional_operator_test.dart b/tests/language_strong/super_conditional_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_conditional_operator_test.dart
rename to tests/language_strong/super_conditional_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_field_2_test.dart b/tests/language_strong/super_field_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_field_2_test.dart
rename to tests/language_strong/super_field_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_field_access_test.dart b/tests/language_strong/super_field_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_field_access_test.dart
rename to tests/language_strong/super_field_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_field_test.dart b/tests/language_strong/super_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_field_test.dart
rename to tests/language_strong/super_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_first_constructor_test.dart b/tests/language_strong/super_first_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_first_constructor_test.dart
rename to tests/language_strong/super_first_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_getter_setter_test.dart b/tests/language_strong/super_getter_setter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_getter_setter_test.dart
rename to tests/language_strong/super_getter_setter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_implicit_closure_test.dart b/tests/language_strong/super_implicit_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_implicit_closure_test.dart
rename to tests/language_strong/super_implicit_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async1_test.dart b/tests/language_strong/super_in_async1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async1_test.dart
rename to tests/language_strong/super_in_async1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async2_test.dart b/tests/language_strong/super_in_async2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async2_test.dart
rename to tests/language_strong/super_in_async2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async3_test.dart b/tests/language_strong/super_in_async3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async3_test.dart
rename to tests/language_strong/super_in_async3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async4_test.dart b/tests/language_strong/super_in_async4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async4_test.dart
rename to tests/language_strong/super_in_async4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async5_test.dart b/tests/language_strong/super_in_async5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async5_test.dart
rename to tests/language_strong/super_in_async5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_async6_test.dart b/tests/language_strong/super_in_async6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_async6_test.dart
rename to tests/language_strong/super_in_async6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_in_finally_test.dart b/tests/language_strong/super_in_finally_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_in_finally_test.dart
rename to tests/language_strong/super_in_finally_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_inferrer_test.dart b/tests/language_strong/super_inferrer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_inferrer_test.dart
rename to tests/language_strong/super_inferrer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index2_test.dart b/tests/language_strong/super_operator_index2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index2_test.dart
rename to tests/language_strong/super_operator_index2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index3_test.dart b/tests/language_strong/super_operator_index3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index3_test.dart
rename to tests/language_strong/super_operator_index3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index4_test.dart b/tests/language_strong/super_operator_index4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index4_test.dart
rename to tests/language_strong/super_operator_index4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index5_test.dart b/tests/language_strong/super_operator_index5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index5_test.dart
rename to tests/language_strong/super_operator_index5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index6_test.dart b/tests/language_strong/super_operator_index6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index6_test.dart
rename to tests/language_strong/super_operator_index6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index7_test.dart b/tests/language_strong/super_operator_index7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index7_test.dart
rename to tests/language_strong/super_operator_index7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index8_test.dart b/tests/language_strong/super_operator_index8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index8_test.dart
rename to tests/language_strong/super_operator_index8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_index_test.dart b/tests/language_strong/super_operator_index_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_index_test.dart
rename to tests/language_strong/super_operator_index_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_operator_test.dart b/tests/language_strong/super_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_operator_test.dart
rename to tests/language_strong/super_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_setter_interceptor_test.dart b/tests/language_strong/super_setter_interceptor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_setter_interceptor_test.dart
rename to tests/language_strong/super_setter_interceptor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_setter_test.dart b/tests/language_strong/super_setter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_setter_test.dart
rename to tests/language_strong/super_setter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/super_test.dart b/tests/language_strong/super_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/super_test.dart
rename to tests/language_strong/super_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch1_negative_test.dart b/tests/language_strong/switch1_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch1_negative_test.dart
rename to tests/language_strong/switch1_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch3_negative_test.dart b/tests/language_strong/switch3_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch3_negative_test.dart
rename to tests/language_strong/switch3_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch4_negative_test.dart b/tests/language_strong/switch4_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch4_negative_test.dart
rename to tests/language_strong/switch4_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch5_negative_test.dart b/tests/language_strong/switch5_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch5_negative_test.dart
rename to tests/language_strong/switch5_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch6_test.dart b/tests/language_strong/switch6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch6_test.dart
rename to tests/language_strong/switch6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch7_negative_test.dart b/tests/language_strong/switch7_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch7_negative_test.dart
rename to tests/language_strong/switch7_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch8_test.dart b/tests/language_strong/switch8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch8_test.dart
rename to tests/language_strong/switch8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_bad_case_test.dart b/tests/language_strong/switch_bad_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_bad_case_test.dart
rename to tests/language_strong/switch_bad_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_case_static_const_test.dart b/tests/language_strong/switch_case_static_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_case_static_const_test.dart
rename to tests/language_strong/switch_case_static_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_case_test.dart b/tests/language_strong/switch_case_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_case_test.dart
rename to tests/language_strong/switch_case_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_fallthru_test.dart b/tests/language_strong/switch_fallthru_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_fallthru_test.dart
rename to tests/language_strong/switch_fallthru_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_label2_test.dart b/tests/language_strong/switch_label2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_label2_test.dart
rename to tests/language_strong/switch_label2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_label_test.dart b/tests/language_strong/switch_label_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_label_test.dart
rename to tests/language_strong/switch_label_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_scope_test.dart b/tests/language_strong/switch_scope_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_scope_test.dart
rename to tests/language_strong/switch_scope_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_test.dart b/tests/language_strong/switch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_test.dart
rename to tests/language_strong/switch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/switch_try_catch_test.dart b/tests/language_strong/switch_try_catch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/switch_try_catch_test.dart
rename to tests/language_strong/switch_try_catch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/symbol_conflict_test.dart b/tests/language_strong/symbol_conflict_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/symbol_conflict_test.dart
rename to tests/language_strong/symbol_conflict_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/symbol_literal_test.dart b/tests/language_strong/symbol_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/symbol_literal_test.dart
rename to tests/language_strong/symbol_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/sync_generator1_test.dart b/tests/language_strong/sync_generator1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/sync_generator1_test.dart
rename to tests/language_strong/sync_generator1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/sync_generator2_test.dart b/tests/language_strong/sync_generator2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/sync_generator2_test.dart
rename to tests/language_strong/sync_generator2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/sync_generator3_test.dart b/tests/language_strong/sync_generator3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/sync_generator3_test.dart
rename to tests/language_strong/sync_generator3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/syncstar_less_than_test.dart b/tests/language_strong/syncstar_less_than_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/syncstar_less_than_test.dart
rename to tests/language_strong/syncstar_less_than_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/syncstar_yield_test.dart b/tests/language_strong/syncstar_yield_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/syncstar_yield_test.dart
rename to tests/language_strong/syncstar_yield_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/syncstar_yieldstar_test.dart b/tests/language_strong/syncstar_yieldstar_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/syncstar_yieldstar_test.dart
rename to tests/language_strong/syncstar_yieldstar_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/syntax_test.dart b/tests/language_strong/syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/syntax_test.dart
rename to tests/language_strong/syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/tearoff_basic_lib.dart b/tests/language_strong/tearoff_basic_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/tearoff_basic_lib.dart
rename to tests/language_strong/tearoff_basic_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/language/tearoff_basic_test.dart b/tests/language_strong/tearoff_basic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/tearoff_basic_test.dart
rename to tests/language_strong/tearoff_basic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/tearoff_constructor_basic_test.dart b/tests/language_strong/tearoff_constructor_basic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/tearoff_constructor_basic_test.dart
rename to tests/language_strong/tearoff_constructor_basic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/temp_mangling_test.dart b/tests/language_strong/temp_mangling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/temp_mangling_test.dart
rename to tests/language_strong/temp_mangling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/ternary_test.dart b/tests/language_strong/ternary_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/ternary_test.dart
rename to tests/language_strong/ternary_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/test_negative_test.dart b/tests/language_strong/test_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/test_negative_test.dart
rename to tests/language_strong/test_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/third_test.dart b/tests/language_strong/third_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/third_test.dart
rename to tests/language_strong/third_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/this_conditional_operator_test.dart b/tests/language_strong/this_conditional_operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/this_conditional_operator_test.dart
rename to tests/language_strong/this_conditional_operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/this_test.dart b/tests/language_strong/this_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/this_test.dart
rename to tests/language_strong/this_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw1_test.dart b/tests/language_strong/throw1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw1_test.dart
rename to tests/language_strong/throw1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw2_test.dart b/tests/language_strong/throw2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw2_test.dart
rename to tests/language_strong/throw2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw3_test.dart b/tests/language_strong/throw3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw3_test.dart
rename to tests/language_strong/throw3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw4_test.dart b/tests/language_strong/throw4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw4_test.dart
rename to tests/language_strong/throw4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw5_test.dart b/tests/language_strong/throw5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw5_test.dart
rename to tests/language_strong/throw5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw6_test.dart b/tests/language_strong/throw6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw6_test.dart
rename to tests/language_strong/throw6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw8_test.dart b/tests/language_strong/throw8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw8_test.dart
rename to tests/language_strong/throw8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw_expr_test.dart b/tests/language_strong/throw_expr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw_expr_test.dart
rename to tests/language_strong/throw_expr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throw_test.dart b/tests/language_strong/throw_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throw_test.dart
rename to tests/language_strong/throw_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/throwing_lazy_variable_test.dart b/tests/language_strong/throwing_lazy_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/throwing_lazy_variable_test.dart
rename to tests/language_strong/throwing_lazy_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_entry.dart b/tests/language_strong/top_level_entry.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_entry.dart
rename to tests/language_strong/top_level_entry.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_entry_test.dart b/tests/language_strong/top_level_entry_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_entry_test.dart
rename to tests/language_strong/top_level_entry_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_file1.dart b/tests/language_strong/top_level_file1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_file1.dart
rename to tests/language_strong/top_level_file1.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_file2.dart b/tests/language_strong/top_level_file2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_file2.dart
rename to tests/language_strong/top_level_file2.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_file3.dart b/tests/language_strong/top_level_file3.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_file3.dart
rename to tests/language_strong/top_level_file3.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_func_test.dart b/tests/language_strong/top_level_func_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_func_test.dart
rename to tests/language_strong/top_level_func_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_getter_arrow_syntax_test.dart b/tests/language_strong/top_level_getter_arrow_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_getter_arrow_syntax_test.dart
rename to tests/language_strong/top_level_getter_arrow_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_getter_no_setter1_test.dart b/tests/language_strong/top_level_getter_no_setter1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_getter_no_setter1_test.dart
rename to tests/language_strong/top_level_getter_no_setter1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_getter_no_setter2_test.dart b/tests/language_strong/top_level_getter_no_setter2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_getter_no_setter2_test.dart
rename to tests/language_strong/top_level_getter_no_setter2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_in_initializer_test.dart b/tests/language_strong/top_level_in_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_in_initializer_test.dart
rename to tests/language_strong/top_level_in_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_method_test.dart b/tests/language_strong/top_level_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_method_test.dart
rename to tests/language_strong/top_level_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_multiple_files_test.dart b/tests/language_strong/top_level_multiple_files_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_multiple_files_test.dart
rename to tests/language_strong/top_level_multiple_files_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_non_prefixed_library_test.dart b/tests/language_strong/top_level_non_prefixed_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_non_prefixed_library_test.dart
rename to tests/language_strong/top_level_non_prefixed_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_prefixed_declaration_test.dart b/tests/language_strong/top_level_prefixed_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_prefixed_declaration_test.dart
rename to tests/language_strong/top_level_prefixed_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_prefixed_library_test.lib b/tests/language_strong/top_level_prefixed_library_test.lib
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_prefixed_library_test.lib
rename to tests/language_strong/top_level_prefixed_library_test.lib
diff --git a/pkg/dev_compiler/test/codegen/language/top_level_var_test.dart b/tests/language_strong/top_level_var_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/top_level_var_test.dart
rename to tests/language_strong/top_level_var_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/toplevel_collision1_test.dart b/tests/language_strong/toplevel_collision1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/toplevel_collision1_test.dart
rename to tests/language_strong/toplevel_collision1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/toplevel_collision2_test.dart b/tests/language_strong/toplevel_collision2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/toplevel_collision2_test.dart
rename to tests/language_strong/toplevel_collision2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/transitive_private_library_access_test.dart b/tests/language_strong/transitive_private_library_access_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/transitive_private_library_access_test.dart
rename to tests/language_strong/transitive_private_library_access_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/tree_shake_typed_selector_test.dart b/tests/language_strong/tree_shake_typed_selector_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/tree_shake_typed_selector_test.dart
rename to tests/language_strong/tree_shake_typed_selector_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/truncdiv_test.dart b/tests/language_strong/truncdiv_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/truncdiv_test.dart
rename to tests/language_strong/truncdiv_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/truncdiv_uint32_test.dart b/tests/language_strong/truncdiv_uint32_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/truncdiv_uint32_test.dart
rename to tests/language_strong/truncdiv_uint32_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch2_test.dart b/tests/language_strong/try_catch2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch2_test.dart
rename to tests/language_strong/try_catch2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch3_test.dart b/tests/language_strong/try_catch3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch3_test.dart
rename to tests/language_strong/try_catch3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch4_test.dart b/tests/language_strong/try_catch4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch4_test.dart
rename to tests/language_strong/try_catch4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch5_test.dart b/tests/language_strong/try_catch5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch5_test.dart
rename to tests/language_strong/try_catch5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_on_syntax_test.dart b/tests/language_strong/try_catch_on_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_on_syntax_test.dart
rename to tests/language_strong/try_catch_on_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_optimized1_test.dart b/tests/language_strong/try_catch_optimized1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_optimized1_test.dart
rename to tests/language_strong/try_catch_optimized1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_optimized2_test.dart b/tests/language_strong/try_catch_optimized2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_optimized2_test.dart
rename to tests/language_strong/try_catch_optimized2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_optimized3_test.dart b/tests/language_strong/try_catch_optimized3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_optimized3_test.dart
rename to tests/language_strong/try_catch_optimized3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_optimized4_test.dart b/tests/language_strong/try_catch_optimized4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_optimized4_test.dart
rename to tests/language_strong/try_catch_optimized4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_osr_test.dart b/tests/language_strong/try_catch_osr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_osr_test.dart
rename to tests/language_strong/try_catch_osr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_syntax_test.dart b/tests/language_strong/try_catch_syntax_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_syntax_test.dart
rename to tests/language_strong/try_catch_syntax_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/try_catch_test.dart b/tests/language_strong/try_catch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/try_catch_test.dart
rename to tests/language_strong/try_catch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_argument_in_super_type_test.dart b/tests/language_strong/type_argument_in_super_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_argument_in_super_type_test.dart
rename to tests/language_strong/type_argument_in_super_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_argument_substitution_test.dart b/tests/language_strong/type_argument_substitution_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_argument_substitution_test.dart
rename to tests/language_strong/type_argument_substitution_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_check_const_function_typedef2_test.dart b/tests/language_strong/type_check_const_function_typedef2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_check_const_function_typedef2_test.dart
rename to tests/language_strong/type_check_const_function_typedef2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_check_const_function_typedef_test.dart b/tests/language_strong/type_check_const_function_typedef_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_check_const_function_typedef_test.dart
rename to tests/language_strong/type_check_const_function_typedef_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_check_test.dart b/tests/language_strong/type_check_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_check_test.dart
rename to tests/language_strong/type_check_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_checks_in_factory_method_test.dart b/tests/language_strong/type_checks_in_factory_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_checks_in_factory_method_test.dart
rename to tests/language_strong/type_checks_in_factory_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_conversion_ssa_test.dart b/tests/language_strong/type_conversion_ssa_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_conversion_ssa_test.dart
rename to tests/language_strong/type_conversion_ssa_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_error_test.dart b/tests/language_strong/type_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_error_test.dart
rename to tests/language_strong/type_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_guard_conversion_test.dart b/tests/language_strong/type_guard_conversion_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_guard_conversion_test.dart
rename to tests/language_strong/type_guard_conversion_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_hoisting_test.dart b/tests/language_strong/type_hoisting_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_hoisting_test.dart
rename to tests/language_strong/type_hoisting_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_intersection_test.dart b/tests/language_strong/type_intersection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_intersection_test.dart
rename to tests/language_strong/type_intersection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_literal_prefix_call_test.dart b/tests/language_strong/type_literal_prefix_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_literal_prefix_call_test.dart
rename to tests/language_strong/type_literal_prefix_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_literal_test.dart b/tests/language_strong/type_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_literal_test.dart
rename to tests/language_strong/type_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_no_hoisting_test.dart b/tests/language_strong/type_no_hoisting_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_no_hoisting_test.dart
rename to tests/language_strong/type_no_hoisting_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_parameter_literal_test.dart b/tests/language_strong/type_parameter_literal_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_parameter_literal_test.dart
rename to tests/language_strong/type_parameter_literal_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_parameter_test.dart b/tests/language_strong/type_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_parameter_test.dart
rename to tests/language_strong/type_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_assign_test.dart b/tests/language_strong/type_promotion_assign_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_assign_test.dart
rename to tests/language_strong/type_promotion_assign_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_closure_test.dart b/tests/language_strong/type_promotion_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_closure_test.dart
rename to tests/language_strong/type_promotion_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_functions_test.dart b/tests/language_strong/type_promotion_functions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_functions_test.dart
rename to tests/language_strong/type_promotion_functions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_local_test.dart b/tests/language_strong/type_promotion_local_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_local_test.dart
rename to tests/language_strong/type_promotion_local_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_logical_and_test.dart b/tests/language_strong/type_promotion_logical_and_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_logical_and_test.dart
rename to tests/language_strong/type_promotion_logical_and_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_more_specific_test.dart b/tests/language_strong/type_promotion_more_specific_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_more_specific_test.dart
rename to tests/language_strong/type_promotion_more_specific_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_multiple_test.dart b/tests/language_strong/type_promotion_multiple_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_multiple_test.dart
rename to tests/language_strong/type_promotion_multiple_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_promotion_parameter_test.dart b/tests/language_strong/type_promotion_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_promotion_parameter_test.dart
rename to tests/language_strong/type_promotion_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation2_test.dart b/tests/language_strong/type_propagation2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation2_test.dart
rename to tests/language_strong/type_propagation2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation3_test.dart b/tests/language_strong/type_propagation3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation3_test.dart
rename to tests/language_strong/type_propagation3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation_assert_assignable_test.dart b/tests/language_strong/type_propagation_assert_assignable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation_assert_assignable_test.dart
rename to tests/language_strong/type_propagation_assert_assignable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation_in_for_update_test.dart b/tests/language_strong/type_propagation_in_for_update_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation_in_for_update_test.dart
rename to tests/language_strong/type_propagation_in_for_update_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation_phi_test.dart b/tests/language_strong/type_propagation_phi_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation_phi_test.dart
rename to tests/language_strong/type_propagation_phi_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_propagation_test.dart b/tests/language_strong/type_propagation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_propagation_test.dart
rename to tests/language_strong/type_propagation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_bounds2_test.dart b/tests/language_strong/type_variable_bounds2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_bounds2_test.dart
rename to tests/language_strong/type_variable_bounds2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_bounds3_test.dart b/tests/language_strong/type_variable_bounds3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_bounds3_test.dart
rename to tests/language_strong/type_variable_bounds3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_bounds4_test.dart b/tests/language_strong/type_variable_bounds4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_bounds4_test.dart
rename to tests/language_strong/type_variable_bounds4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_bounds_test.dart b/tests/language_strong/type_variable_bounds_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_bounds_test.dart
rename to tests/language_strong/type_variable_bounds_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_closure2_test.dart b/tests/language_strong/type_variable_closure2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_closure2_test.dart
rename to tests/language_strong/type_variable_closure2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_closure_test.dart b/tests/language_strong/type_variable_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_closure_test.dart
rename to tests/language_strong/type_variable_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_conflict2_test.dart b/tests/language_strong/type_variable_conflict2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_conflict2_test.dart
rename to tests/language_strong/type_variable_conflict2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_conflict_test.dart b/tests/language_strong/type_variable_conflict_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_conflict_test.dart
rename to tests/language_strong/type_variable_conflict_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_field_initializer_closure_test.dart b/tests/language_strong/type_variable_field_initializer_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_field_initializer_closure_test.dart
rename to tests/language_strong/type_variable_field_initializer_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_field_initializer_test.dart b/tests/language_strong/type_variable_field_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_field_initializer_test.dart
rename to tests/language_strong/type_variable_field_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_function_type_test.dart b/tests/language_strong/type_variable_function_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_function_type_test.dart
rename to tests/language_strong/type_variable_function_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_identifier_expression_test.dart b/tests/language_strong/type_variable_identifier_expression_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_identifier_expression_test.dart
rename to tests/language_strong/type_variable_identifier_expression_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_initializer_test.dart b/tests/language_strong/type_variable_initializer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_initializer_test.dart
rename to tests/language_strong/type_variable_initializer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_nested_test.dart b/tests/language_strong/type_variable_nested_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_nested_test.dart
rename to tests/language_strong/type_variable_nested_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_scope2_test.dart b/tests/language_strong/type_variable_scope2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_scope2_test.dart
rename to tests/language_strong/type_variable_scope2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_scope3_test.dart b/tests/language_strong/type_variable_scope3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_scope3_test.dart
rename to tests/language_strong/type_variable_scope3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_scope_test.dart b/tests/language_strong/type_variable_scope_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_scope_test.dart
rename to tests/language_strong/type_variable_scope_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_static_context_negative_test.dart b/tests/language_strong/type_variable_static_context_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_static_context_negative_test.dart
rename to tests/language_strong/type_variable_static_context_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/type_variable_typedef_test.dart b/tests/language_strong/type_variable_typedef_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/type_variable_typedef_test.dart
rename to tests/language_strong/type_variable_typedef_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/typed_equality_test.dart b/tests/language_strong/typed_equality_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/typed_equality_test.dart
rename to tests/language_strong/typed_equality_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/typed_selector2_test.dart b/tests/language_strong/typed_selector2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/typed_selector2_test.dart
rename to tests/language_strong/typed_selector2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/typed_selector_test.dart b/tests/language_strong/typed_selector_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/typed_selector_test.dart
rename to tests/language_strong/typed_selector_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/typedef_is_test.dart b/tests/language_strong/typedef_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/typedef_is_test.dart
rename to tests/language_strong/typedef_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/typevariable_substitution2_test.dart b/tests/language_strong/typevariable_substitution2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/typevariable_substitution2_test.dart
rename to tests/language_strong/typevariable_substitution2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unary2_test.dart b/tests/language_strong/unary2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unary2_test.dart
rename to tests/language_strong/unary2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unary_plus_negative_test.dart b/tests/language_strong/unary_plus_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unary_plus_negative_test.dart
rename to tests/language_strong/unary_plus_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unary_test.dart b/tests/language_strong/unary_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unary_test.dart
rename to tests/language_strong/unary_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unbalanced_brace_test.dart b/tests/language_strong/unbalanced_brace_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unbalanced_brace_test.dart
rename to tests/language_strong/unbalanced_brace_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unbound_getter_test.dart b/tests/language_strong/unbound_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unbound_getter_test.dart
rename to tests/language_strong/unbound_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unconditional_break.dart b/tests/language_strong/unconditional_break.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unconditional_break.dart
rename to tests/language_strong/unconditional_break.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unhandled_exception_negative_test.dart b/tests/language_strong/unhandled_exception_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unhandled_exception_negative_test.dart
rename to tests/language_strong/unhandled_exception_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unicode_bom_middle_test.dart b/tests/language_strong/unicode_bom_middle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unicode_bom_middle_test.dart
rename to tests/language_strong/unicode_bom_middle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unicode_bom_test.dart b/tests/language_strong/unicode_bom_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unicode_bom_test.dart
rename to tests/language_strong/unicode_bom_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unicode_hash_test.dart b/tests/language_strong/unicode_hash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unicode_hash_test.dart
rename to tests/language_strong/unicode_hash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unnamed_closure_test.dart b/tests/language_strong/unnamed_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unnamed_closure_test.dart
rename to tests/language_strong/unnamed_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unqual_name_test.dart b/tests/language_strong/unqual_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unqual_name_test.dart
rename to tests/language_strong/unqual_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unresolved_default_constructor_test.dart b/tests/language_strong/unresolved_default_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unresolved_default_constructor_test.dart
rename to tests/language_strong/unresolved_default_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unresolved_in_factory_negative_test.dart b/tests/language_strong/unresolved_in_factory_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unresolved_in_factory_negative_test.dart
rename to tests/language_strong/unresolved_in_factory_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unresolved_top_level_method_negative_test.dart b/tests/language_strong/unresolved_top_level_method_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unresolved_top_level_method_negative_test.dart
rename to tests/language_strong/unresolved_top_level_method_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unresolved_top_level_var_negative_test.dart b/tests/language_strong/unresolved_top_level_var_negative_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unresolved_top_level_var_negative_test.dart
rename to tests/language_strong/unresolved_top_level_var_negative_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unsigned_right_shift_test.dart b/tests/language_strong/unsigned_right_shift_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unsigned_right_shift_test.dart
rename to tests/language_strong/unsigned_right_shift_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/unsupported_operators_test.dart b/tests/language_strong/unsupported_operators_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/unsupported_operators_test.dart
rename to tests/language_strong/unsupported_operators_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/value_range2_test.dart b/tests/language_strong/value_range2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/value_range2_test.dart
rename to tests/language_strong/value_range2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/value_range3_test.dart b/tests/language_strong/value_range3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/value_range3_test.dart
rename to tests/language_strong/value_range3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/value_range_test.dart b/tests/language_strong/value_range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/value_range_test.dart
rename to tests/language_strong/value_range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/var_init_test.dart b/tests/language_strong/var_init_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/var_init_test.dart
rename to tests/language_strong/var_init_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/variable_declaration_metadata_test.dart b/tests/language_strong/variable_declaration_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/variable_declaration_metadata_test.dart
rename to tests/language_strong/variable_declaration_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/variable_named_dart_test.dart b/tests/language_strong/variable_named_dart_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/variable_named_dart_test.dart
rename to tests/language_strong/variable_named_dart_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/void_subtype_test.dart b/tests/language_strong/void_subtype_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/void_subtype_test.dart
rename to tests/language_strong/void_subtype_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/void_type_test.dart b/tests/language_strong/void_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/void_type_test.dart
rename to tests/language_strong/void_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/while_test.dart b/tests/language_strong/while_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/while_test.dart
rename to tests/language_strong/while_test.dart
diff --git a/pkg/dev_compiler/test/codegen/language/wrong_number_type_arguments_test.dart b/tests/language_strong/wrong_number_type_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/language/wrong_number_type_arguments_test.dart
rename to tests/language_strong/wrong_number_type_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/collection/hash_map_test.dart b/tests/lib_strong/collection/hash_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/collection/hash_map_test.dart
rename to tests/lib_strong/collection/hash_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/collection/hash_set_test.dart b/tests/lib_strong/collection/hash_set_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/collection/hash_set_test.dart
rename to tests/lib_strong/collection/hash_set_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/collection/linked_list_test.dart b/tests/lib_strong/collection/linked_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/collection/linked_list_test.dart
rename to tests/lib_strong/collection/linked_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/collection/list_test.dart b/tests/lib_strong/collection/list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/collection/list_test.dart
rename to tests/lib_strong/collection/list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/ascii_test.dart b/tests/lib_strong/convert/ascii_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/ascii_test.dart
rename to tests/lib_strong/convert/ascii_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/base64_test.dart b/tests/lib_strong/convert/base64_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/base64_test.dart
rename to tests/lib_strong/convert/base64_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion1_test.dart b/tests/lib_strong/convert/chunked_conversion1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion1_test.dart
rename to tests/lib_strong/convert/chunked_conversion1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion2_test.dart b/tests/lib_strong/convert/chunked_conversion2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion2_test.dart
rename to tests/lib_strong/convert/chunked_conversion2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_json_decode1_test.dart b/tests/lib_strong/convert/chunked_conversion_json_decode1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_json_decode1_test.dart
rename to tests/lib_strong/convert/chunked_conversion_json_decode1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_json_encode1_test.dart b/tests/lib_strong/convert/chunked_conversion_json_encode1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_json_encode1_test.dart
rename to tests/lib_strong/convert/chunked_conversion_json_encode1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf82_test.dart b/tests/lib_strong/convert/chunked_conversion_utf82_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf82_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf82_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf83_test.dart b/tests/lib_strong/convert/chunked_conversion_utf83_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf83_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf83_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf84_test.dart b/tests/lib_strong/convert/chunked_conversion_utf84_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf84_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf84_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf85_test.dart b/tests/lib_strong/convert/chunked_conversion_utf85_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf85_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf85_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf86_test.dart b/tests/lib_strong/convert/chunked_conversion_utf86_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf86_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf86_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf87_test.dart b/tests/lib_strong/convert/chunked_conversion_utf87_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf87_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf87_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf88_test.dart b/tests/lib_strong/convert/chunked_conversion_utf88_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf88_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf88_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf89_test.dart b/tests/lib_strong/convert/chunked_conversion_utf89_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf89_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf89_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf8_test.dart b/tests/lib_strong/convert/chunked_conversion_utf8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/chunked_conversion_utf8_test.dart
rename to tests/lib_strong/convert/chunked_conversion_utf8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/close_test.dart b/tests/lib_strong/convert/close_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/close_test.dart
rename to tests/lib_strong/convert/close_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/codec1_test.dart b/tests/lib_strong/convert/codec1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/codec1_test.dart
rename to tests/lib_strong/convert/codec1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/codec2_test.dart b/tests/lib_strong/convert/codec2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/codec2_test.dart
rename to tests/lib_strong/convert/codec2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/encoding_test.dart b/tests/lib_strong/convert/encoding_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/encoding_test.dart
rename to tests/lib_strong/convert/encoding_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/html_escape_test.dart b/tests/lib_strong/convert/html_escape_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/html_escape_test.dart
rename to tests/lib_strong/convert/html_escape_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_chunk_test.dart b/tests/lib_strong/convert/json_chunk_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_chunk_test.dart
rename to tests/lib_strong/convert/json_chunk_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_lib_test.dart b/tests/lib_strong/convert/json_lib_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_lib_test.dart
rename to tests/lib_strong/convert/json_lib_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_pretty_test.dart b/tests/lib_strong/convert/json_pretty_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_pretty_test.dart
rename to tests/lib_strong/convert/json_pretty_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_test.dart b/tests/lib_strong/convert/json_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_test.dart
rename to tests/lib_strong/convert/json_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_toEncodable_reviver_test.dart b/tests/lib_strong/convert/json_toEncodable_reviver_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_toEncodable_reviver_test.dart
rename to tests/lib_strong/convert/json_toEncodable_reviver_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_unicode_tests.dart b/tests/lib_strong/convert/json_unicode_tests.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_unicode_tests.dart
rename to tests/lib_strong/convert/json_unicode_tests.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_utf8_chunk_test.dart b/tests/lib_strong/convert/json_utf8_chunk_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_utf8_chunk_test.dart
rename to tests/lib_strong/convert/json_utf8_chunk_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/json_util_test.dart b/tests/lib_strong/convert/json_util_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/json_util_test.dart
rename to tests/lib_strong/convert/json_util_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/latin1_test.dart b/tests/lib_strong/convert/latin1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/latin1_test.dart
rename to tests/lib_strong/convert/latin1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/line_splitter_test.dart b/tests/lib_strong/convert/line_splitter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/line_splitter_test.dart
rename to tests/lib_strong/convert/line_splitter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_decode1_test.dart b/tests/lib_strong/convert/streamed_conversion_json_decode1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_decode1_test.dart
rename to tests/lib_strong/convert/streamed_conversion_json_decode1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_encode1_test.dart b/tests/lib_strong/convert/streamed_conversion_json_encode1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_encode1_test.dart
rename to tests/lib_strong/convert/streamed_conversion_json_encode1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_utf8_decode_test.dart b/tests/lib_strong/convert/streamed_conversion_json_utf8_decode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_utf8_decode_test.dart
rename to tests/lib_strong/convert/streamed_conversion_json_utf8_decode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_utf8_encode_test.dart b/tests/lib_strong/convert/streamed_conversion_json_utf8_encode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_json_utf8_encode_test.dart
rename to tests/lib_strong/convert/streamed_conversion_json_utf8_encode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_utf8_decode_test.dart b/tests/lib_strong/convert/streamed_conversion_utf8_decode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_utf8_decode_test.dart
rename to tests/lib_strong/convert/streamed_conversion_utf8_decode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_utf8_encode_test.dart b/tests/lib_strong/convert/streamed_conversion_utf8_encode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/streamed_conversion_utf8_encode_test.dart
rename to tests/lib_strong/convert/streamed_conversion_utf8_encode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/unicode_tests.dart b/tests/lib_strong/convert/unicode_tests.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/unicode_tests.dart
rename to tests/lib_strong/convert/unicode_tests.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf82_test.dart b/tests/lib_strong/convert/utf82_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf82_test.dart
rename to tests/lib_strong/convert/utf82_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf83_test.dart b/tests/lib_strong/convert/utf83_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf83_test.dart
rename to tests/lib_strong/convert/utf83_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf84_test.dart b/tests/lib_strong/convert/utf84_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf84_test.dart
rename to tests/lib_strong/convert/utf84_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf85_test.dart b/tests/lib_strong/convert/utf85_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf85_test.dart
rename to tests/lib_strong/convert/utf85_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf8_encode_test.dart b/tests/lib_strong/convert/utf8_encode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf8_encode_test.dart
rename to tests/lib_strong/convert/utf8_encode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/convert/utf8_test.dart b/tests/lib_strong/convert/utf8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/convert/utf8_test.dart
rename to tests/lib_strong/convert/utf8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/Ahem.ttf b/tests/lib_strong/html/Ahem.ttf
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/Ahem.ttf
rename to tests/lib_strong/html/Ahem.ttf
Binary files differ
diff --git a/pkg/dev_compiler/test/codegen/lib/html/async_cancellingisolate.dart b/tests/lib_strong/html/async_cancellingisolate.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/async_cancellingisolate.dart
rename to tests/lib_strong/html/async_cancellingisolate.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/async_oneshot.dart b/tests/lib_strong/html/async_oneshot.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/async_oneshot.dart
rename to tests/lib_strong/html/async_oneshot.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/async_periodictimer.dart b/tests/lib_strong/html/async_periodictimer.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/async_periodictimer.dart
rename to tests/lib_strong/html/async_periodictimer.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/async_spawnuri_test.dart b/tests/lib_strong/html/async_spawnuri_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/async_spawnuri_test.dart
rename to tests/lib_strong/html/async_spawnuri_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/async_test.dart b/tests/lib_strong/html/async_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/async_test.dart
rename to tests/lib_strong/html/async_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/audiobuffersourcenode_test.dart b/tests/lib_strong/html/audiobuffersourcenode_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/audiobuffersourcenode_test.dart
rename to tests/lib_strong/html/audiobuffersourcenode_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/audiocontext_test.dart b/tests/lib_strong/html/audiocontext_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/audiocontext_test.dart
rename to tests/lib_strong/html/audiocontext_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/audioelement_test.dart b/tests/lib_strong/html/audioelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/audioelement_test.dart
rename to tests/lib_strong/html/audioelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/b_element_test.dart b/tests/lib_strong/html/b_element_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/b_element_test.dart
rename to tests/lib_strong/html/b_element_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/blob_constructor_test.dart b/tests/lib_strong/html/blob_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/blob_constructor_test.dart
rename to tests/lib_strong/html/blob_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cache_test.dart b/tests/lib_strong/html/cache_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cache_test.dart
rename to tests/lib_strong/html/cache_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/callbacks_test.dart b/tests/lib_strong/html/callbacks_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/callbacks_test.dart
rename to tests/lib_strong/html/callbacks_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/canvas_pixel_array_type_alias_test.dart b/tests/lib_strong/html/canvas_pixel_array_type_alias_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/canvas_pixel_array_type_alias_test.dart
rename to tests/lib_strong/html/canvas_pixel_array_type_alias_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/canvas_test.dart b/tests/lib_strong/html/canvas_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/canvas_test.dart
rename to tests/lib_strong/html/canvas_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/canvasrenderingcontext2d_test.dart b/tests/lib_strong/html/canvasrenderingcontext2d_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/canvasrenderingcontext2d_test.dart
rename to tests/lib_strong/html/canvasrenderingcontext2d_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cdata_test.dart b/tests/lib_strong/html/cdata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cdata_test.dart
rename to tests/lib_strong/html/cdata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/client_rect_test.dart b/tests/lib_strong/html/client_rect_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/client_rect_test.dart
rename to tests/lib_strong/html/client_rect_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_script.html b/tests/lib_strong/html/cross_domain_iframe_script.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_script.html
rename to tests/lib_strong/html/cross_domain_iframe_script.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_script.js b/tests/lib_strong/html/cross_domain_iframe_script.js
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_script.js
rename to tests/lib_strong/html/cross_domain_iframe_script.js
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_test.dart b/tests/lib_strong/html/cross_domain_iframe_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cross_domain_iframe_test.dart
rename to tests/lib_strong/html/cross_domain_iframe_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cross_frame_test.dart b/tests/lib_strong/html/cross_frame_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cross_frame_test.dart
rename to tests/lib_strong/html/cross_frame_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/crypto_test.dart b/tests/lib_strong/html/crypto_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/crypto_test.dart
rename to tests/lib_strong/html/crypto_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/css_rule_list_test.dart b/tests/lib_strong/html/css_rule_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/css_rule_list_test.dart
rename to tests/lib_strong/html/css_rule_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/css_test.dart b/tests/lib_strong/html/css_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/css_test.dart
rename to tests/lib_strong/html/css_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/cssstyledeclaration_test.dart b/tests/lib_strong/html/cssstyledeclaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/cssstyledeclaration_test.dart
rename to tests/lib_strong/html/cssstyledeclaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/attribute_changed_callback_test.dart b/tests/lib_strong/html/custom/attribute_changed_callback_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/attribute_changed_callback_test.dart
rename to tests/lib_strong/html/custom/attribute_changed_callback_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/attribute_changed_callback_test.html b/tests/lib_strong/html/custom/attribute_changed_callback_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/attribute_changed_callback_test.html
rename to tests/lib_strong/html/custom/attribute_changed_callback_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/constructor_calls_created_synchronously_test.dart b/tests/lib_strong/html/custom/constructor_calls_created_synchronously_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/constructor_calls_created_synchronously_test.dart
rename to tests/lib_strong/html/custom/constructor_calls_created_synchronously_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/constructor_calls_created_synchronously_test.html b/tests/lib_strong/html/custom/constructor_calls_created_synchronously_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/constructor_calls_created_synchronously_test.html
rename to tests/lib_strong/html/custom/constructor_calls_created_synchronously_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/created_callback_test.dart b/tests/lib_strong/html/custom/created_callback_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/created_callback_test.dart
rename to tests/lib_strong/html/custom/created_callback_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/created_callback_test.html b/tests/lib_strong/html/custom/created_callback_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/created_callback_test.html
rename to tests/lib_strong/html/custom/created_callback_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/document_register_basic_test.dart b/tests/lib_strong/html/custom/document_register_basic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/document_register_basic_test.dart
rename to tests/lib_strong/html/custom/document_register_basic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/document_register_basic_test.html b/tests/lib_strong/html/custom/document_register_basic_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/document_register_basic_test.html
rename to tests/lib_strong/html/custom/document_register_basic_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/document_register_type_extensions_test.dart b/tests/lib_strong/html/custom/document_register_type_extensions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/document_register_type_extensions_test.dart
rename to tests/lib_strong/html/custom/document_register_type_extensions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/document_register_type_extensions_test.html b/tests/lib_strong/html/custom/document_register_type_extensions_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/document_register_type_extensions_test.html
rename to tests/lib_strong/html/custom/document_register_type_extensions_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/element_upgrade_test.dart b/tests/lib_strong/html/custom/element_upgrade_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/element_upgrade_test.dart
rename to tests/lib_strong/html/custom/element_upgrade_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/element_upgrade_test.html b/tests/lib_strong/html/custom/element_upgrade_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/element_upgrade_test.html
rename to tests/lib_strong/html/custom/element_upgrade_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/entered_left_view_test.dart b/tests/lib_strong/html/custom/entered_left_view_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/entered_left_view_test.dart
rename to tests/lib_strong/html/custom/entered_left_view_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/entered_left_view_test.html b/tests/lib_strong/html/custom/entered_left_view_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/entered_left_view_test.html
rename to tests/lib_strong/html/custom/entered_left_view_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/js_custom_test.dart b/tests/lib_strong/html/custom/js_custom_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/js_custom_test.dart
rename to tests/lib_strong/html/custom/js_custom_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/js_custom_test.html b/tests/lib_strong/html/custom/js_custom_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/js_custom_test.html
rename to tests/lib_strong/html/custom/js_custom_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/mirrors_test.dart b/tests/lib_strong/html/custom/mirrors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/mirrors_test.dart
rename to tests/lib_strong/html/custom/mirrors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/mirrors_test.html b/tests/lib_strong/html/custom/mirrors_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/mirrors_test.html
rename to tests/lib_strong/html/custom/mirrors_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom/regress_194523002_test.dart b/tests/lib_strong/html/custom/regress_194523002_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom/regress_194523002_test.dart
rename to tests/lib_strong/html/custom/regress_194523002_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_element_method_clash_test.dart b/tests/lib_strong/html/custom_element_method_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_element_method_clash_test.dart
rename to tests/lib_strong/html/custom_element_method_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_element_method_clash_test.html b/tests/lib_strong/html/custom_element_method_clash_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_element_method_clash_test.html
rename to tests/lib_strong/html/custom_element_method_clash_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_element_name_clash_test.dart b/tests/lib_strong/html/custom_element_name_clash_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_element_name_clash_test.dart
rename to tests/lib_strong/html/custom_element_name_clash_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_element_name_clash_test.html b/tests/lib_strong/html/custom_element_name_clash_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_element_name_clash_test.html
rename to tests/lib_strong/html/custom_element_name_clash_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_elements_23127_test.dart b/tests/lib_strong/html/custom_elements_23127_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_elements_23127_test.dart
rename to tests/lib_strong/html/custom_elements_23127_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_elements_23127_test.html b/tests/lib_strong/html/custom_elements_23127_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_elements_23127_test.html
rename to tests/lib_strong/html/custom_elements_23127_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_elements_test.dart b/tests/lib_strong/html/custom_elements_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_elements_test.dart
rename to tests/lib_strong/html/custom_elements_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_elements_test.html b/tests/lib_strong/html/custom_elements_test.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_elements_test.html
rename to tests/lib_strong/html/custom_elements_test.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/custom_tags_test.dart b/tests/lib_strong/html/custom_tags_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/custom_tags_test.dart
rename to tests/lib_strong/html/custom_tags_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/dart_object_local_storage_test.dart b/tests/lib_strong/html/dart_object_local_storage_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/dart_object_local_storage_test.dart
rename to tests/lib_strong/html/dart_object_local_storage_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/datalistelement_test.dart b/tests/lib_strong/html/datalistelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/datalistelement_test.dart
rename to tests/lib_strong/html/datalistelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app.dart b/tests/lib_strong/html/deferred_multi_app.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app.dart
rename to tests/lib_strong/html/deferred_multi_app.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app_htmltest.html b/tests/lib_strong/html/deferred_multi_app_htmltest.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app_htmltest.html
rename to tests/lib_strong/html/deferred_multi_app_htmltest.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app_lib.dart b/tests/lib_strong/html/deferred_multi_app_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/deferred_multi_app_lib.dart
rename to tests/lib_strong/html/deferred_multi_app_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/document_test.dart b/tests/lib_strong/html/document_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/document_test.dart
rename to tests/lib_strong/html/document_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/documentfragment_test.dart b/tests/lib_strong/html/documentfragment_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/documentfragment_test.dart
rename to tests/lib_strong/html/documentfragment_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/dom_constructors_test.dart b/tests/lib_strong/html/dom_constructors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/dom_constructors_test.dart
rename to tests/lib_strong/html/dom_constructors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/dom_isolates_test.dart.child_isolate.dart b/tests/lib_strong/html/dom_isolates_test.dart.child_isolate.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/dom_isolates_test.dart.child_isolate.dart
rename to tests/lib_strong/html/dom_isolates_test.dart.child_isolate.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/domparser_test.dart b/tests/lib_strong/html/domparser_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/domparser_test.dart
rename to tests/lib_strong/html/domparser_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_add_test.dart b/tests/lib_strong/html/element_add_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_add_test.dart
rename to tests/lib_strong/html/element_add_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_animate_test.dart b/tests/lib_strong/html/element_animate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_animate_test.dart
rename to tests/lib_strong/html/element_animate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_classes_svg_test.dart b/tests/lib_strong/html/element_classes_svg_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_classes_svg_test.dart
rename to tests/lib_strong/html/element_classes_svg_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_classes_test.dart b/tests/lib_strong/html/element_classes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_classes_test.dart
rename to tests/lib_strong/html/element_classes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_constructor_1_test.dart b/tests/lib_strong/html/element_constructor_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_constructor_1_test.dart
rename to tests/lib_strong/html/element_constructor_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_dimensions_test.dart b/tests/lib_strong/html/element_dimensions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_dimensions_test.dart
rename to tests/lib_strong/html/element_dimensions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_offset_test.dart b/tests/lib_strong/html/element_offset_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_offset_test.dart
rename to tests/lib_strong/html/element_offset_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_test.dart b/tests/lib_strong/html/element_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_test.dart
rename to tests/lib_strong/html/element_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors1_test.dart b/tests/lib_strong/html/element_types_constructors1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors1_test.dart
rename to tests/lib_strong/html/element_types_constructors1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors2_test.dart b/tests/lib_strong/html/element_types_constructors2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors2_test.dart
rename to tests/lib_strong/html/element_types_constructors2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors3_test.dart b/tests/lib_strong/html/element_types_constructors3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors3_test.dart
rename to tests/lib_strong/html/element_types_constructors3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors4_test.dart b/tests/lib_strong/html/element_types_constructors4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors4_test.dart
rename to tests/lib_strong/html/element_types_constructors4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors5_test.dart b/tests/lib_strong/html/element_types_constructors5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors5_test.dart
rename to tests/lib_strong/html/element_types_constructors5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_constructors6_test.dart b/tests/lib_strong/html/element_types_constructors6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_constructors6_test.dart
rename to tests/lib_strong/html/element_types_constructors6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/element_types_test.dart b/tests/lib_strong/html/element_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/element_types_test.dart
rename to tests/lib_strong/html/element_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/event_customevent_test.dart b/tests/lib_strong/html/event_customevent_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/event_customevent_test.dart
rename to tests/lib_strong/html/event_customevent_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/event_test.dart b/tests/lib_strong/html/event_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/event_test.dart
rename to tests/lib_strong/html/event_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/events_test.dart b/tests/lib_strong/html/events_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/events_test.dart
rename to tests/lib_strong/html/events_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/exceptions_test.dart b/tests/lib_strong/html/exceptions_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/exceptions_test.dart
rename to tests/lib_strong/html/exceptions_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/fileapi_test.dart b/tests/lib_strong/html/fileapi_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/fileapi_test.dart
rename to tests/lib_strong/html/fileapi_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/filereader_test.dart b/tests/lib_strong/html/filereader_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/filereader_test.dart
rename to tests/lib_strong/html/filereader_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/filteredelementlist_test.dart b/tests/lib_strong/html/filteredelementlist_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/filteredelementlist_test.dart
rename to tests/lib_strong/html/filteredelementlist_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/fontface_loaded_test.dart b/tests/lib_strong/html/fontface_loaded_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/fontface_loaded_test.dart
rename to tests/lib_strong/html/fontface_loaded_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/fontface_test.dart b/tests/lib_strong/html/fontface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/fontface_test.dart
rename to tests/lib_strong/html/fontface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/form_data_test.dart b/tests/lib_strong/html/form_data_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/form_data_test.dart
rename to tests/lib_strong/html/form_data_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/form_element_test.dart b/tests/lib_strong/html/form_element_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/form_element_test.dart
rename to tests/lib_strong/html/form_element_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/geolocation_test.dart b/tests/lib_strong/html/geolocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/geolocation_test.dart
rename to tests/lib_strong/html/geolocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/hidden_dom_1_test.dart b/tests/lib_strong/html/hidden_dom_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/hidden_dom_1_test.dart
rename to tests/lib_strong/html/hidden_dom_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/hidden_dom_2_test.dart b/tests/lib_strong/html/hidden_dom_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/hidden_dom_2_test.dart
rename to tests/lib_strong/html/hidden_dom_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/history_test.dart b/tests/lib_strong/html/history_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/history_test.dart
rename to tests/lib_strong/html/history_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/htmlcollection_test.dart b/tests/lib_strong/html/htmlcollection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/htmlcollection_test.dart
rename to tests/lib_strong/html/htmlcollection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/htmlelement_test.dart b/tests/lib_strong/html/htmlelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/htmlelement_test.dart
rename to tests/lib_strong/html/htmlelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/htmloptionscollection_test.dart b/tests/lib_strong/html/htmloptionscollection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/htmloptionscollection_test.dart
rename to tests/lib_strong/html/htmloptionscollection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/indexeddb_1_test.dart b/tests/lib_strong/html/indexeddb_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/indexeddb_1_test.dart
rename to tests/lib_strong/html/indexeddb_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/indexeddb_2_test.dart b/tests/lib_strong/html/indexeddb_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/indexeddb_2_test.dart
rename to tests/lib_strong/html/indexeddb_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/indexeddb_3_test.dart b/tests/lib_strong/html/indexeddb_3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/indexeddb_3_test.dart
rename to tests/lib_strong/html/indexeddb_3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/indexeddb_4_test.dart b/tests/lib_strong/html/indexeddb_4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/indexeddb_4_test.dart
rename to tests/lib_strong/html/indexeddb_4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/indexeddb_5_test.dart b/tests/lib_strong/html/indexeddb_5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/indexeddb_5_test.dart
rename to tests/lib_strong/html/indexeddb_5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/input_element_test.dart b/tests/lib_strong/html/input_element_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/input_element_test.dart
rename to tests/lib_strong/html/input_element_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/instance_of_test.dart b/tests/lib_strong/html/instance_of_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/instance_of_test.dart
rename to tests/lib_strong/html/instance_of_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/interactive_test.dart b/tests/lib_strong/html/interactive_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/interactive_test.dart
rename to tests/lib_strong/html/interactive_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/isolates_test.dart b/tests/lib_strong/html/isolates_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/isolates_test.dart
rename to tests/lib_strong/html/isolates_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_function_getter_test.dart b/tests/lib_strong/html/js_function_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_function_getter_test.dart
rename to tests/lib_strong/html/js_function_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_function_getter_trust_types_test.dart b/tests/lib_strong/html/js_function_getter_trust_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_function_getter_trust_types_test.dart
rename to tests/lib_strong/html/js_function_getter_trust_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_interop_1_test.dart b/tests/lib_strong/html/js_interop_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_interop_1_test.dart
rename to tests/lib_strong/html/js_interop_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_test.dart b/tests/lib_strong/html/js_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_test.dart
rename to tests/lib_strong/html/js_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous2_exp_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous2_exp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous2_exp_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous2_exp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous2_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous2_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_exp_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous_exp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_exp_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous_exp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_unreachable_exp_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous_unreachable_exp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_unreachable_exp_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous_unreachable_exp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_unreachable_test.dart b/tests/lib_strong/html/js_typed_interop_anonymous_unreachable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_anonymous_unreachable_test.dart
rename to tests/lib_strong/html/js_typed_interop_anonymous_unreachable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_default_arg_test.dart b/tests/lib_strong/html/js_typed_interop_default_arg_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_default_arg_test.dart
rename to tests/lib_strong/html/js_typed_interop_default_arg_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_lazy_test.dart b/tests/lib_strong/html/js_typed_interop_lazy_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_lazy_test.dart
rename to tests/lib_strong/html/js_typed_interop_lazy_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart b/tests/lib_strong/html/js_typed_interop_rename_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart
rename to tests/lib_strong/html/js_typed_interop_rename_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_side_cast_exp_test.dart b/tests/lib_strong/html/js_typed_interop_side_cast_exp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_side_cast_exp_test.dart
rename to tests/lib_strong/html/js_typed_interop_side_cast_exp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_side_cast_test.dart b/tests/lib_strong/html/js_typed_interop_side_cast_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_side_cast_test.dart
rename to tests/lib_strong/html/js_typed_interop_side_cast_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_test.dart b/tests/lib_strong/html/js_typed_interop_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_test.dart
rename to tests/lib_strong/html/js_typed_interop_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_util_test.dart b/tests/lib_strong/html/js_util_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/js_util_test.dart
rename to tests/lib_strong/html/js_util_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/json_helper.dart b/tests/lib_strong/html/json_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/json_helper.dart
rename to tests/lib_strong/html/json_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/keyboard_event_test.dart b/tests/lib_strong/html/keyboard_event_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/keyboard_event_test.dart
rename to tests/lib_strong/html/keyboard_event_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/localstorage_test.dart b/tests/lib_strong/html/localstorage_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/localstorage_test.dart
rename to tests/lib_strong/html/localstorage_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/location_test.dart b/tests/lib_strong/html/location_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/location_test.dart
rename to tests/lib_strong/html/location_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/media_stream_test.dart b/tests/lib_strong/html/media_stream_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/media_stream_test.dart
rename to tests/lib_strong/html/media_stream_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/mediasource_test.dart b/tests/lib_strong/html/mediasource_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/mediasource_test.dart
rename to tests/lib_strong/html/mediasource_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/messageevent_test.dart b/tests/lib_strong/html/messageevent_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/messageevent_test.dart
rename to tests/lib_strong/html/messageevent_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/mirrors_js_typed_interop_test.dart b/tests/lib_strong/html/mirrors_js_typed_interop_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/mirrors_js_typed_interop_test.dart
rename to tests/lib_strong/html/mirrors_js_typed_interop_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/mouse_event_test.dart b/tests/lib_strong/html/mouse_event_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/mouse_event_test.dart
rename to tests/lib_strong/html/mouse_event_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/mutationobserver_test.dart b/tests/lib_strong/html/mutationobserver_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/mutationobserver_test.dart
rename to tests/lib_strong/html/mutationobserver_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/native_gc_test.dart b/tests/lib_strong/html/native_gc_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/native_gc_test.dart
rename to tests/lib_strong/html/native_gc_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/navigator_test.dart b/tests/lib_strong/html/navigator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/navigator_test.dart
rename to tests/lib_strong/html/navigator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/no_linked_scripts_htmltest.html b/tests/lib_strong/html/no_linked_scripts_htmltest.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/no_linked_scripts_htmltest.html
rename to tests/lib_strong/html/no_linked_scripts_htmltest.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/node_test.dart b/tests/lib_strong/html/node_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/node_test.dart
rename to tests/lib_strong/html/node_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/node_validator_important_if_you_suppress_make_the_bug_critical_test.dart b/tests/lib_strong/html/node_validator_important_if_you_suppress_make_the_bug_critical_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/node_validator_important_if_you_suppress_make_the_bug_critical_test.dart
rename to tests/lib_strong/html/node_validator_important_if_you_suppress_make_the_bug_critical_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/non_instantiated_is_test.dart b/tests/lib_strong/html/non_instantiated_is_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/non_instantiated_is_test.dart
rename to tests/lib_strong/html/non_instantiated_is_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/notification_test.dart b/tests/lib_strong/html/notification_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/notification_test.dart
rename to tests/lib_strong/html/notification_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/performance_api_test.dart b/tests/lib_strong/html/performance_api_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/performance_api_test.dart
rename to tests/lib_strong/html/performance_api_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/postmessage_structured_test.dart b/tests/lib_strong/html/postmessage_structured_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/postmessage_structured_test.dart
rename to tests/lib_strong/html/postmessage_structured_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/private_extension_member_test.dart b/tests/lib_strong/html/private_extension_member_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/private_extension_member_test.dart
rename to tests/lib_strong/html/private_extension_member_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/query_test.dart b/tests/lib_strong/html/query_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/query_test.dart
rename to tests/lib_strong/html/query_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/queryall_test.dart b/tests/lib_strong/html/queryall_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/queryall_test.dart
rename to tests/lib_strong/html/queryall_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/range_test.dart b/tests/lib_strong/html/range_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/range_test.dart
rename to tests/lib_strong/html/range_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/request_animation_frame_test.dart b/tests/lib_strong/html/request_animation_frame_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/request_animation_frame_test.dart
rename to tests/lib_strong/html/request_animation_frame_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/resource_data.txt b/tests/lib_strong/html/resource_data.txt
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/resource_data.txt
rename to tests/lib_strong/html/resource_data.txt
diff --git a/pkg/dev_compiler/test/codegen/lib/html/resource_http_test.dart b/tests/lib_strong/html/resource_http_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/resource_http_test.dart
rename to tests/lib_strong/html/resource_http_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/rtc_test.dart b/tests/lib_strong/html/rtc_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/rtc_test.dart
rename to tests/lib_strong/html/rtc_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/scripts_htmltest.html b/tests/lib_strong/html/scripts_htmltest.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/scripts_htmltest.html
rename to tests/lib_strong/html/scripts_htmltest.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/scripts_test_dart.dart b/tests/lib_strong/html/scripts_test_dart.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/scripts_test_dart.dart
rename to tests/lib_strong/html/scripts_test_dart.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/scripts_test_js.js b/tests/lib_strong/html/scripts_test_js.js
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/scripts_test_js.js
rename to tests/lib_strong/html/scripts_test_js.js
diff --git a/pkg/dev_compiler/test/codegen/lib/html/selectelement_test.dart b/tests/lib_strong/html/selectelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/selectelement_test.dart
rename to tests/lib_strong/html/selectelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/serialized_script_value_test.dart b/tests/lib_strong/html/serialized_script_value_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/serialized_script_value_test.dart
rename to tests/lib_strong/html/serialized_script_value_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/shadow_dom_test.dart b/tests/lib_strong/html/shadow_dom_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/shadow_dom_test.dart
rename to tests/lib_strong/html/shadow_dom_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/shadowroot_test.dart b/tests/lib_strong/html/shadowroot_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/shadowroot_test.dart
rename to tests/lib_strong/html/shadowroot_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/small.mp4 b/tests/lib_strong/html/small.mp4
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/small.mp4
rename to tests/lib_strong/html/small.mp4
Binary files differ
diff --git a/pkg/dev_compiler/test/codegen/lib/html/small.webm b/tests/lib_strong/html/small.webm
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/small.webm
rename to tests/lib_strong/html/small.webm
Binary files differ
diff --git a/pkg/dev_compiler/test/codegen/lib/html/speechrecognition_test.dart b/tests/lib_strong/html/speechrecognition_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/speechrecognition_test.dart
rename to tests/lib_strong/html/speechrecognition_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/storage_test.dart b/tests/lib_strong/html/storage_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/storage_test.dart
rename to tests/lib_strong/html/storage_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/streams_test.dart b/tests/lib_strong/html/streams_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/streams_test.dart
rename to tests/lib_strong/html/streams_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/svg_test.dart b/tests/lib_strong/html/svg_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/svg_test.dart
rename to tests/lib_strong/html/svg_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/svgelement_test.dart b/tests/lib_strong/html/svgelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/svgelement_test.dart
rename to tests/lib_strong/html/svgelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/table_test.dart b/tests/lib_strong/html/table_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/table_test.dart
rename to tests/lib_strong/html/table_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/text_event_test.dart b/tests/lib_strong/html/text_event_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/text_event_test.dart
rename to tests/lib_strong/html/text_event_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/touchevent_test.dart b/tests/lib_strong/html/touchevent_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/touchevent_test.dart
rename to tests/lib_strong/html/touchevent_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/track_element_constructor_test.dart b/tests/lib_strong/html/track_element_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/track_element_constructor_test.dart
rename to tests/lib_strong/html/track_element_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/transferables_test.dart b/tests/lib_strong/html/transferables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/transferables_test.dart
rename to tests/lib_strong/html/transferables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/transition_event_test.dart b/tests/lib_strong/html/transition_event_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/transition_event_test.dart
rename to tests/lib_strong/html/transition_event_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/trusted_html_tree_sanitizer_test.dart b/tests/lib_strong/html/trusted_html_tree_sanitizer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/trusted_html_tree_sanitizer_test.dart
rename to tests/lib_strong/html/trusted_html_tree_sanitizer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/two_scripts_htmltest.html b/tests/lib_strong/html/two_scripts_htmltest.html
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/two_scripts_htmltest.html
rename to tests/lib_strong/html/two_scripts_htmltest.html
diff --git a/pkg/dev_compiler/test/codegen/lib/html/two_scripts_test_first.dart b/tests/lib_strong/html/two_scripts_test_first.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/two_scripts_test_first.dart
rename to tests/lib_strong/html/two_scripts_test_first.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/two_scripts_test_second.dart b/tests/lib_strong/html/two_scripts_test_second.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/two_scripts_test_second.dart
rename to tests/lib_strong/html/two_scripts_test_second.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_1_test.dart b/tests/lib_strong/html/typed_arrays_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_1_test.dart
rename to tests/lib_strong/html/typed_arrays_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_2_test.dart b/tests/lib_strong/html/typed_arrays_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_2_test.dart
rename to tests/lib_strong/html/typed_arrays_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_3_test.dart b/tests/lib_strong/html/typed_arrays_3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_3_test.dart
rename to tests/lib_strong/html/typed_arrays_3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_4_test.dart b/tests/lib_strong/html/typed_arrays_4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_4_test.dart
rename to tests/lib_strong/html/typed_arrays_4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_5_test.dart b/tests/lib_strong/html/typed_arrays_5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_5_test.dart
rename to tests/lib_strong/html/typed_arrays_5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_arraybuffer_test.dart b/tests/lib_strong/html/typed_arrays_arraybuffer_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_arraybuffer_test.dart
rename to tests/lib_strong/html/typed_arrays_arraybuffer_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_dataview_test.dart b/tests/lib_strong/html/typed_arrays_dataview_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_dataview_test.dart
rename to tests/lib_strong/html/typed_arrays_dataview_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_range_checks_test.dart b/tests/lib_strong/html/typed_arrays_range_checks_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_range_checks_test.dart
rename to tests/lib_strong/html/typed_arrays_range_checks_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typed_arrays_simd_test.dart b/tests/lib_strong/html/typed_arrays_simd_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typed_arrays_simd_test.dart
rename to tests/lib_strong/html/typed_arrays_simd_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/typing_test.dart b/tests/lib_strong/html/typing_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/typing_test.dart
rename to tests/lib_strong/html/typing_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/unknownelement_test.dart b/tests/lib_strong/html/unknownelement_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/unknownelement_test.dart
rename to tests/lib_strong/html/unknownelement_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/uri_test.dart b/tests/lib_strong/html/uri_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/uri_test.dart
rename to tests/lib_strong/html/uri_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/url_test.dart b/tests/lib_strong/html/url_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/url_test.dart
rename to tests/lib_strong/html/url_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/util.dart b/tests/lib_strong/html/util.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/util.dart
rename to tests/lib_strong/html/util.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/utils.dart b/tests/lib_strong/html/utils.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/utils.dart
rename to tests/lib_strong/html/utils.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/webgl_1_test.dart b/tests/lib_strong/html/webgl_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/webgl_1_test.dart
rename to tests/lib_strong/html/webgl_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/websocket_test.dart b/tests/lib_strong/html/websocket_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/websocket_test.dart
rename to tests/lib_strong/html/websocket_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/websql_test.dart b/tests/lib_strong/html/websql_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/websql_test.dart
rename to tests/lib_strong/html/websql_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/wheelevent_test.dart b/tests/lib_strong/html/wheelevent_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/wheelevent_test.dart
rename to tests/lib_strong/html/wheelevent_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/window_eq_test.dart b/tests/lib_strong/html/window_eq_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/window_eq_test.dart
rename to tests/lib_strong/html/window_eq_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/window_mangling_test.dart b/tests/lib_strong/html/window_mangling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/window_mangling_test.dart
rename to tests/lib_strong/html/window_mangling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/window_nosuchmethod_test.dart b/tests/lib_strong/html/window_nosuchmethod_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/window_nosuchmethod_test.dart
rename to tests/lib_strong/html/window_nosuchmethod_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/window_test.dart b/tests/lib_strong/html/window_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/window_test.dart
rename to tests/lib_strong/html/window_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/worker_api_test.dart b/tests/lib_strong/html/worker_api_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/worker_api_test.dart
rename to tests/lib_strong/html/worker_api_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/worker_test.dart b/tests/lib_strong/html/worker_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/worker_test.dart
rename to tests/lib_strong/html/worker_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/wrapping_collections_test.dart b/tests/lib_strong/html/wrapping_collections_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/wrapping_collections_test.dart
rename to tests/lib_strong/html/wrapping_collections_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/xhr_cross_origin_data.txt b/tests/lib_strong/html/xhr_cross_origin_data.txt
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/xhr_cross_origin_data.txt
rename to tests/lib_strong/html/xhr_cross_origin_data.txt
diff --git a/pkg/dev_compiler/test/codegen/lib/html/xhr_cross_origin_test.dart b/tests/lib_strong/html/xhr_cross_origin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/xhr_cross_origin_test.dart
rename to tests/lib_strong/html/xhr_cross_origin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/xhr_test.dart b/tests/lib_strong/html/xhr_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/xhr_test.dart
rename to tests/lib_strong/html/xhr_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/html/xsltprocessor_test.dart b/tests/lib_strong/html/xsltprocessor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/html/xsltprocessor_test.dart
rename to tests/lib_strong/html/xsltprocessor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/coin_test.dart b/tests/lib_strong/math/coin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/coin_test.dart
rename to tests/lib_strong/math/coin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/double_pow_test.dart b/tests/lib_strong/math/double_pow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/double_pow_test.dart
rename to tests/lib_strong/math/double_pow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/implement_rectangle_test.dart b/tests/lib_strong/math/implement_rectangle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/implement_rectangle_test.dart
rename to tests/lib_strong/math/implement_rectangle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/low_test.dart b/tests/lib_strong/math/low_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/low_test.dart
rename to tests/lib_strong/math/low_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/math2_test.dart b/tests/lib_strong/math/math2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/math2_test.dart
rename to tests/lib_strong/math/math2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/math_parse_double_test.dart b/tests/lib_strong/math/math_parse_double_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/math_parse_double_test.dart
rename to tests/lib_strong/math/math_parse_double_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/math_test.dart b/tests/lib_strong/math/math_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/math_test.dart
rename to tests/lib_strong/math/math_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/min_max_test.dart b/tests/lib_strong/math/min_max_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/min_max_test.dart
rename to tests/lib_strong/math/min_max_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/pi_test.dart b/tests/lib_strong/math/pi_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/pi_test.dart
rename to tests/lib_strong/math/pi_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/point_test.dart b/tests/lib_strong/math/point_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/point_test.dart
rename to tests/lib_strong/math/point_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/random_big_test.dart b/tests/lib_strong/math/random_big_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/random_big_test.dart
rename to tests/lib_strong/math/random_big_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/random_secure_test.dart b/tests/lib_strong/math/random_secure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/random_secure_test.dart
rename to tests/lib_strong/math/random_secure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/random_test.dart b/tests/lib_strong/math/random_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/random_test.dart
rename to tests/lib_strong/math/random_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/math/rectangle_test.dart b/tests/lib_strong/math/rectangle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/math/rectangle_test.dart
rename to tests/lib_strong/math/rectangle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/abstract_class_test.dart b/tests/lib_strong/mirrors/abstract_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/abstract_class_test.dart
rename to tests/lib_strong/mirrors/abstract_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/abstract_test.dart b/tests/lib_strong/mirrors/abstract_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/abstract_test.dart
rename to tests/lib_strong/mirrors/abstract_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/accessor_cache_overflow_test.dart b/tests/lib_strong/mirrors/accessor_cache_overflow_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/accessor_cache_overflow_test.dart
rename to tests/lib_strong/mirrors/accessor_cache_overflow_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing2_test.dart b/tests/lib_strong/mirrors/array_tracing2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing2_test.dart
rename to tests/lib_strong/mirrors/array_tracing2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing3_test.dart b/tests/lib_strong/mirrors/array_tracing3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing3_test.dart
rename to tests/lib_strong/mirrors/array_tracing3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing_test.dart b/tests/lib_strong/mirrors/array_tracing_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/array_tracing_test.dart
rename to tests/lib_strong/mirrors/array_tracing_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/basic_types_in_dart_core_test.dart b/tests/lib_strong/mirrors/basic_types_in_dart_core_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/basic_types_in_dart_core_test.dart
rename to tests/lib_strong/mirrors/basic_types_in_dart_core_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/circular_factory_redirection_test.dart b/tests/lib_strong/mirrors/circular_factory_redirection_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/circular_factory_redirection_test.dart
rename to tests/lib_strong/mirrors/circular_factory_redirection_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_declarations_test.dart b/tests/lib_strong/mirrors/class_declarations_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_declarations_test.dart
rename to tests/lib_strong/mirrors/class_declarations_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_location_other.dart b/tests/lib_strong/mirrors/class_mirror_location_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_location_other.dart
rename to tests/lib_strong/mirrors/class_mirror_location_other.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_location_test.dart b/tests/lib_strong/mirrors/class_mirror_location_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_location_test.dart
rename to tests/lib_strong/mirrors/class_mirror_location_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_data.dart b/tests/lib_strong/mirrors/class_mirror_type_variables_data.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_data.dart
rename to tests/lib_strong/mirrors/class_mirror_type_variables_data.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart b/tests/lib_strong/mirrors/class_mirror_type_variables_expect.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_expect.dart
rename to tests/lib_strong/mirrors/class_mirror_type_variables_expect.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_test.dart b/tests/lib_strong/mirrors/class_mirror_type_variables_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/class_mirror_type_variables_test.dart
rename to tests/lib_strong/mirrors/class_mirror_type_variables_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/closure_mirror_import1.dart b/tests/lib_strong/mirrors/closure_mirror_import1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/closure_mirror_import1.dart
rename to tests/lib_strong/mirrors/closure_mirror_import1.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/closure_mirror_import2.dart b/tests/lib_strong/mirrors/closure_mirror_import2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/closure_mirror_import2.dart
rename to tests/lib_strong/mirrors/closure_mirror_import2.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/closures_test.dart b/tests/lib_strong/mirrors/closures_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/closures_test.dart
rename to tests/lib_strong/mirrors/closures_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/closurization_equivalence_test.dart b/tests/lib_strong/mirrors/closurization_equivalence_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/closurization_equivalence_test.dart
rename to tests/lib_strong/mirrors/closurization_equivalence_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/constructor_kinds_test.dart b/tests/lib_strong/mirrors/constructor_kinds_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/constructor_kinds_test.dart
rename to tests/lib_strong/mirrors/constructor_kinds_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/constructor_optional_args_test.dart b/tests/lib_strong/mirrors/constructor_optional_args_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/constructor_optional_args_test.dart
rename to tests/lib_strong/mirrors/constructor_optional_args_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/constructor_private_name_test.dart b/tests/lib_strong/mirrors/constructor_private_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/constructor_private_name_test.dart
rename to tests/lib_strong/mirrors/constructor_private_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/constructors_test.dart b/tests/lib_strong/mirrors/constructors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/constructors_test.dart
rename to tests/lib_strong/mirrors/constructors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/dart2js_mirrors_test.dart b/tests/lib_strong/mirrors/dart2js_mirrors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/dart2js_mirrors_test.dart
rename to tests/lib_strong/mirrors/dart2js_mirrors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/declarations_model.dart b/tests/lib_strong/mirrors/declarations_model.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/declarations_model.dart
rename to tests/lib_strong/mirrors/declarations_model.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/declarations_model_easier.dart b/tests/lib_strong/mirrors/declarations_model_easier.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/declarations_model_easier.dart
rename to tests/lib_strong/mirrors/declarations_model_easier.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/declarations_type_test.dart b/tests/lib_strong/mirrors/declarations_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/declarations_type_test.dart
rename to tests/lib_strong/mirrors/declarations_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metadata_lib.dart b/tests/lib_strong/mirrors/deferred_mirrors_metadata_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metadata_lib.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_metadata_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metadata_test.dart b/tests/lib_strong/mirrors/deferred_mirrors_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metadata_test.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metatarget_lib.dart b/tests/lib_strong/mirrors/deferred_mirrors_metatarget_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metatarget_lib.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_metatarget_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metatarget_test.dart b/tests/lib_strong/mirrors/deferred_mirrors_metatarget_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_metatarget_test.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_metatarget_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_update_lib.dart b/tests/lib_strong/mirrors/deferred_mirrors_update_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_update_lib.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_update_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_update_test.dart b/tests/lib_strong/mirrors/deferred_mirrors_update_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_mirrors_update_test.dart
rename to tests/lib_strong/mirrors/deferred_mirrors_update_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_type_other.dart b/tests/lib_strong/mirrors/deferred_type_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_type_other.dart
rename to tests/lib_strong/mirrors/deferred_type_other.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/deferred_type_test.dart b/tests/lib_strong/mirrors/deferred_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/deferred_type_test.dart
rename to tests/lib_strong/mirrors/deferred_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/delegate_call_through_getter_test.dart b/tests/lib_strong/mirrors/delegate_call_through_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/delegate_call_through_getter_test.dart
rename to tests/lib_strong/mirrors/delegate_call_through_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/delegate_class_test.dart b/tests/lib_strong/mirrors/delegate_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/delegate_class_test.dart
rename to tests/lib_strong/mirrors/delegate_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/delegate_function_invocation_test.dart b/tests/lib_strong/mirrors/delegate_function_invocation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/delegate_function_invocation_test.dart
rename to tests/lib_strong/mirrors/delegate_function_invocation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/delegate_library_test.dart b/tests/lib_strong/mirrors/delegate_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/delegate_library_test.dart
rename to tests/lib_strong/mirrors/delegate_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/delegate_test.dart b/tests/lib_strong/mirrors/delegate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/delegate_test.dart
rename to tests/lib_strong/mirrors/delegate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/disable_tree_shaking_test.dart b/tests/lib_strong/mirrors/disable_tree_shaking_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/disable_tree_shaking_test.dart
rename to tests/lib_strong/mirrors/disable_tree_shaking_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/empty.dart b/tests/lib_strong/mirrors/empty.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/empty.dart
rename to tests/lib_strong/mirrors/empty.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/empty_test.dart b/tests/lib_strong/mirrors/empty_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/empty_test.dart
rename to tests/lib_strong/mirrors/empty_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/enum_test.dart b/tests/lib_strong/mirrors/enum_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/enum_test.dart
rename to tests/lib_strong/mirrors/enum_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/equality_test.dart b/tests/lib_strong/mirrors/equality_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/equality_test.dart
rename to tests/lib_strong/mirrors/equality_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/fake_function_with_call_test.dart b/tests/lib_strong/mirrors/fake_function_with_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/fake_function_with_call_test.dart
rename to tests/lib_strong/mirrors/fake_function_with_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/fake_function_without_call_test.dart b/tests/lib_strong/mirrors/fake_function_without_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/fake_function_without_call_test.dart
rename to tests/lib_strong/mirrors/fake_function_without_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/field_type_test.dart b/tests/lib_strong/mirrors/field_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/field_type_test.dart
rename to tests/lib_strong/mirrors/field_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/function_apply_mirrors_lib.dart b/tests/lib_strong/mirrors/function_apply_mirrors_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/function_apply_mirrors_lib.dart
rename to tests/lib_strong/mirrors/function_apply_mirrors_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/function_apply_mirrors_test.dart b/tests/lib_strong/mirrors/function_apply_mirrors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/function_apply_mirrors_test.dart
rename to tests/lib_strong/mirrors/function_apply_mirrors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/function_type_mirror_test.dart b/tests/lib_strong/mirrors/function_type_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/function_type_mirror_test.dart
rename to tests/lib_strong/mirrors/function_type_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_bounded_by_type_parameter_test.dart b/tests/lib_strong/mirrors/generic_bounded_by_type_parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_bounded_by_type_parameter_test.dart
rename to tests/lib_strong/mirrors/generic_bounded_by_type_parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_bounded_test.dart b/tests/lib_strong/mirrors/generic_bounded_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_bounded_test.dart
rename to tests/lib_strong/mirrors/generic_bounded_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_class_declaration_test.dart b/tests/lib_strong/mirrors/generic_class_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_class_declaration_test.dart
rename to tests/lib_strong/mirrors/generic_class_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_f_bounded_mixin_application_test.dart b/tests/lib_strong/mirrors/generic_f_bounded_mixin_application_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_f_bounded_mixin_application_test.dart
rename to tests/lib_strong/mirrors/generic_f_bounded_mixin_application_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_f_bounded_test.dart b/tests/lib_strong/mirrors/generic_f_bounded_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_f_bounded_test.dart
rename to tests/lib_strong/mirrors/generic_f_bounded_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_function_typedef_test.dart b/tests/lib_strong/mirrors/generic_function_typedef_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_function_typedef_test.dart
rename to tests/lib_strong/mirrors/generic_function_typedef_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_interface_test.dart b/tests/lib_strong/mirrors/generic_interface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_interface_test.dart
rename to tests/lib_strong/mirrors/generic_interface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_list_test.dart b/tests/lib_strong/mirrors/generic_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_list_test.dart
rename to tests/lib_strong/mirrors/generic_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_local_function_test.dart b/tests/lib_strong/mirrors/generic_local_function_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_local_function_test.dart
rename to tests/lib_strong/mirrors/generic_local_function_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_mixin_applications_test.dart b/tests/lib_strong/mirrors/generic_mixin_applications_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_mixin_applications_test.dart
rename to tests/lib_strong/mirrors/generic_mixin_applications_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_mixin_test.dart b/tests/lib_strong/mirrors/generic_mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_mixin_test.dart
rename to tests/lib_strong/mirrors/generic_mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_superclass_test.dart b/tests/lib_strong/mirrors/generic_superclass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_superclass_test.dart
rename to tests/lib_strong/mirrors/generic_superclass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generic_type_mirror_test.dart b/tests/lib_strong/mirrors/generic_type_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generic_type_mirror_test.dart
rename to tests/lib_strong/mirrors/generic_type_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_double_substitution_test.dart b/tests/lib_strong/mirrors/generics_double_substitution_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_double_substitution_test.dart
rename to tests/lib_strong/mirrors/generics_double_substitution_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_dynamic_test.dart b/tests/lib_strong/mirrors/generics_dynamic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_dynamic_test.dart
rename to tests/lib_strong/mirrors/generics_dynamic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_helper.dart b/tests/lib_strong/mirrors/generics_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_helper.dart
rename to tests/lib_strong/mirrors/generics_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_special_types_test.dart b/tests/lib_strong/mirrors/generics_special_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_special_types_test.dart
rename to tests/lib_strong/mirrors/generics_special_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_substitution_test.dart b/tests/lib_strong/mirrors/generics_substitution_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_substitution_test.dart
rename to tests/lib_strong/mirrors/generics_substitution_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/generics_test.dart b/tests/lib_strong/mirrors/generics_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/generics_test.dart
rename to tests/lib_strong/mirrors/generics_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/get_field_cache_test.dart b/tests/lib_strong/mirrors/get_field_cache_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/get_field_cache_test.dart
rename to tests/lib_strong/mirrors/get_field_cache_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/get_field_static_test.dart b/tests/lib_strong/mirrors/get_field_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/get_field_static_test.dart
rename to tests/lib_strong/mirrors/get_field_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/get_field_test.dart b/tests/lib_strong/mirrors/get_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/get_field_test.dart
rename to tests/lib_strong/mirrors/get_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/get_symbol_name_no_such_method_test.dart b/tests/lib_strong/mirrors/get_symbol_name_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/get_symbol_name_no_such_method_test.dart
rename to tests/lib_strong/mirrors/get_symbol_name_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/get_symbol_name_test.dart b/tests/lib_strong/mirrors/get_symbol_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/get_symbol_name_test.dart
rename to tests/lib_strong/mirrors/get_symbol_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/globalized_closures2_test.dart b/tests/lib_strong/mirrors/globalized_closures2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/globalized_closures2_test.dart
rename to tests/lib_strong/mirrors/globalized_closures2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/globalized_closures_test.dart b/tests/lib_strong/mirrors/globalized_closures_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/globalized_closures_test.dart
rename to tests/lib_strong/mirrors/globalized_closures_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/hierarchy_invariants_test.dart b/tests/lib_strong/mirrors/hierarchy_invariants_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/hierarchy_invariants_test.dart
rename to tests/lib_strong/mirrors/hierarchy_invariants_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/hot_get_field_test.dart b/tests/lib_strong/mirrors/hot_get_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/hot_get_field_test.dart
rename to tests/lib_strong/mirrors/hot_get_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/hot_set_field_test.dart b/tests/lib_strong/mirrors/hot_set_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/hot_set_field_test.dart
rename to tests/lib_strong/mirrors/hot_set_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/immutable_collections_test.dart b/tests/lib_strong/mirrors/immutable_collections_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/immutable_collections_test.dart
rename to tests/lib_strong/mirrors/immutable_collections_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/inference_and_no_such_method_test.dart b/tests/lib_strong/mirrors/inference_and_no_such_method_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/inference_and_no_such_method_test.dart
rename to tests/lib_strong/mirrors/inference_and_no_such_method_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/inherit_field_test.dart b/tests/lib_strong/mirrors/inherit_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/inherit_field_test.dart
rename to tests/lib_strong/mirrors/inherit_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/inherited_metadata_test.dart b/tests/lib_strong/mirrors/inherited_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/inherited_metadata_test.dart
rename to tests/lib_strong/mirrors/inherited_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/initializing_formals_test.dart b/tests/lib_strong/mirrors/initializing_formals_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/initializing_formals_test.dart
rename to tests/lib_strong/mirrors/initializing_formals_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_easier_test.dart b/tests/lib_strong/mirrors/instance_members_easier_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_easier_test.dart
rename to tests/lib_strong/mirrors/instance_members_easier_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_test.dart b/tests/lib_strong/mirrors/instance_members_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_test.dart
rename to tests/lib_strong/mirrors/instance_members_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_unimplemented_interface_test.dart b/tests/lib_strong/mirrors/instance_members_unimplemented_interface_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_unimplemented_interface_test.dart
rename to tests/lib_strong/mirrors/instance_members_unimplemented_interface_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_with_override_test.dart b/tests/lib_strong/mirrors/instance_members_with_override_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/instance_members_with_override_test.dart
rename to tests/lib_strong/mirrors/instance_members_with_override_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/instantiate_abstract_class_test.dart b/tests/lib_strong/mirrors/instantiate_abstract_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/instantiate_abstract_class_test.dart
rename to tests/lib_strong/mirrors/instantiate_abstract_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_cache_test.dart b/tests/lib_strong/mirrors/intercepted_cache_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_cache_test.dart
rename to tests/lib_strong/mirrors/intercepted_cache_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_class_test.dart b/tests/lib_strong/mirrors/intercepted_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_class_test.dart
rename to tests/lib_strong/mirrors/intercepted_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_object_test.dart b/tests/lib_strong/mirrors/intercepted_object_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_object_test.dart
rename to tests/lib_strong/mirrors/intercepted_object_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_superclass_test.dart b/tests/lib_strong/mirrors/intercepted_superclass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/intercepted_superclass_test.dart
rename to tests/lib_strong/mirrors/intercepted_superclass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invocation_cache_test.dart b/tests/lib_strong/mirrors/invocation_cache_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invocation_cache_test.dart
rename to tests/lib_strong/mirrors/invocation_cache_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invocation_fuzz_test.dart b/tests/lib_strong/mirrors/invocation_fuzz_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invocation_fuzz_test.dart
rename to tests/lib_strong/mirrors/invocation_fuzz_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_on_closure_test.dart b/tests/lib_strong/mirrors/invoke_call_on_closure_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_on_closure_test.dart
rename to tests/lib_strong/mirrors/invoke_call_on_closure_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_getter_previously_accessed_test.dart b/tests/lib_strong/mirrors/invoke_call_through_getter_previously_accessed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_getter_previously_accessed_test.dart
rename to tests/lib_strong/mirrors/invoke_call_through_getter_previously_accessed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_getter_test.dart b/tests/lib_strong/mirrors/invoke_call_through_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_getter_test.dart
rename to tests/lib_strong/mirrors/invoke_call_through_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_implicit_getter_previously_accessed_test.dart b/tests/lib_strong/mirrors/invoke_call_through_implicit_getter_previously_accessed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_implicit_getter_previously_accessed_test.dart
rename to tests/lib_strong/mirrors/invoke_call_through_implicit_getter_previously_accessed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_implicit_getter_test.dart b/tests/lib_strong/mirrors/invoke_call_through_implicit_getter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_call_through_implicit_getter_test.dart
rename to tests/lib_strong/mirrors/invoke_call_through_implicit_getter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_closurization2_test.dart b/tests/lib_strong/mirrors/invoke_closurization2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_closurization2_test.dart
rename to tests/lib_strong/mirrors/invoke_closurization2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_closurization_test.dart b/tests/lib_strong/mirrors/invoke_closurization_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_closurization_test.dart
rename to tests/lib_strong/mirrors/invoke_closurization_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_import_test.dart b/tests/lib_strong/mirrors/invoke_import_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_import_test.dart
rename to tests/lib_strong/mirrors/invoke_import_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_named_test.dart b/tests/lib_strong/mirrors/invoke_named_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_named_test.dart
rename to tests/lib_strong/mirrors/invoke_named_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_natives_malicious_test.dart b/tests/lib_strong/mirrors/invoke_natives_malicious_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_natives_malicious_test.dart
rename to tests/lib_strong/mirrors/invoke_natives_malicious_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_private_test.dart b/tests/lib_strong/mirrors/invoke_private_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_private_test.dart
rename to tests/lib_strong/mirrors/invoke_private_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_private_wrong_library_test.dart b/tests/lib_strong/mirrors/invoke_private_wrong_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_private_wrong_library_test.dart
rename to tests/lib_strong/mirrors/invoke_private_wrong_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_test.dart b/tests/lib_strong/mirrors/invoke_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_test.dart
rename to tests/lib_strong/mirrors/invoke_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/invoke_throws_test.dart b/tests/lib_strong/mirrors/invoke_throws_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/invoke_throws_test.dart
rename to tests/lib_strong/mirrors/invoke_throws_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/io_html_mutual_exclusion_test.dart b/tests/lib_strong/mirrors/io_html_mutual_exclusion_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/io_html_mutual_exclusion_test.dart
rename to tests/lib_strong/mirrors/io_html_mutual_exclusion_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/is_odd_test.dart b/tests/lib_strong/mirrors/is_odd_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/is_odd_test.dart
rename to tests/lib_strong/mirrors/is_odd_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/lazy_static_test.dart b/tests/lib_strong/mirrors/lazy_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/lazy_static_test.dart
rename to tests/lib_strong/mirrors/lazy_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/libraries_test.dart b/tests/lib_strong/mirrors/libraries_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/libraries_test.dart
rename to tests/lib_strong/mirrors/libraries_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_declarations_test.dart b/tests/lib_strong/mirrors/library_declarations_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_declarations_test.dart
rename to tests/lib_strong/mirrors/library_declarations_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_enumeration_deferred_loading_test.dart b/tests/lib_strong/mirrors/library_enumeration_deferred_loading_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_enumeration_deferred_loading_test.dart
rename to tests/lib_strong/mirrors/library_enumeration_deferred_loading_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_hidden.dart b/tests/lib_strong/mirrors/library_exports_hidden.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_hidden.dart
rename to tests/lib_strong/mirrors/library_exports_hidden.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_hidden_test.dart b/tests/lib_strong/mirrors/library_exports_hidden_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_hidden_test.dart
rename to tests/lib_strong/mirrors/library_exports_hidden_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_shown.dart b/tests/lib_strong/mirrors/library_exports_shown.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_shown.dart
rename to tests/lib_strong/mirrors/library_exports_shown.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_shown_test.dart b/tests/lib_strong/mirrors/library_exports_shown_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_exports_shown_test.dart
rename to tests/lib_strong/mirrors/library_exports_shown_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_import_deferred_loading_test.dart b/tests/lib_strong/mirrors/library_import_deferred_loading_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_import_deferred_loading_test.dart
rename to tests/lib_strong/mirrors/library_import_deferred_loading_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_a.dart b/tests/lib_strong/mirrors/library_imports_a.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_a.dart
rename to tests/lib_strong/mirrors/library_imports_a.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_b.dart b/tests/lib_strong/mirrors/library_imports_b.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_b.dart
rename to tests/lib_strong/mirrors/library_imports_b.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_bad_metadata_test.dart b/tests/lib_strong/mirrors/library_imports_bad_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_bad_metadata_test.dart
rename to tests/lib_strong/mirrors/library_imports_bad_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_deferred_test.dart b/tests/lib_strong/mirrors/library_imports_deferred_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_deferred_test.dart
rename to tests/lib_strong/mirrors/library_imports_deferred_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_hidden.dart b/tests/lib_strong/mirrors/library_imports_hidden.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_hidden.dart
rename to tests/lib_strong/mirrors/library_imports_hidden.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_hidden_test.dart b/tests/lib_strong/mirrors/library_imports_hidden_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_hidden_test.dart
rename to tests/lib_strong/mirrors/library_imports_hidden_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_metadata.dart b/tests/lib_strong/mirrors/library_imports_metadata.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_metadata.dart
rename to tests/lib_strong/mirrors/library_imports_metadata.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_metadata_test.dart b/tests/lib_strong/mirrors/library_imports_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_metadata_test.dart
rename to tests/lib_strong/mirrors/library_imports_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed.dart b/tests/lib_strong/mirrors/library_imports_prefixed.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed.dart
rename to tests/lib_strong/mirrors/library_imports_prefixed.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_show_hide.dart b/tests/lib_strong/mirrors/library_imports_prefixed_show_hide.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_show_hide.dart
rename to tests/lib_strong/mirrors/library_imports_prefixed_show_hide.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_show_hide_test.dart b/tests/lib_strong/mirrors/library_imports_prefixed_show_hide_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_show_hide_test.dart
rename to tests/lib_strong/mirrors/library_imports_prefixed_show_hide_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_test.dart b/tests/lib_strong/mirrors/library_imports_prefixed_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_prefixed_test.dart
rename to tests/lib_strong/mirrors/library_imports_prefixed_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_shown.dart b/tests/lib_strong/mirrors/library_imports_shown.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_shown.dart
rename to tests/lib_strong/mirrors/library_imports_shown.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_shown_test.dart b/tests/lib_strong/mirrors/library_imports_shown_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_imports_shown_test.dart
rename to tests/lib_strong/mirrors/library_imports_shown_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_lib1.dart b/tests/lib_strong/mirrors/library_metadata2_lib1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_lib1.dart
rename to tests/lib_strong/mirrors/library_metadata2_lib1.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_lib2.dart b/tests/lib_strong/mirrors/library_metadata2_lib2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_lib2.dart
rename to tests/lib_strong/mirrors/library_metadata2_lib2.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_test.dart b/tests/lib_strong/mirrors/library_metadata2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata2_test.dart
rename to tests/lib_strong/mirrors/library_metadata2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata_test.dart b/tests/lib_strong/mirrors/library_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metadata_test.dart
rename to tests/lib_strong/mirrors/library_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test.dart b/tests/lib_strong/mirrors/library_metatarget_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test.dart
rename to tests/lib_strong/mirrors/library_metatarget_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test_annotations_lib.dart b/tests/lib_strong/mirrors/library_metatarget_test_annotations_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test_annotations_lib.dart
rename to tests/lib_strong/mirrors/library_metatarget_test_annotations_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test_lib.dart b/tests/lib_strong/mirrors/library_metatarget_test_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_metatarget_test_lib.dart
rename to tests/lib_strong/mirrors/library_metatarget_test_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_uri_io_test.dart b/tests/lib_strong/mirrors/library_uri_io_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_uri_io_test.dart
rename to tests/lib_strong/mirrors/library_uri_io_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_uri_package_test.dart b/tests/lib_strong/mirrors/library_uri_package_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_uri_package_test.dart
rename to tests/lib_strong/mirrors/library_uri_package_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_with_annotated_declaration.dart b/tests/lib_strong/mirrors/library_with_annotated_declaration.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_with_annotated_declaration.dart
rename to tests/lib_strong/mirrors/library_with_annotated_declaration.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/library_without_declaration.dart b/tests/lib_strong/mirrors/library_without_declaration.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/library_without_declaration.dart
rename to tests/lib_strong/mirrors/library_without_declaration.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/list_constructor_test.dart b/tests/lib_strong/mirrors/list_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/list_constructor_test.dart
rename to tests/lib_strong/mirrors/list_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/load_library_test.dart b/tests/lib_strong/mirrors/load_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/load_library_test.dart
rename to tests/lib_strong/mirrors/load_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/local_function_is_static_test.dart b/tests/lib_strong/mirrors/local_function_is_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/local_function_is_static_test.dart
rename to tests/lib_strong/mirrors/local_function_is_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/local_isolate_test.dart b/tests/lib_strong/mirrors/local_isolate_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/local_isolate_test.dart
rename to tests/lib_strong/mirrors/local_isolate_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_allowed_values_import.dart b/tests/lib_strong/mirrors/metadata_allowed_values_import.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_allowed_values_import.dart
rename to tests/lib_strong/mirrors/metadata_allowed_values_import.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_allowed_values_test.dart b/tests/lib_strong/mirrors/metadata_allowed_values_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_allowed_values_test.dart
rename to tests/lib_strong/mirrors/metadata_allowed_values_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_class_mirror_test.dart b/tests/lib_strong/mirrors/metadata_class_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_class_mirror_test.dart
rename to tests/lib_strong/mirrors/metadata_class_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_const_map_test.dart b/tests/lib_strong/mirrors/metadata_const_map_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_const_map_test.dart
rename to tests/lib_strong/mirrors/metadata_const_map_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_constructed_constant_test.dart b/tests/lib_strong/mirrors/metadata_constructed_constant_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_constructed_constant_test.dart
rename to tests/lib_strong/mirrors/metadata_constructed_constant_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_constructor_arguments_test.dart b/tests/lib_strong/mirrors/metadata_constructor_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_constructor_arguments_test.dart
rename to tests/lib_strong/mirrors/metadata_constructor_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_nested_constructor_call_test.dart b/tests/lib_strong/mirrors/metadata_nested_constructor_call_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_nested_constructor_call_test.dart
rename to tests/lib_strong/mirrors/metadata_nested_constructor_call_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_scope_test.dart b/tests/lib_strong/mirrors/metadata_scope_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_scope_test.dart
rename to tests/lib_strong/mirrors/metadata_scope_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/metadata_test.dart b/tests/lib_strong/mirrors/metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/metadata_test.dart
rename to tests/lib_strong/mirrors/metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_location_other.dart b/tests/lib_strong/mirrors/method_mirror_location_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_location_other.dart
rename to tests/lib_strong/mirrors/method_mirror_location_other.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_location_test.dart b/tests/lib_strong/mirrors/method_mirror_location_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_location_test.dart
rename to tests/lib_strong/mirrors/method_mirror_location_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_name_test.dart b/tests/lib_strong/mirrors/method_mirror_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_name_test.dart
rename to tests/lib_strong/mirrors/method_mirror_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_properties_test.dart b/tests/lib_strong/mirrors/method_mirror_properties_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_properties_test.dart
rename to tests/lib_strong/mirrors/method_mirror_properties_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_returntype_test.dart b/tests/lib_strong/mirrors/method_mirror_returntype_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_returntype_test.dart
rename to tests/lib_strong/mirrors/method_mirror_returntype_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_cr.dart b/tests/lib_strong/mirrors/method_mirror_source_line_ending_cr.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_cr.dart
rename to tests/lib_strong/mirrors/method_mirror_source_line_ending_cr.dart
Binary files differ
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_crlf.dart b/tests/lib_strong/mirrors/method_mirror_source_line_ending_crlf.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_crlf.dart
rename to tests/lib_strong/mirrors/method_mirror_source_line_ending_crlf.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_lf.dart b/tests/lib_strong/mirrors/method_mirror_source_line_ending_lf.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_lf.dart
rename to tests/lib_strong/mirrors/method_mirror_source_line_ending_lf.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_test.dart b/tests/lib_strong/mirrors/method_mirror_source_line_ending_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_line_ending_test.dart
rename to tests/lib_strong/mirrors/method_mirror_source_line_ending_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_other.dart b/tests/lib_strong/mirrors/method_mirror_source_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_other.dart
rename to tests/lib_strong/mirrors/method_mirror_source_other.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_test.dart b/tests/lib_strong/mirrors/method_mirror_source_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/method_mirror_source_test.dart
rename to tests/lib_strong/mirrors/method_mirror_source_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirror_in_static_init_test.dart b/tests/lib_strong/mirrors/mirror_in_static_init_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirror_in_static_init_test.dart
rename to tests/lib_strong/mirrors/mirror_in_static_init_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_nsm_mismatch_test.dart b/tests/lib_strong/mirrors/mirrors_nsm_mismatch_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_nsm_mismatch_test.dart
rename to tests/lib_strong/mirrors/mirrors_nsm_mismatch_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_nsm_test.dart b/tests/lib_strong/mirrors/mirrors_nsm_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_nsm_test.dart
rename to tests/lib_strong/mirrors/mirrors_nsm_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_reader.dart b/tests/lib_strong/mirrors/mirrors_reader.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_reader.dart
rename to tests/lib_strong/mirrors/mirrors_reader.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_reader_test.dart b/tests/lib_strong/mirrors/mirrors_reader_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_reader_test.dart
rename to tests/lib_strong/mirrors/mirrors_reader_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_resolve_fields_test.dart b/tests/lib_strong/mirrors/mirrors_resolve_fields_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_resolve_fields_test.dart
rename to tests/lib_strong/mirrors/mirrors_resolve_fields_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_test.dart b/tests/lib_strong/mirrors/mirrors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_test.dart
rename to tests/lib_strong/mirrors/mirrors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_get_name2_test.dart b/tests/lib_strong/mirrors/mirrors_used_get_name2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_get_name2_test.dart
rename to tests/lib_strong/mirrors/mirrors_used_get_name2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_get_name_test.dart b/tests/lib_strong/mirrors/mirrors_used_get_name_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_get_name_test.dart
rename to tests/lib_strong/mirrors/mirrors_used_get_name_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_inheritance_test.dart b/tests/lib_strong/mirrors/mirrors_used_inheritance_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_inheritance_test.dart
rename to tests/lib_strong/mirrors/mirrors_used_inheritance_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_merge_test.dart b/tests/lib_strong/mirrors/mirrors_used_merge_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_merge_test.dart
rename to tests/lib_strong/mirrors/mirrors_used_merge_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_typedef_declaration_test.dart b/tests/lib_strong/mirrors/mirrors_used_typedef_declaration_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_used_typedef_declaration_test.dart
rename to tests/lib_strong/mirrors/mirrors_used_typedef_declaration_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_visitor.dart b/tests/lib_strong/mirrors/mirrors_visitor.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mirrors_visitor.dart
rename to tests/lib_strong/mirrors/mirrors_visitor.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mixin_application_test.dart b/tests/lib_strong/mirrors/mixin_application_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mixin_application_test.dart
rename to tests/lib_strong/mirrors/mixin_application_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mixin_members_test.dart b/tests/lib_strong/mirrors/mixin_members_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mixin_members_test.dart
rename to tests/lib_strong/mirrors/mixin_members_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mixin_simple_test.dart b/tests/lib_strong/mirrors/mixin_simple_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mixin_simple_test.dart
rename to tests/lib_strong/mirrors/mixin_simple_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/mixin_test.dart b/tests/lib_strong/mirrors/mixin_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/mixin_test.dart
rename to tests/lib_strong/mirrors/mixin_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/model.dart b/tests/lib_strong/mirrors/model.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/model.dart
rename to tests/lib_strong/mirrors/model.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/model_test.dart b/tests/lib_strong/mirrors/model_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/model_test.dart
rename to tests/lib_strong/mirrors/model_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/native_class_test.dart b/tests/lib_strong/mirrors/native_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/native_class_test.dart
rename to tests/lib_strong/mirrors/native_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/new_instance_optional_arguments_test.dart b/tests/lib_strong/mirrors/new_instance_optional_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/new_instance_optional_arguments_test.dart
rename to tests/lib_strong/mirrors/new_instance_optional_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/new_instance_with_type_arguments_test.dart b/tests/lib_strong/mirrors/new_instance_with_type_arguments_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/new_instance_with_type_arguments_test.dart
rename to tests/lib_strong/mirrors/new_instance_with_type_arguments_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/no_metadata_test.dart b/tests/lib_strong/mirrors/no_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/no_metadata_test.dart
rename to tests/lib_strong/mirrors/no_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/null2_test.dart b/tests/lib_strong/mirrors/null2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/null2_test.dart
rename to tests/lib_strong/mirrors/null2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/null_test.dart b/tests/lib_strong/mirrors/null_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/null_test.dart
rename to tests/lib_strong/mirrors/null_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/operator_test.dart b/tests/lib_strong/mirrors/operator_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/operator_test.dart
rename to tests/lib_strong/mirrors/operator_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/optional_parameters_test.dart b/tests/lib_strong/mirrors/optional_parameters_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/optional_parameters_test.dart
rename to tests/lib_strong/mirrors/optional_parameters_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/other_declarations_location_test.dart b/tests/lib_strong/mirrors/other_declarations_location_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/other_declarations_location_test.dart
rename to tests/lib_strong/mirrors/other_declarations_location_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/other_library.dart b/tests/lib_strong/mirrors/other_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/other_library.dart
rename to tests/lib_strong/mirrors/other_library.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/parameter_annotation_mirror_test.dart b/tests/lib_strong/mirrors/parameter_annotation_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/parameter_annotation_mirror_test.dart
rename to tests/lib_strong/mirrors/parameter_annotation_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/parameter_is_const_test.dart b/tests/lib_strong/mirrors/parameter_is_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/parameter_is_const_test.dart
rename to tests/lib_strong/mirrors/parameter_is_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/parameter_metadata_test.dart b/tests/lib_strong/mirrors/parameter_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/parameter_metadata_test.dart
rename to tests/lib_strong/mirrors/parameter_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/parameter_of_mixin_app_constructor_test.dart b/tests/lib_strong/mirrors/parameter_of_mixin_app_constructor_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/parameter_of_mixin_app_constructor_test.dart
rename to tests/lib_strong/mirrors/parameter_of_mixin_app_constructor_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/parameter_test.dart b/tests/lib_strong/mirrors/parameter_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/parameter_test.dart
rename to tests/lib_strong/mirrors/parameter_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_class_field_other.dart b/tests/lib_strong/mirrors/private_class_field_other.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_class_field_other.dart
rename to tests/lib_strong/mirrors/private_class_field_other.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_class_field_test.dart b/tests/lib_strong/mirrors/private_class_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_class_field_test.dart
rename to tests/lib_strong/mirrors/private_class_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_field_helper.dart b/tests/lib_strong/mirrors/private_field_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_field_helper.dart
rename to tests/lib_strong/mirrors/private_field_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_field_test.dart b/tests/lib_strong/mirrors/private_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_field_test.dart
rename to tests/lib_strong/mirrors/private_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_mangling_lib.dart b/tests/lib_strong/mirrors/private_symbol_mangling_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_mangling_lib.dart
rename to tests/lib_strong/mirrors/private_symbol_mangling_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_mangling_test.dart b/tests/lib_strong/mirrors/private_symbol_mangling_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_mangling_test.dart
rename to tests/lib_strong/mirrors/private_symbol_mangling_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_test.dart b/tests/lib_strong/mirrors/private_symbol_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_symbol_test.dart
rename to tests/lib_strong/mirrors/private_symbol_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/private_types_test.dart b/tests/lib_strong/mirrors/private_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/private_types_test.dart
rename to tests/lib_strong/mirrors/private_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/proxy_type_test.dart b/tests/lib_strong/mirrors/proxy_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/proxy_type_test.dart
rename to tests/lib_strong/mirrors/proxy_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/raw_type_test.dart b/tests/lib_strong/mirrors/raw_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/raw_type_test.dart
rename to tests/lib_strong/mirrors/raw_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/redirecting_factory_different_type_test.dart b/tests/lib_strong/mirrors/redirecting_factory_different_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/redirecting_factory_different_type_test.dart
rename to tests/lib_strong/mirrors/redirecting_factory_different_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/redirecting_factory_test.dart b/tests/lib_strong/mirrors/redirecting_factory_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/redirecting_factory_test.dart
rename to tests/lib_strong/mirrors/redirecting_factory_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflect_class_test.dart b/tests/lib_strong/mirrors/reflect_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflect_class_test.dart
rename to tests/lib_strong/mirrors/reflect_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflect_model_test.dart b/tests/lib_strong/mirrors/reflect_model_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflect_model_test.dart
rename to tests/lib_strong/mirrors/reflect_model_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflect_runtime_type_test.dart b/tests/lib_strong/mirrors/reflect_runtime_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflect_runtime_type_test.dart
rename to tests/lib_strong/mirrors/reflect_runtime_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflect_two_classes_test.dart b/tests/lib_strong/mirrors/reflect_two_classes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflect_two_classes_test.dart
rename to tests/lib_strong/mirrors/reflect_two_classes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflect_uninstantiated_class_test.dart b/tests/lib_strong/mirrors/reflect_uninstantiated_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflect_uninstantiated_class_test.dart
rename to tests/lib_strong/mirrors/reflect_uninstantiated_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_classes_test.dart b/tests/lib_strong/mirrors/reflected_type_classes_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_classes_test.dart
rename to tests/lib_strong/mirrors/reflected_type_classes_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_function_type_test.dart b/tests/lib_strong/mirrors/reflected_type_function_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_function_type_test.dart
rename to tests/lib_strong/mirrors/reflected_type_function_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_helper.dart b/tests/lib_strong/mirrors/reflected_type_helper.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_helper.dart
rename to tests/lib_strong/mirrors/reflected_type_helper.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_special_types_test.dart b/tests/lib_strong/mirrors/reflected_type_special_types_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_special_types_test.dart
rename to tests/lib_strong/mirrors/reflected_type_special_types_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_test.dart b/tests/lib_strong/mirrors/reflected_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_test.dart
rename to tests/lib_strong/mirrors/reflected_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_typedefs_test.dart b/tests/lib_strong/mirrors/reflected_type_typedefs_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_typedefs_test.dart
rename to tests/lib_strong/mirrors/reflected_type_typedefs_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_typevars_test.dart b/tests/lib_strong/mirrors/reflected_type_typevars_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflected_type_typevars_test.dart
rename to tests/lib_strong/mirrors/reflected_type_typevars_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/reflectively_instantiate_uninstantiated_class_test.dart b/tests/lib_strong/mirrors/reflectively_instantiate_uninstantiated_class_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/reflectively_instantiate_uninstantiated_class_test.dart
rename to tests/lib_strong/mirrors/reflectively_instantiate_uninstantiated_class_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/regress_14304_test.dart b/tests/lib_strong/mirrors/regress_14304_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/regress_14304_test.dart
rename to tests/lib_strong/mirrors/regress_14304_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/regress_16321_test.dart b/tests/lib_strong/mirrors/regress_16321_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/regress_16321_test.dart
rename to tests/lib_strong/mirrors/regress_16321_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/regress_19731_test.dart b/tests/lib_strong/mirrors/regress_19731_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/regress_19731_test.dart
rename to tests/lib_strong/mirrors/regress_19731_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/regress_26187_test.dart b/tests/lib_strong/mirrors/regress_26187_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/regress_26187_test.dart
rename to tests/lib_strong/mirrors/regress_26187_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/relation_assignable_test.dart b/tests/lib_strong/mirrors/relation_assignable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/relation_assignable_test.dart
rename to tests/lib_strong/mirrors/relation_assignable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/relation_subclass_test.dart b/tests/lib_strong/mirrors/relation_subclass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/relation_subclass_test.dart
rename to tests/lib_strong/mirrors/relation_subclass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/relation_subtype_test.dart b/tests/lib_strong/mirrors/relation_subtype_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/relation_subtype_test.dart
rename to tests/lib_strong/mirrors/relation_subtype_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/removed_api_test.dart b/tests/lib_strong/mirrors/removed_api_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/removed_api_test.dart
rename to tests/lib_strong/mirrors/removed_api_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app1.dart b/tests/lib_strong/mirrors/repeated_private_anon_mixin_app1.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app1.dart
rename to tests/lib_strong/mirrors/repeated_private_anon_mixin_app1.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app2.dart b/tests/lib_strong/mirrors/repeated_private_anon_mixin_app2.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app2.dart
rename to tests/lib_strong/mirrors/repeated_private_anon_mixin_app2.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app_test.dart b/tests/lib_strong/mirrors/repeated_private_anon_mixin_app_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/repeated_private_anon_mixin_app_test.dart
rename to tests/lib_strong/mirrors/repeated_private_anon_mixin_app_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/return_type_test.dart b/tests/lib_strong/mirrors/return_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/return_type_test.dart
rename to tests/lib_strong/mirrors/return_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/runtime_type_test.dart b/tests/lib_strong/mirrors/runtime_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/runtime_type_test.dart
rename to tests/lib_strong/mirrors/runtime_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/set_field_with_final_inheritance_test.dart b/tests/lib_strong/mirrors/set_field_with_final_inheritance_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/set_field_with_final_inheritance_test.dart
rename to tests/lib_strong/mirrors/set_field_with_final_inheritance_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/set_field_with_final_test.dart b/tests/lib_strong/mirrors/set_field_with_final_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/set_field_with_final_test.dart
rename to tests/lib_strong/mirrors/set_field_with_final_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/spawn_function_root_library_test.dart b/tests/lib_strong/mirrors/spawn_function_root_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/spawn_function_root_library_test.dart
rename to tests/lib_strong/mirrors/spawn_function_root_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/static_const_field_test.dart b/tests/lib_strong/mirrors/static_const_field_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/static_const_field_test.dart
rename to tests/lib_strong/mirrors/static_const_field_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/static_members_easier_test.dart b/tests/lib_strong/mirrors/static_members_easier_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/static_members_easier_test.dart
rename to tests/lib_strong/mirrors/static_members_easier_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/static_members_test.dart b/tests/lib_strong/mirrors/static_members_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/static_members_test.dart
rename to tests/lib_strong/mirrors/static_members_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/static_metatarget_test.dart b/tests/lib_strong/mirrors/static_metatarget_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/static_metatarget_test.dart
rename to tests/lib_strong/mirrors/static_metatarget_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/static_test.dart b/tests/lib_strong/mirrors/static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/static_test.dart
rename to tests/lib_strong/mirrors/static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/stringify.dart b/tests/lib_strong/mirrors/stringify.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/stringify.dart
rename to tests/lib_strong/mirrors/stringify.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/superclass2_test.dart b/tests/lib_strong/mirrors/superclass2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/superclass2_test.dart
rename to tests/lib_strong/mirrors/superclass2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/superclass_test.dart b/tests/lib_strong/mirrors/superclass_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/superclass_test.dart
rename to tests/lib_strong/mirrors/superclass_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/symbol_validation_test.dart b/tests/lib_strong/mirrors/symbol_validation_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/symbol_validation_test.dart
rename to tests/lib_strong/mirrors/symbol_validation_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/syntax_error_test.dart b/tests/lib_strong/mirrors/syntax_error_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/syntax_error_test.dart
rename to tests/lib_strong/mirrors/syntax_error_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/synthetic_accessor_properties_test.dart b/tests/lib_strong/mirrors/synthetic_accessor_properties_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/synthetic_accessor_properties_test.dart
rename to tests/lib_strong/mirrors/synthetic_accessor_properties_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/to_string_test.dart b/tests/lib_strong/mirrors/to_string_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/to_string_test.dart
rename to tests/lib_strong/mirrors/to_string_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/top_level_accessors_test.dart b/tests/lib_strong/mirrors/top_level_accessors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/top_level_accessors_test.dart
rename to tests/lib_strong/mirrors/top_level_accessors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/type_argument_is_type_variable_test.dart b/tests/lib_strong/mirrors/type_argument_is_type_variable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/type_argument_is_type_variable_test.dart
rename to tests/lib_strong/mirrors/type_argument_is_type_variable_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/type_mirror_for_type_test.dart b/tests/lib_strong/mirrors/type_mirror_for_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/type_mirror_for_type_test.dart
rename to tests/lib_strong/mirrors/type_mirror_for_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/type_variable_is_static_test.dart b/tests/lib_strong/mirrors/type_variable_is_static_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/type_variable_is_static_test.dart
rename to tests/lib_strong/mirrors/type_variable_is_static_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/type_variable_owner_test.dart b/tests/lib_strong/mirrors/type_variable_owner_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/type_variable_owner_test.dart
rename to tests/lib_strong/mirrors/type_variable_owner_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typearguments_mirror_test.dart b/tests/lib_strong/mirrors/typearguments_mirror_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typearguments_mirror_test.dart
rename to tests/lib_strong/mirrors/typearguments_mirror_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_deferred_library_test.dart b/tests/lib_strong/mirrors/typedef_deferred_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_deferred_library_test.dart
rename to tests/lib_strong/mirrors/typedef_deferred_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_in_signature_test.dart b/tests/lib_strong/mirrors/typedef_in_signature_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_in_signature_test.dart
rename to tests/lib_strong/mirrors/typedef_in_signature_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_library.dart b/tests/lib_strong/mirrors/typedef_library.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_library.dart
rename to tests/lib_strong/mirrors/typedef_library.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_library_test.dart b/tests/lib_strong/mirrors/typedef_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_library_test.dart
rename to tests/lib_strong/mirrors/typedef_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_metadata_test.dart b/tests/lib_strong/mirrors/typedef_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_metadata_test.dart
rename to tests/lib_strong/mirrors/typedef_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_reflected_type_test.dart b/tests/lib_strong/mirrors/typedef_reflected_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_reflected_type_test.dart
rename to tests/lib_strong/mirrors/typedef_reflected_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typedef_test.dart b/tests/lib_strong/mirrors/typedef_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typedef_test.dart
rename to tests/lib_strong/mirrors/typedef_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/typevariable_mirror_metadata_test.dart b/tests/lib_strong/mirrors/typevariable_mirror_metadata_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/typevariable_mirror_metadata_test.dart
rename to tests/lib_strong/mirrors/typevariable_mirror_metadata_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unmangled_type_test.dart b/tests/lib_strong/mirrors/unmangled_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unmangled_type_test.dart
rename to tests/lib_strong/mirrors/unmangled_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unnamed_library_test.dart b/tests/lib_strong/mirrors/unnamed_library_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unnamed_library_test.dart
rename to tests/lib_strong/mirrors/unnamed_library_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors2_test.dart b/tests/lib_strong/mirrors/unused_mirrors2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors2_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors3_test.dart b/tests/lib_strong/mirrors/unused_mirrors3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors3_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors4_test.dart b/tests/lib_strong/mirrors/unused_mirrors4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors4_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors5_test.dart b/tests/lib_strong/mirrors/unused_mirrors5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors5_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors6_test.dart b/tests/lib_strong/mirrors/unused_mirrors6_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors6_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors6_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors7_test.dart b/tests/lib_strong/mirrors/unused_mirrors7_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors7_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors7_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors8_test.dart b/tests/lib_strong/mirrors/unused_mirrors8_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors8_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors8_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors9_test.dart b/tests/lib_strong/mirrors/unused_mirrors9_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors9_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors9_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors_test.dart b/tests/lib_strong/mirrors/unused_mirrors_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors_used_test.dart b/tests/lib_strong/mirrors/unused_mirrors_used_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/unused_mirrors_used_test.dart
rename to tests/lib_strong/mirrors/unused_mirrors_used_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/mirrors/variable_is_const_test.dart b/tests/lib_strong/mirrors/variable_is_const_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/mirrors/variable_is_const_test.dart
rename to tests/lib_strong/mirrors/variable_is_const_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/byte_data_test.dart b/tests/lib_strong/typed_data/byte_data_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/byte_data_test.dart
rename to tests/lib_strong/typed_data/byte_data_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/constructor_checks_test.dart b/tests/lib_strong/typed_data/constructor_checks_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/constructor_checks_test.dart
rename to tests/lib_strong/typed_data/constructor_checks_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/endianness_test.dart b/tests/lib_strong/typed_data/endianness_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/endianness_test.dart
rename to tests/lib_strong/typed_data/endianness_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_clamp_test.dart b/tests/lib_strong/typed_data/float32x4_clamp_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_clamp_test.dart
rename to tests/lib_strong/typed_data/float32x4_clamp_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_cross_test.dart b/tests/lib_strong/typed_data/float32x4_cross_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_cross_test.dart
rename to tests/lib_strong/typed_data/float32x4_cross_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_list_test.dart b/tests/lib_strong/typed_data/float32x4_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_list_test.dart
rename to tests/lib_strong/typed_data/float32x4_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_shuffle_test.dart b/tests/lib_strong/typed_data/float32x4_shuffle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_shuffle_test.dart
rename to tests/lib_strong/typed_data/float32x4_shuffle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_sign_mask_test.dart b/tests/lib_strong/typed_data/float32x4_sign_mask_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_sign_mask_test.dart
rename to tests/lib_strong/typed_data/float32x4_sign_mask_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_test.dart b/tests/lib_strong/typed_data/float32x4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_test.dart
rename to tests/lib_strong/typed_data/float32x4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_transpose_test.dart b/tests/lib_strong/typed_data/float32x4_transpose_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_transpose_test.dart
rename to tests/lib_strong/typed_data/float32x4_transpose_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_two_arg_shuffle_test.dart b/tests/lib_strong/typed_data/float32x4_two_arg_shuffle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_two_arg_shuffle_test.dart
rename to tests/lib_strong/typed_data/float32x4_two_arg_shuffle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_unbox_phi_test.dart b/tests/lib_strong/typed_data/float32x4_unbox_phi_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_unbox_phi_test.dart
rename to tests/lib_strong/typed_data/float32x4_unbox_phi_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_unbox_regress_test.dart b/tests/lib_strong/typed_data/float32x4_unbox_regress_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float32x4_unbox_regress_test.dart
rename to tests/lib_strong/typed_data/float32x4_unbox_regress_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float64x2_functional_test.dart b/tests/lib_strong/typed_data/float64x2_functional_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float64x2_functional_test.dart
rename to tests/lib_strong/typed_data/float64x2_functional_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/float64x2_typed_list_test.dart b/tests/lib_strong/typed_data/float64x2_typed_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/float64x2_typed_list_test.dart
rename to tests/lib_strong/typed_data/float64x2_typed_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_arithmetic_test.dart b/tests/lib_strong/typed_data/int32x4_arithmetic_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_arithmetic_test.dart
rename to tests/lib_strong/typed_data/int32x4_arithmetic_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_bigint_test.dart b/tests/lib_strong/typed_data/int32x4_bigint_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_bigint_test.dart
rename to tests/lib_strong/typed_data/int32x4_bigint_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_list_test.dart b/tests/lib_strong/typed_data/int32x4_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_list_test.dart
rename to tests/lib_strong/typed_data/int32x4_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_shuffle_test.dart b/tests/lib_strong/typed_data/int32x4_shuffle_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_shuffle_test.dart
rename to tests/lib_strong/typed_data/int32x4_shuffle_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_sign_mask_test.dart b/tests/lib_strong/typed_data/int32x4_sign_mask_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_sign_mask_test.dart
rename to tests/lib_strong/typed_data/int32x4_sign_mask_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_test.dart b/tests/lib_strong/typed_data/int32x4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int32x4_test.dart
rename to tests/lib_strong/typed_data/int32x4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/int64_list_load_store_test.dart b/tests/lib_strong/typed_data/int64_list_load_store_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/int64_list_load_store_test.dart
rename to tests/lib_strong/typed_data/int64_list_load_store_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/native_interceptor_no_own_method_to_intercept_test.dart b/tests/lib_strong/typed_data/native_interceptor_no_own_method_to_intercept_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/native_interceptor_no_own_method_to_intercept_test.dart
rename to tests/lib_strong/typed_data/native_interceptor_no_own_method_to_intercept_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_1_test.dart b/tests/lib_strong/typed_data/setRange_1_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_1_test.dart
rename to tests/lib_strong/typed_data/setRange_1_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_2_test.dart b/tests/lib_strong/typed_data/setRange_2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_2_test.dart
rename to tests/lib_strong/typed_data/setRange_2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_3_test.dart b/tests/lib_strong/typed_data/setRange_3_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_3_test.dart
rename to tests/lib_strong/typed_data/setRange_3_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_4_test.dart b/tests/lib_strong/typed_data/setRange_4_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_4_test.dart
rename to tests/lib_strong/typed_data/setRange_4_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_5_test.dart b/tests/lib_strong/typed_data/setRange_5_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_5_test.dart
rename to tests/lib_strong/typed_data/setRange_5_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/setRange_lib.dart b/tests/lib_strong/typed_data/setRange_lib.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/setRange_lib.dart
rename to tests/lib_strong/typed_data/setRange_lib.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/simd_store_to_load_forward_test.dart b/tests/lib_strong/typed_data/simd_store_to_load_forward_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/simd_store_to_load_forward_test.dart
rename to tests/lib_strong/typed_data/simd_store_to_load_forward_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/simd_type_check_removal.dart b/tests/lib_strong/typed_data/simd_type_check_removal.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/simd_type_check_removal.dart
rename to tests/lib_strong/typed_data/simd_type_check_removal.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_from_list_test.dart b/tests/lib_strong/typed_data/typed_data_from_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_from_list_test.dart
rename to tests/lib_strong/typed_data/typed_data_from_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_hierarchy_int64_test.dart b/tests/lib_strong/typed_data/typed_data_hierarchy_int64_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_hierarchy_int64_test.dart
rename to tests/lib_strong/typed_data/typed_data_hierarchy_int64_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_hierarchy_test.dart b/tests/lib_strong/typed_data/typed_data_hierarchy_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_hierarchy_test.dart
rename to tests/lib_strong/typed_data/typed_data_hierarchy_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_list_test.dart b/tests/lib_strong/typed_data/typed_data_list_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_list_test.dart
rename to tests/lib_strong/typed_data/typed_data_list_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_load2_test.dart b/tests/lib_strong/typed_data/typed_data_load2_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_load2_test.dart
rename to tests/lib_strong/typed_data/typed_data_load2_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_load_test.dart b/tests/lib_strong/typed_data/typed_data_load_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_load_test.dart
rename to tests/lib_strong/typed_data/typed_data_load_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_sublist_type_test.dart b/tests/lib_strong/typed_data/typed_data_sublist_type_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_data_sublist_type_test.dart
rename to tests/lib_strong/typed_data/typed_data_sublist_type_test.dart
diff --git a/pkg/dev_compiler/test/codegen/lib/typed_data/typed_list_iterable_test.dart b/tests/lib_strong/typed_data/typed_list_iterable_test.dart
similarity index 100%
rename from pkg/dev_compiler/test/codegen/lib/typed_data/typed_list_iterable_test.dart
rename to tests/lib_strong/typed_data/typed_list_iterable_test.dart
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index 0a29025..daecba8 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -48,6 +48,7 @@
 io/socket_many_connections_test: Skip
 # Re-enable once the bots have been updated. Issue #26057
 io/secure_server_client_certificate_test: Skip
+io/socket_test: Pass, Timeout # Issue 27453
 
 [ $runtime == vm && $system == linux ]
 # These tests have started timing out and issue 25649 has been filed to
diff --git a/tools/VERSION b/tools/VERSION
index 27a6c02..70b6f77 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,5 +28,5 @@
 MAJOR 1
 MINOR 22
 PATCH 0
-PRERELEASE 0
+PRERELEASE 1
 PRERELEASE_PATCH 0
diff --git a/tools/build.py b/tools/build.py
index 4f5d2e1..e30b1f8 100755
--- a/tools/build.py
+++ b/tools/build.py
@@ -416,13 +416,26 @@
     print ("Tried to run GN, but it failed. Try running it manually: \n\t$ " +
            ' '.join(gn_command))
 
+
+def ShouldRunGN(out_dir):
+  return (not os.path.exists(out_dir) or
+          not os.path.isfile(os.path.join(out_dir, 'args.gn')))
+
+
+def UseGoma(out_dir):
+  args_gn = os.path.join(out_dir, 'args.gn')
+  return 'use_goma = true' in open(args_gn, 'r').read()
+
+
 def BuildNinjaCommand(options, target, target_os, mode, arch):
   out_dir = utils.GetBuildRoot(HOST_OS, mode, arch, target_os)
-  if not os.path.exists(out_dir):
+  if ShouldRunGN(out_dir):
     RunGN(target_os, mode, arch)
   command = ['ninja', '-C', out_dir]
   if options.verbose:
     command += ['-v']
+  if UseGoma(out_dir):
+    command += ['-j200']
   command += [target]
   return command
 
diff --git a/tools/observatory_tool.py b/tools/observatory_tool.py
index 08f8073..e82c72c 100755
--- a/tools/observatory_tool.py
+++ b/tools/observatory_tool.py
@@ -38,6 +38,19 @@
 
 usage = """observatory_tool.py [options]"""
 
+# Run |command|. If its return code is 0, return 0 and swallow its output.
+# If its return code is non-zero, emit its output unless |always_silent| is
+# True, and return the return code.
+def RunCommand(command, always_silent=False):
+  try:
+    subprocess.check_output(command, stderr=subprocess.STDOUT)
+    return 0
+  except subprocess.CalledProcessError as e:
+    if not always_silent:
+      print ("Command failed: " + ' '.join(command) + "\n" +
+              "output: " + e.output)
+    return e.returncode
+
 def CreateTimestampFile(options):
   if options.stamp != '':
     dir_name = os.path.dirname(options.stamp)
@@ -75,45 +88,41 @@
     print "--sdk expects 'True' or 'False' argument."
     return False
 
-  with open(os.devnull, 'wb') as silent_sink:
-    # Required options.
-    if options.command is None or options.directory is None:
-      return False
+  # Required options.
+  if options.command is None or options.directory is None:
+    return False
 
-    # Set a default value for pub_snapshot.
-    options.pub_snapshot = None
+  # Set a default value for pub_snapshot.
+  options.pub_snapshot = None
 
-    # If we have a working pub executable, try and use that.
-    # TODO(whesse): Drop the pub-executable option if it isn't used.
-    if options.pub_executable is not None:
-      try:
-        if 0 == subprocess.call([options.pub_executable, '--version'],
-                                stdout=silent_sink,
-                                stderr=silent_sink):
-          return True
-      except OSError as e:
-        pass
-    options.pub_executable = None
+  # If we have a working pub executable, try and use that.
+  # TODO(whesse): Drop the pub-executable option if it isn't used.
+  if options.pub_executable is not None:
+    try:
+      if 0 == RunCommand([options.pub_executable, '--version'],
+                         always_silent=True):
+        return True
+    except OSError as e:
+      pass
+  options.pub_executable = None
 
-    if options.sdk and utils.CheckedInSdkCheckExecutable():
-      # Use the checked in pub executable.
-      options.pub_snapshot = os.path.join(utils.CheckedInSdkPath(),
-                                          'bin',
-                                          'snapshots',
-                                          'pub.dart.snapshot');
-      try:
-        if 0 == subprocess.call([utils.CheckedInSdkExecutable(),
-                                 options.pub_snapshot,
-                                 '--version'],
-                                 stdout=silent_sink,
-                                 stderr=silent_sink):
-          return True
-      except OSError as e:
-        pass
-    options.pub_snapshot = None
+  if options.sdk and utils.CheckedInSdkCheckExecutable():
+    # Use the checked in pub executable.
+    options.pub_snapshot = os.path.join(utils.CheckedInSdkPath(),
+                                        'bin',
+                                        'snapshots',
+                                        'pub.dart.snapshot');
+    try:
+      if 0 == RunCommand([utils.CheckedInSdkExecutable(),
+                          options.pub_snapshot,
+                          '--version'], always_silent=True):
+        return True
+    except OSError as e:
+      pass
+  options.pub_snapshot = None
 
-    # We need a dart executable.
-    return (options.dart_executable is not None)
+  # We need a dart executable.
+  return (options.dart_executable is not None)
 
 def ChangeDirectory(directory):
   os.chdir(directory);
@@ -138,23 +147,21 @@
                pub_snapshot,
                command,
                silent):
-  with open(os.devnull, 'wb') as silent_sink:
-    if pub_executable is not None:
-      executable = [pub_executable]
-    elif pub_snapshot is not None:
-      executable = [utils.CheckedInSdkExecutable(), pub_snapshot]
-    else:
-      DisplayBootstrapWarning()
-      executable = [dart_executable, PUB_PATH]
-      # Prevent the bootstrap Dart executable from running in regular
-      # development flow.
-      # REMOVE THE FOLLOWING LINE TO USE the dart_bootstrap binary.
-      # return False
+  if pub_executable is not None:
+    executable = [pub_executable]
+  elif pub_snapshot is not None:
+    executable = [utils.CheckedInSdkExecutable(), pub_snapshot]
+  else:
     if not silent:
-      print >> sys.stderr, ('Running command "%s"') % (executable + command)
-    return subprocess.call(executable + command,
-                           stdout=silent_sink if silent else None,
-                           stderr=silent_sink if silent else None)
+      DisplayBootstrapWarning()
+    executable = [dart_executable, PUB_PATH]
+    # Prevent the bootstrap Dart executable from running in regular
+    # development flow.
+    # REMOVE THE FOLLOWING LINE TO USE the dart_bootstrap binary.
+    # return False
+  if not silent:
+    print >> sys.stderr, ('Running command "%s"') % (executable + command)
+  return RunCommand(executable + command)
 
 def Deploy(input_dir, output_dir):
   shutil.rmtree(output_dir)
diff --git a/tools/testing/dart/status_file_parser.dart b/tools/testing/dart/status_file_parser.dart
index a26c792..3ede28c 100644
--- a/tools/testing/dart/status_file_parser.dart
+++ b/tools/testing/dart/status_file_parser.dart
@@ -34,10 +34,6 @@
   // Special 'TIMEOUT' cases
   static Expectation DARTK_TIMEOUT = byName('DartkTimeout');
 
-  // Special 'MISSING_COMPILETIME_ERROR'
-  static Expectation DARTK_MISSING_COMPILETIME_ERROR =
-      byName('DartkMissingCompileTimeError');
-
   // Special 'COMPILETIME_ERROR'
   static Expectation DARTK_COMPILETIME_ERROR = byName('DartkCompileTimeError');
 
@@ -80,15 +76,14 @@
       var timeout = build("Timeout");
       build("Pass");
 
-      var missingCompileError = build("MissingCompileTimeError", group: fail);
       var compileError = build("CompileTimeError", group: fail);
+      build("MissingCompileTimeError", group: fail);
       build("MissingRuntimeError", group: fail);
       build("RuntimeError", group: fail);
 
       // Dartk sub expectations
       build("DartkCrash", group: crash);
       build("DartkTimeout", group: timeout);
-      build("DartkMissingCompileTimeError", group: missingCompileError);
       build("DartkCompileTimeError", group: compileError);
 
       build("MissingStaticWarning", group: fail);
diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart
index bc6be64..3694509 100644
--- a/tools/testing/dart/test_runner.dart
+++ b/tools/testing/dart/test_runner.dart
@@ -1670,8 +1670,6 @@
       return Expectation.DARTK_CRASH;
     } else if (result.canBeOutcomeOf(Expectation.TIMEOUT)) {
       return Expectation.DARTK_TIMEOUT;
-    } else if (result.canBeOutcomeOf(Expectation.MISSING_COMPILETIME_ERROR)) {
-      return Expectation.DARTK_MISSING_COMPILETIME_ERROR;
     } else if (result.canBeOutcomeOf(Expectation.COMPILETIME_ERROR)) {
       return Expectation.DARTK_COMPILETIME_ERROR;
     }
