Deprecate chaseDependencies option.

The option is not used by any client at this time and removing it simplifies the
next stack of changes I'll be making on how we compose file systems.

I also don't believe we will necessarily add this back as an option, but instead
it might be that clients requriing hermeticity will provide a custom file system
that helps with that.

Change-Id: I401efb042920d234382b6c041b13d40ffae5c908
Reviewed-on: https://dart-review.googlesource.com/56462
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
diff --git a/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart b/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
index 99320a1..74c0314 100644
--- a/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
+++ b/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
@@ -412,7 +412,7 @@
 //        print(problem.formatted);
       };
 
-    options = new ProcessedOptions(optionBuilder, false, [entryPoint]);
+    options = new ProcessedOptions(optionBuilder, [entryPoint]);
 
     UriTranslatorImpl uriTranslator = await options.getUriTranslator();
 
diff --git a/pkg/dev_compiler/tool/build_pkgs.dart b/pkg/dev_compiler/tool/build_pkgs.dart
index 904aad3..c8b3bf12 100755
--- a/pkg/dev_compiler/tool/build_pkgs.dart
+++ b/pkg/dev_compiler/tool/build_pkgs.dart
@@ -189,7 +189,6 @@
     ..packagesFileUri = _uriInRepo(".packages")
     ..strongMode = true
     ..debugDump = true
-    ..chaseDependencies = true
     ..onError = errorHandler
     ..reportMessages = true
     ..target = new DevCompilerTarget();
diff --git a/pkg/dev_compiler/tool/kernel_sdk.dart b/pkg/dev_compiler/tool/kernel_sdk.dart
index f2d5623..38e9e65 100755
--- a/pkg/dev_compiler/tool/kernel_sdk.dart
+++ b/pkg/dev_compiler/tool/kernel_sdk.dart
@@ -31,7 +31,6 @@
   var target = new DevCompilerTarget();
   var options = new CompilerOptions()
     ..compileSdk = true
-    ..chaseDependencies = true
     ..packagesFileUri = path.toUri(path.absolute('../../.packages'))
     ..sdkRoot = path.toUri(inputPath)
     ..target = target;
diff --git a/pkg/front_end/lib/src/api_prototype/compiler_options.dart b/pkg/front_end/lib/src/api_prototype/compiler_options.dart
index 57e667a..e624930 100644
--- a/pkg/front_end/lib/src/api_prototype/compiler_options.dart
+++ b/pkg/front_end/lib/src/api_prototype/compiler_options.dart
@@ -131,19 +131,7 @@
   /// When this option is `true`, [sdkSummary] must be null.
   bool compileSdk = false;
 
-  /// Whether the compiler should read files that are discovered as
-  /// dependencies, or only access the files listed explicitly.
-  ///
-  /// This option has different defaults depending on the API.
-  ///
-  /// For modular APIs like `kernelForComponent` and `summaryFor` the default
-  /// behavior is `false`. These APIs want to ensure that builds are hermetic,
-  /// where all files that will be compiled are listed explicitly and all other
-  /// dependencies are covered by summary files.
-  ///
-  /// For whole-program APIs like `kernelForProgram`, this option is true by
-  /// default, so they can treat any dependency that is not described in a
-  /// summary as if it was explicitly listed as an input.
+  @deprecated
   bool chaseDependencies;
 
   /// Whether to interpret Dart sources in strong-mode.
diff --git a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
index f10c806..8d4e803 100644
--- a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
+++ b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
@@ -21,7 +21,7 @@
   factory IncrementalKernelGenerator(CompilerOptions options, Uri entryPoint,
       [Uri initializeFromDillUri]) {
     return new IncrementalCompiler(
-        new CompilerContext(new ProcessedOptions(options, false, [entryPoint])),
+        new CompilerContext(new ProcessedOptions(options, [entryPoint])),
         initializeFromDillUri);
   }
 
diff --git a/pkg/front_end/lib/src/api_prototype/kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/kernel_generator.dart
index 94a6d0f..98d8ded 100644
--- a/pkg/front_end/lib/src/api_prototype/kernel_generator.dart
+++ b/pkg/front_end/lib/src/api_prototype/kernel_generator.dart
@@ -43,7 +43,7 @@
 /// an error is reported.
 // TODO(sigmund): rename to kernelForScript?
 Future<Component> kernelForProgram(Uri source, CompilerOptions options) async {
-  var pOptions = new ProcessedOptions(options, false, [source]);
+  var pOptions = new ProcessedOptions(options, [source]);
   return await CompilerContext.runWithOptions(pOptions, (context) async {
     var component = (await generateKernelInternal())?.component;
     if (component == null) return null;
@@ -66,19 +66,10 @@
 /// dependencies, build unit dependencies must be acyclic.
 ///
 /// This API is intended for modular compilation. Dependencies to other build
-/// units are specified using [CompilerOptions.inputSummaries].
-///
-/// 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
-/// URIs, 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.
+/// units are specified using [CompilerOptions.inputSummaries].  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 the build unit sources, otherwise an error results.  (It
@@ -89,6 +80,6 @@
 /// summaries.
 Future<Component> kernelForComponent(
     List<Uri> sources, CompilerOptions options) async {
-  return (await generateKernel(new ProcessedOptions(options, true, sources)))
+  return (await generateKernel(new ProcessedOptions(options, sources)))
       ?.component;
 }
diff --git a/pkg/front_end/lib/src/api_prototype/summary_generator.dart b/pkg/front_end/lib/src/api_prototype/summary_generator.dart
index 4a2974c..e230731 100644
--- a/pkg/front_end/lib/src/api_prototype/summary_generator.dart
+++ b/pkg/front_end/lib/src/api_prototype/summary_generator.dart
@@ -16,18 +16,7 @@
 ///
 /// Intended to be a part of a modular compilation process.
 ///
-/// [sources] should be the complete set of source files for a build unit
-/// (including both library and part files).
-///
-/// 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
-/// URIs, 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
+/// 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.
 ///
@@ -42,7 +31,7 @@
 /// The return value is a list of bytes to write to the summary file.
 Future<List<int>> summaryFor(List<Uri> sources, CompilerOptions options,
     {bool truncate: false}) async {
-  return (await generateKernel(new ProcessedOptions(options, true, sources),
+  return (await generateKernel(new ProcessedOptions(options, sources),
           buildSummary: true, buildComponent: false, truncateSummary: truncate))
       ?.summary;
 }
diff --git a/pkg/front_end/lib/src/api_unstable/dart2js.dart b/pkg/front_end/lib/src/api_unstable/dart2js.dart
index 666f32d..943eacf 100644
--- a/pkg/front_end/lib/src/api_unstable/dart2js.dart
+++ b/pkg/front_end/lib/src/api_unstable/dart2js.dart
@@ -47,7 +47,7 @@
     ..librariesSpecificationUri = librariesSpecificationUri
     ..packagesFileUri = packagesFileUri;
 
-  ProcessedOptions processedOpts = new ProcessedOptions(options, false, []);
+  ProcessedOptions processedOpts = new ProcessedOptions(options, []);
 
   return new InitializedCompilerState(options, processedOpts);
 }
diff --git a/pkg/front_end/lib/src/api_unstable/ddc.dart b/pkg/front_end/lib/src/api_unstable/ddc.dart
index 0b9545f..2fbff4f 100644
--- a/pkg/front_end/lib/src/api_unstable/ddc.dart
+++ b/pkg/front_end/lib/src/api_unstable/ddc.dart
@@ -66,10 +66,9 @@
     ..inputSummaries = inputSummaries
     ..target = target
     ..fileSystem = fileSystem ?? StandardFileSystem.instance
-    ..chaseDependencies = true
     ..reportMessages = true;
 
-  ProcessedOptions processedOpts = new ProcessedOptions(options, true, []);
+  ProcessedOptions processedOpts = new ProcessedOptions(options, []);
 
   return new InitializedCompilerState(options, processedOpts);
 }
diff --git a/pkg/front_end/lib/src/api_unstable/summary_worker.dart b/pkg/front_end/lib/src/api_unstable/summary_worker.dart
index 2fdc8e5..0d4bf9f 100644
--- a/pkg/front_end/lib/src/api_unstable/summary_worker.dart
+++ b/pkg/front_end/lib/src/api_unstable/summary_worker.dart
@@ -38,10 +38,9 @@
     ..packagesFileUri = packagesFile
     ..inputSummaries = inputSummaries
     ..target = target
-    ..fileSystem = fileSystem
-    ..chaseDependencies = true;
+    ..fileSystem = fileSystem;
 
-  ProcessedOptions processedOpts = new ProcessedOptions(options, true, []);
+  ProcessedOptions processedOpts = new ProcessedOptions(options, []);
 
   return new InitializedCompilerState(options, processedOpts);
 }
diff --git a/pkg/front_end/lib/src/base/processed_options.dart b/pkg/front_end/lib/src/base/processed_options.dart
index 0c0dc02..c3072d9 100644
--- a/pkg/front_end/lib/src/base/processed_options.dart
+++ b/pkg/front_end/lib/src/base/processed_options.dart
@@ -172,15 +172,6 @@
 
   bool get throwOnNitsForDebugging => _raw.throwOnNitsForDebugging;
 
-  /// Like [CompilerOptions.chaseDependencies] but with the appropriate default
-  /// value filled in.
-  bool get chaseDependencies => _raw.chaseDependencies ?? !_modularApi;
-
-  /// Whether the compiler was invoked with a modular API.
-  ///
-  /// Used to determine the default behavior for [chaseDependencies].
-  final bool _modularApi;
-
   /// The entry-points provided to the compiler.
   final List<Uri> inputs;
 
@@ -189,7 +180,7 @@
 
   /// Initializes a [ProcessedOptions] object wrapping the given [rawOptions].
   ProcessedOptions(CompilerOptions rawOptions,
-      [this._modularApi = false, this.inputs = const [], this.output])
+      [this.inputs = const [], this.output])
       : this._raw = rawOptions,
         // TODO(sigmund, ahe): create ticker even earlier or pass in a stopwatch
         // collecting time since the start of the VM.
@@ -596,31 +587,8 @@
   }
 
   /// Create a [FileSystem] specific to the current options.
-  ///
-  /// If [chaseDependencies] is false, the resulting file system will be
-  /// hermetic.
   FileSystem _createFileSystem() {
-    var result = _raw.fileSystem;
-    if (!chaseDependencies) {
-      var allInputs = inputs.toSet();
-      allInputs.addAll(_raw.inputSummaries);
-      allInputs.addAll(_raw.linkedDependencies);
-
-      if (sdkSummary != null) allInputs.add(sdkSummary);
-
-      if (_raw.sdkRoot != null) {
-        // TODO(sigmund): refine this, we should be more explicit about when
-        // sdkRoot and libraries.json are allowed to be used.
-        allInputs.add(sdkRoot);
-        allInputs.add(sdkRoot.resolve("lib/libraries.json"));
-      }
-
-      /// Note: Searching the file-system for the package-config is not
-      /// supported in hermetic builds.
-      if (_raw.packagesFileUri != null) allInputs.add(_raw.packagesFileUri);
-      result = new HermeticFileSystem(allInputs, result);
-    }
-    return result;
+    return _raw.fileSystem;
   }
 
   String debugString() {
@@ -648,9 +616,6 @@
     writeList('Input Summaries', _raw.inputSummaries);
     writeList('Linked Dependencies', _raw.linkedDependencies);
 
-    sb.writeln('Modular: ${_modularApi}');
-    sb.writeln('Hermetic: ${!chaseDependencies} (provided: '
-        '${_raw.chaseDependencies == null ? null : !_raw.chaseDependencies})');
     sb.writeln('Packages uri: ${_raw.packagesFileUri}');
     sb.writeln('Packages: ${_packages}');
 
diff --git a/pkg/front_end/lib/src/fasta/get_dependencies.dart b/pkg/front_end/lib/src/fasta/get_dependencies.dart
index 37ee55e..4fa99af 100644
--- a/pkg/front_end/lib/src/fasta/get_dependencies.dart
+++ b/pkg/front_end/lib/src/fasta/get_dependencies.dart
@@ -37,7 +37,7 @@
     ..packagesFileUri = packages
     ..sdkSummary = platform
     ..sdkRoot = sdk;
-  var pOptions = new ProcessedOptions(options, false, <Uri>[script]);
+  var pOptions = new ProcessedOptions(options, <Uri>[script]);
   return await CompilerContext.runWithOptions(pOptions,
       (CompilerContext c) async {
     FileSystem fileSystem = c.options.fileSystem;
diff --git a/pkg/front_end/test/fasta/expression_test.dart b/pkg/front_end/test/fasta/expression_test.dart
index ee97b9d..ee56f71 100644
--- a/pkg/front_end/test/fasta/expression_test.dart
+++ b/pkg/front_end/test/fasta/expression_test.dart
@@ -370,7 +370,7 @@
     };
 
   final ProcessedOptions options =
-      new ProcessedOptions(optionBuilder, false, [entryPoint]);
+      new ProcessedOptions(optionBuilder, [entryPoint]);
 
   final ExternalStateSnapshot snapshot =
       new ExternalStateSnapshot(await options.loadSdkSummary(null));
diff --git a/pkg/front_end/test/fasta/incremental_hello_test.dart b/pkg/front_end/test/fasta/incremental_hello_test.dart
index f096675..40fb9d3 100644
--- a/pkg/front_end/test/fasta/incremental_hello_test.dart
+++ b/pkg/front_end/test/fasta/incremental_hello_test.dart
@@ -50,7 +50,7 @@
   final Uri helloDart = Uri.base.resolve("pkg/front_end/testcases/hello.dart");
 
   final ProcessedOptions options =
-      new ProcessedOptions(optionBuilder, false, [helloDart]);
+      new ProcessedOptions(optionBuilder, [helloDart]);
 
   IncrementalCompiler compiler =
       new IncrementalCompiler(new CompilerContext(options));
diff --git a/pkg/front_end/test/fasta/incremental_test.dart b/pkg/front_end/test/fasta/incremental_test.dart
index 3d2fb2a..401d89b 100644
--- a/pkg/front_end/test/fasta/incremental_test.dart
+++ b/pkg/front_end/test/fasta/incremental_test.dart
@@ -227,7 +227,7 @@
     };
 
   final ProcessedOptions options =
-      new ProcessedOptions(optionBuilder, false, [entryPoint]);
+      new ProcessedOptions(optionBuilder, [entryPoint]);
 
   final ExternalStateSnapshot snapshot =
       new ExternalStateSnapshot(await options.loadSdkSummary(null));
diff --git a/pkg/front_end/test/incremental_load_from_dill_test.dart b/pkg/front_end/test/incremental_load_from_dill_test.dart
index 5089798..156b814 100644
--- a/pkg/front_end/test/incremental_load_from_dill_test.dart
+++ b/pkg/front_end/test/incremental_load_from_dill_test.dart
@@ -444,9 +444,7 @@
 
   TestIncrementalCompiler(CompilerOptions options, Uri entryPoint,
       [Uri initializeFrom])
-      : super(
-            new CompilerContext(
-                new ProcessedOptions(options, false, [entryPoint])),
+      : super(new CompilerContext(new ProcessedOptions(options, [entryPoint])),
             initializeFrom);
 
   @override
diff --git a/pkg/front_end/test/kernel_generator_test.dart b/pkg/front_end/test/kernel_generator_test.dart
index 736cb2f..2ad6012 100644
--- a/pkg/front_end/test/kernel_generator_test.dart
+++ b/pkg/front_end/test/kernel_generator_test.dart
@@ -177,26 +177,9 @@
       expect(errors, isEmpty);
     });
 
-    test('compiler by default is hermetic', () async {
+    test('compiler is not hermetic by default', () async {
       var errors = [];
       var options = new CompilerOptions()..onError = (e) => errors.add(e);
-      var sources = {
-        'a.dart': 'import "b.dart"; a() => print("hi");',
-        'b.dart': ''
-      };
-      await compileUnit(['a.dart'], sources, options: options);
-      expect(errors.first.message, contains('Invalid access'));
-      errors.clear();
-
-      await compileUnit(['a.dart', 'b.dart'], sources, options: options);
-      expect(errors, isEmpty);
-    });
-
-    test('chaseDependencies=true removes hermetic restriction', () async {
-      var errors = [];
-      var options = new CompilerOptions()
-        ..chaseDependencies = true
-        ..onError = (e) => errors.add(e);
       await compileUnit([
         'a.dart'
       ], {
diff --git a/pkg/front_end/test/src/base/processed_options_test.dart b/pkg/front_end/test/src/base/processed_options_test.dart
index 2ce4498..8d29cbe 100644
--- a/pkg/front_end/test/src/base/processed_options_test.dart
+++ b/pkg/front_end/test/src/base/processed_options_test.dart
@@ -239,8 +239,8 @@
         .entityForUri(Uri.parse('org-dartlang-test:///base/location/.packages'))
         .writeAsStringSync('foo:baz\n');
     var raw = new CompilerOptions()..fileSystem = fileSystem;
-    var processed = new ProcessedOptions(raw, false,
-        [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
+    var processed = new ProcessedOptions(
+        raw, [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
     var uriTranslator = await processed.getUriTranslator();
     checkPackageExpansion('foo', 'base/location/baz', uriTranslator.packages);
   }
@@ -259,8 +259,8 @@
         .entityForUri(Uri.parse('org-dartlang-test:///base/.packages'))
         .writeAsStringSync('foo:baz\n');
     var raw = new CompilerOptions()..fileSystem = fileSystem;
-    var processed = new ProcessedOptions(raw, false,
-        [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
+    var processed = new ProcessedOptions(
+        raw, [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
     var uriTranslator = await processed.getUriTranslator();
     checkPackageExpansion('foo', 'base/baz', uriTranslator.packages);
   }
@@ -282,8 +282,8 @@
         .entityForUri(Uri.parse('org-dartlang-test:///base/.packages'))
         .writeAsStringSync('foo:baz\n');
     var raw = new CompilerOptions()..fileSystem = fileSystem;
-    var processed = new ProcessedOptions(raw, false,
-        [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
+    var processed = new ProcessedOptions(
+        raw, [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
     var uriTranslator = await processed.getUriTranslator();
     checkPackageExpansion(
         'foo', 'base/location/packages/foo', uriTranslator.packages);
@@ -299,8 +299,8 @@
     var raw = new CompilerOptions()
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var processed = new ProcessedOptions(raw, false,
-        [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
+    var processed = new ProcessedOptions(
+        raw, [Uri.parse('org-dartlang-test:///base/location/script.dart')]);
     var uriTranslator = await processed.getUriTranslator();
     expect(errors, isEmpty);
     expect(uriTranslator.packages.asMap(), isEmpty);
@@ -342,7 +342,7 @@
     var raw = new CompilerOptions()
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     var result = await options.validateOptions();
     expect(errors.single.message,
         startsWith(_stringPrefixOf(templateInputFileNotFound)));
@@ -368,7 +368,7 @@
       ..sdkRoot = sdkRoot
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     var result = await options.validateOptions();
     // Note: we check this first so test failures show the cause directly.
     expect(errors, isEmpty);
@@ -385,7 +385,7 @@
       ..sdkRoot = sdkRoot
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     expect(await options.validateOptions(), isFalse);
     expect(errors.first.message,
         startsWith(_stringPrefixOf(templateSdkRootNotFound)));
@@ -403,7 +403,7 @@
       ..sdkSummary = sdkSummary
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     var result = await options.validateOptions();
     expect(errors, isEmpty);
     expect(result, isTrue);
@@ -419,7 +419,7 @@
       ..sdkSummary = sdkSummary
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     expect(await options.validateOptions(), isFalse);
     expect(errors.single.message,
         startsWith(_stringPrefixOf(templateSdkSummaryNotFound)));
@@ -440,7 +440,7 @@
       ..sdkRoot = sdkRoot
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     var result = await options.validateOptions();
     expect(errors, isEmpty);
     expect(result, isTrue);
@@ -458,7 +458,7 @@
       ..sdkSummary = sdkSummary
       ..fileSystem = fileSystem
       ..onError = (e) => errors.add(e);
-    var options = new ProcessedOptions(raw, false, [Uri.parse('foo.dart')]);
+    var options = new ProcessedOptions(raw, [Uri.parse('foo.dart')]);
     expect(await options.validateOptions(), isFalse);
     expect(errors.single.message,
         startsWith(_stringPrefixOf(templateSdkSummaryNotFound)));
diff --git a/pkg/front_end/test/src/incremental/kernel_driver_test.dart b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
index 7568239..0b33811 100644
--- a/pkg/front_end/test/src/incremental/kernel_driver_test.dart
+++ b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
@@ -987,7 +987,6 @@
       ..fileSystem = fileSystem
       ..sdkRoot = Uri.parse('org-dartlang-test:///sdk/')
       ..compileSdk = true
-      ..chaseDependencies = true
       ..strongMode = true
       ..target = new NoneTarget(new TargetFlags(strongMode: true));
     var inputs = [Uri.parse('dart:core')];
diff --git a/pkg/front_end/test/summary_generator_test.dart b/pkg/front_end/test/summary_generator_test.dart
index 435e5ec..3588ea8 100644
--- a/pkg/front_end/test/summary_generator_test.dart
+++ b/pkg/front_end/test/summary_generator_test.dart
@@ -118,14 +118,10 @@
         component.libraries.single.importUri.path.endsWith('b.dart'), isTrue);
   });
 
-  test('summarization by default is hermetic', () async {
+  test('summarization by default is not hermetic', () async {
     var errors = [];
     var options = new CompilerOptions()..onError = (e) => errors.add(e);
     await summarize(['b.dart'], allSources, options: options);
-    expect(errors.first.toString(), contains('Invalid access'));
-    errors.clear();
-
-    await summarize(['a.dart', 'b.dart'], allSources, options: options);
     expect(errors, isEmpty);
   });
 
diff --git a/pkg/front_end/tool/_fasta/bulk_compile.dart b/pkg/front_end/tool/_fasta/bulk_compile.dart
index fd4e09b..770ad9d 100644
--- a/pkg/front_end/tool/_fasta/bulk_compile.dart
+++ b/pkg/front_end/tool/_fasta/bulk_compile.dart
@@ -43,7 +43,6 @@
               ..fileSystem = (new FileBackedMemoryFileSystem()
                 ..entities[mainUri.path] =
                     (new MemoryFileSystemEntity(mainUri)..bytes = <int>[])),
-            false,
             <Uri>[mainUri]);
 
   Future<Null> compile(String source) {
diff --git a/pkg/front_end/tool/_fasta/command_line.dart b/pkg/front_end/tool/_fasta/command_line.dart
index c504e29..c804b1e 100644
--- a/pkg/front_end/tool/_fasta/command_line.dart
+++ b/pkg/front_end/tool/_fasta/command_line.dart
@@ -300,7 +300,6 @@
           ..sdkSummary = options["--platform"]
           ..librariesSpecificationUri = resolveFile(arguments[1])
           ..setExitCodeOnProblem = true
-          ..chaseDependencies = true
           ..packagesFileUri = packages
           ..strongMode = strongMode
           ..target = target
@@ -311,7 +310,6 @@
           ..debugDump = dumpIr
           ..verbose = verbose
           ..verify = verify,
-        false,
         <Uri>[Uri.parse(arguments[0])],
         resolveFile(arguments[2]));
   } else if (arguments.isEmpty) {
@@ -352,7 +350,7 @@
       inputs.add(resolveFile(argument));
     }
   }
-  return new ProcessedOptions(compilerOptions, false, inputs, output);
+  return new ProcessedOptions(compilerOptions, inputs, output);
 }
 
 dynamic withGlobalOptions(
diff --git a/pkg/front_end/tool/_fasta/entry_points.dart b/pkg/front_end/tool/_fasta/entry_points.dart
index a8b6a15..026bccd 100644
--- a/pkg/front_end/tool/_fasta/entry_points.dart
+++ b/pkg/front_end/tool/_fasta/entry_points.dart
@@ -129,8 +129,7 @@
 
   Future<bool> batchCompile(CompilerOptions options, Uri input, Uri output) {
     return CompilerContext.runWithOptions(
-        new ProcessedOptions(options, false, <Uri>[input], output),
-        batchCompileImpl);
+        new ProcessedOptions(options, <Uri>[input], output), batchCompileImpl);
   }
 
   Future<bool> batchCompileImpl(CompilerContext c) async {
diff --git a/pkg/front_end/tool/fasta_perf.dart b/pkg/front_end/tool/fasta_perf.dart
index de09e9a..75a58f7 100644
--- a/pkg/front_end/tool/fasta_perf.dart
+++ b/pkg/front_end/tool/fasta_perf.dart
@@ -233,7 +233,6 @@
     ..onError = onErrorHandler(strongMode)
     ..strongMode = strongMode
     ..target = createTarget(isFlutter: false, strongMode: strongMode)
-    ..chaseDependencies = true
     ..packagesFileUri = Uri.base.resolve('.packages')
     ..compileSdk = compileSdk;
   if (!compileSdk) {
diff --git a/pkg/front_end/tool/incremental_perf.dart b/pkg/front_end/tool/incremental_perf.dart
index 02a4bb7..0f8f161 100644
--- a/pkg/front_end/tool/incremental_perf.dart
+++ b/pkg/front_end/tool/incremental_perf.dart
@@ -127,8 +127,7 @@
   var dir = Directory.systemTemp.createTempSync("ikg-cache");
   compilerOptions.byteStore = createByteStore(cache, dir.path);
 
-  final processedOptions =
-      new ProcessedOptions(compilerOptions, false, [entryUri]);
+  final processedOptions = new ProcessedOptions(compilerOptions, [entryUri]);
   final UriTranslator uriTranslator = await processedOptions.getUriTranslator();
 
   collector.start("Initial compilation");
diff --git a/pkg/vm/bin/kernel_service.dart b/pkg/vm/bin/kernel_service.dart
index ba848ff..8bd4fe4 100644
--- a/pkg/vm/bin/kernel_service.dart
+++ b/pkg/vm/bin/kernel_service.dart
@@ -178,7 +178,7 @@
   Future<Component> compileInternal(Uri script) async {
     return requireMain
         ? kernelForProgram(script, options)
-        : kernelForComponent([script], options..chaseDependencies = true);
+        : kernelForComponent([script], options);
   }
 }
 
diff --git a/pkg/vm/lib/kernel_front_end.dart b/pkg/vm/lib/kernel_front_end.dart
index 7e7762f..735812e 100644
--- a/pkg/vm/lib/kernel_front_end.dart
+++ b/pkg/vm/lib/kernel_front_end.dart
@@ -145,8 +145,7 @@
   final vmConstants =
       new vm_constants.VmConstantsBackend(environmentDefines, coreTypes);
 
-  final processedOptions =
-      new ProcessedOptions(compilerOptions, false, [source]);
+  final processedOptions = new ProcessedOptions(compilerOptions, [source]);
 
   // Run within the context, so we have uri source tokens...
   await CompilerContext.runWithOptions(processedOptions,
diff --git a/tools/patch_sdk.dart b/tools/patch_sdk.dart
index 53f4002..411442c 100644
--- a/tools/patch_sdk.dart
+++ b/tools/patch_sdk.dart
@@ -200,19 +200,11 @@
     ..compileSdk = true
     ..sdkRoot = patchedSdk
     ..packagesFileUri = packages
-    ..chaseDependencies = true
     ..target = target;
 
   var inputs = [Uri.parse('dart:core')];
-  var result = await generateKernel(
-      new ProcessedOptions(
-          options,
-          // TODO(sigmund): pass all sdk libraries needed here, and make this
-          // hermetic.
-          false,
-          inputs),
-      buildSummary: true,
-      buildComponent: true);
+  var result = await generateKernel(new ProcessedOptions(options, inputs),
+      buildSummary: true, buildComponent: true);
   await writeComponentToFile(result.component, output);
   return result.deps;
 }