Index: pkg/analyzer_cli/lib/src/driver.dart |
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart |
index 16ec22d2fa3fef2e01cbda424fa23f7a06ce69eb..35caf046d2348363a35ba16652b8ea31bd50460b 100644 |
--- a/pkg/analyzer_cli/lib/src/driver.dart |
+++ b/pkg/analyzer_cli/lib/src/driver.dart |
@@ -491,13 +491,6 @@ class Driver implements CommandLineStarter { |
// Create a context. |
_context = AnalysisEngine.instance.createAnalysisContext(); |
- AnalyzeFunctionBodiesPredicate dietParsingPolicy = |
- _chooseDietParsingPolicy(options); |
- setAnalysisContextOptions(resourceProvider, _context, options, |
- (AnalysisOptionsImpl contextOptions) { |
- contextOptions.analyzeFunctionBodiesPredicate = dietParsingPolicy; |
- }); |
- |
// Find package info. |
_PackageInfo packageInfo = _findPackages(options); |
@@ -528,6 +521,14 @@ class Driver implements CommandLineStarter { |
SourceFactory sourceFactory = _chooseUriResolutionPolicy( |
options, embedderMap, packageInfo, summaryDataStore); |
+ AnalyzeFunctionBodiesPredicate dietParsingPolicy = |
+ _chooseDietParsingPolicy(options); |
+ setAnalysisContextOptions( |
+ resourceProvider, sourceFactory, _context, options, |
+ (AnalysisOptionsImpl contextOptions) { |
+ contextOptions.analyzeFunctionBodiesPredicate = dietParsingPolicy; |
+ }); |
+ |
_context.sourceFactory = sourceFactory; |
_context.resultProvider = |
new InputPackagesResultProvider(_context, summaryDataStore); |
@@ -680,6 +681,7 @@ class Driver implements CommandLineStarter { |
static void setAnalysisContextOptions( |
file_system.ResourceProvider resourceProvider, |
+ SourceFactory sourceFactory, |
AnalysisContext context, |
CommandLineOptions options, |
void configureContextOptions(AnalysisOptionsImpl contextOptions)) { |
@@ -704,7 +706,7 @@ class Driver implements CommandLineStarter { |
context.analysisOptions = contextOptions; |
// Process analysis options file (and notify all interested parties). |
- _processAnalysisOptions(resourceProvider, context, options); |
+ _processAnalysisOptions(resourceProvider, sourceFactory, context, options); |
} |
/// Perform a deep comparison of two string lists. |
@@ -761,14 +763,16 @@ class Driver implements CommandLineStarter { |
static void _processAnalysisOptions( |
file_system.ResourceProvider resourceProvider, |
+ SourceFactory sourceFactory, |
AnalysisContext context, |
CommandLineOptions options) { |
file_system.File file = _getOptionsFile(resourceProvider, options); |
List<OptionsProcessor> optionsProcessors = |
AnalysisEngine.instance.optionsPlugin.optionsProcessors; |
+ |
try { |
AnalysisOptionsProvider analysisOptionsProvider = |
- new AnalysisOptionsProvider(); |
+ new AnalysisOptionsProvider(sourceFactory); |
Map<String, YamlNode> optionMap = |
analysisOptionsProvider.getOptionsFromFile(file); |
optionsProcessors.forEach( |