| Index: pkg/dev_compiler/lib/src/compiler/compiler.dart
|
| diff --git a/pkg/dev_compiler/lib/src/compiler/compiler.dart b/pkg/dev_compiler/lib/src/compiler/compiler.dart
|
| index 62921bd3ae3beb6b956b74b0658464d68c3751f4..5a84af33c2194ffdf3b1adf86d543e82e5d8f9aa 100644
|
| --- a/pkg/dev_compiler/lib/src/compiler/compiler.dart
|
| +++ b/pkg/dev_compiler/lib/src/compiler/compiler.dart
|
| @@ -9,9 +9,15 @@ import 'package:analyzer/dart/element/element.dart' show LibraryElement;
|
| import 'package:analyzer/analyzer.dart'
|
| show AnalysisError, CompilationUnit, ErrorSeverity;
|
| import 'package:analyzer/file_system/file_system.dart' show ResourceProvider;
|
| +import 'package:analyzer/file_system/physical_file_system.dart'
|
| + show PhysicalResourceProvider;
|
| +import 'package:analyzer/src/context/builder.dart' show ContextBuilder;
|
| +import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
|
| import 'package:analyzer/src/generated/engine.dart'
|
| show AnalysisContext, AnalysisEngine;
|
| -import 'package:analyzer/src/generated/source.dart' show DartUriResolver;
|
| +import 'package:analyzer/src/generated/sdk.dart' show DartSdkManager;
|
| +import 'package:analyzer/src/generated/source.dart'
|
| + show ContentCache, DartUriResolver;
|
| import 'package:analyzer/src/generated/source_io.dart'
|
| show Source, SourceKind, UriResolver;
|
| import 'package:analyzer/src/summary/package_bundle_reader.dart'
|
| @@ -23,12 +29,7 @@ import 'package:func/func.dart' show Func1;
|
| import 'package:path/path.dart' as path;
|
| import 'package:source_maps/source_maps.dart';
|
|
|
| -import '../analyzer/context.dart'
|
| - show
|
| - AnalyzerOptions,
|
| - createAnalysisContext,
|
| - createSdkPathResolver,
|
| - createSourceFactory;
|
| +import '../analyzer/context.dart' show AnalyzerOptions, createSourceFactory;
|
| import '../js_ast/js_ast.dart' as JS;
|
| import 'code_generator.dart' show CodeGenerator;
|
| import 'error_helpers.dart' show errorSeverity, formatError, sortErrors;
|
| @@ -59,25 +60,28 @@ class ModuleCompiler {
|
| final SummaryDataStore summaryData;
|
| final ExtensionTypeSet _extensionTypes;
|
|
|
| - ModuleCompiler.withContext(AnalysisContext context, this.summaryData)
|
| + ModuleCompiler._(AnalysisContext context, this.summaryData)
|
| : context = context,
|
| - _extensionTypes = new ExtensionTypeSet(context) {
|
| - if (!context.analysisOptions.strongMode) {
|
| - throw new ArgumentError('AnalysisContext must be strong mode');
|
| - }
|
| - if (!context.sourceFactory.dartSdk.context.analysisOptions.strongMode) {
|
| - throw new ArgumentError('AnalysisContext must have strong mode SDK');
|
| - }
|
| - }
|
| + _extensionTypes = new ExtensionTypeSet(context);
|
|
|
| factory ModuleCompiler(AnalyzerOptions options,
|
| - {DartUriResolver sdkResolver,
|
| - ResourceProvider resourceProvider,
|
| + {ResourceProvider resourceProvider,
|
| + String analysisRoot,
|
| List<UriResolver> fileResolvers}) {
|
| + // TODO(danrubel): refactor with analyzer CLI into analyzer common code
|
| AnalysisEngine.instance.processRequiredPlugins();
|
|
|
| - sdkResolver ??=
|
| - createSdkPathResolver(options.dartSdkSummaryPath, options.dartSdkPath);
|
| + resourceProvider ??= PhysicalResourceProvider.INSTANCE;
|
| + analysisRoot ??= path.current;
|
| +
|
| + var contextBuilder = new ContextBuilder(resourceProvider,
|
| + new DartSdkManager(options.dartSdkPath, true), new ContentCache(),
|
| + options: options.contextBuilderOptions);
|
| +
|
| + var analysisOptions = contextBuilder.getAnalysisOptions(analysisRoot);
|
| + var sdk = contextBuilder.findSdk(null, analysisOptions);
|
| +
|
| + var sdkResolver = new DartUriResolver(sdk);
|
|
|
| // Read the summaries.
|
| var summaryData =
|
| @@ -89,7 +93,9 @@ class ModuleCompiler {
|
| summaryData: summaryData,
|
| resourceProvider: resourceProvider);
|
|
|
| - var context = createAnalysisContext();
|
| + var context =
|
| + AnalysisEngine.instance.createAnalysisContext() as AnalysisContextImpl;
|
| + context.analysisOptions = analysisOptions;
|
| context.sourceFactory = srcFactory;
|
| context.typeProvider = sdkResolver.dartSdk.context.typeProvider;
|
| context.resultProvider =
|
| @@ -101,7 +107,14 @@ class ModuleCompiler {
|
| context.declaredVariables.define('dart.library.html', 'true');
|
| context.declaredVariables.define('dart.library.io', 'false');
|
|
|
| - return new ModuleCompiler.withContext(context, summaryData);
|
| + if (!context.analysisOptions.strongMode) {
|
| + throw new ArgumentError('AnalysisContext must be strong mode');
|
| + }
|
| + if (!context.sourceFactory.dartSdk.context.analysisOptions.strongMode) {
|
| + throw new ArgumentError('AnalysisContext must have strong mode SDK');
|
| + }
|
| +
|
| + return new ModuleCompiler._(context, summaryData);
|
| }
|
|
|
| bool _isFatalError(AnalysisError e, CompilerOptions options) {
|
|
|