Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1907)

Unified Diff: pkg/dev_compiler/lib/src/analyzer/context.dart

Issue 2598593003: support --options flag and other analysis options flags in DDC (Closed)
Patch Set: merge Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/command_line/arguments.dart ('k') | pkg/dev_compiler/lib/src/compiler/command.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/lib/src/analyzer/context.dart
diff --git a/pkg/dev_compiler/lib/src/analyzer/context.dart b/pkg/dev_compiler/lib/src/analyzer/context.dart
index bdf5d1646cd9562fa760c9a96adffbebba41318d..188f9787624ef985c855d269d392cc837e6adad8 100644
--- a/pkg/dev_compiler/lib/src/analyzer/context.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/context.dart
@@ -11,15 +11,11 @@ import 'package:analyzer/file_system/physical_file_system.dart'
import 'package:analyzer/source/custom_resolver.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/context/builder.dart';
-import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
-import 'package:analyzer/src/dart/sdk/sdk.dart' show FolderBasedDartSdk;
-import 'package:analyzer/src/generated/engine.dart'
- show AnalysisEngine, AnalysisOptionsImpl;
+import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
import 'package:analyzer/src/generated/source.dart'
show DartUriResolver, SourceFactory, UriResolver;
import 'package:analyzer/src/summary/package_bundle_reader.dart'
show InSummaryUriResolver, SummaryDataStore;
-import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk;
import 'package:cli_util/cli_util.dart' show getSdkDir;
import 'package:path/path.dart' as path;
@@ -36,8 +32,7 @@ class AnalyzerOptions {
/// List of summary file paths.
final List<String> summaryPaths;
- /// Path to the dart-sdk. Null if `useMockSdk` is true or if the path couldn't
- /// be determined
+ /// Path to the dart-sdk, or `null` if the path couldn't be determined.
final String dartSdkPath;
/// Path to the dart-sdk summary. If this is set, it will be used in favor
@@ -50,10 +45,11 @@ class AnalyzerOptions {
AnalyzerOptions._(
{this.contextBuilderOptions,
- this.summaryPaths: const [],
+ List<String> summaryPaths,
String dartSdkPath,
this.customUrlMappings: const {}})
- : dartSdkPath = dartSdkPath ?? getSdkDir().path {
+ : dartSdkPath = dartSdkPath ?? getSdkDir().path,
+ summaryPaths = summaryPaths ?? const [] {
contextBuilderOptions.declaredVariables ??= const {};
}
@@ -61,8 +57,9 @@ class AnalyzerOptions {
{String dartSdkPath,
String dartSdkSummaryPath,
List<String> summaryPaths}) {
- var contextBuilderOptions = new ContextBuilderOptions();
- contextBuilderOptions.dartSdkSummaryPath = dartSdkSummaryPath;
+ var contextBuilderOptions = new ContextBuilderOptions()
+ ..defaultOptions = (new AnalysisOptionsImpl()..strongMode = true)
+ ..dartSdkSummaryPath = dartSdkSummaryPath;
return new AnalyzerOptions._(
contextBuilderOptions: contextBuilderOptions,
@@ -72,21 +69,22 @@ class AnalyzerOptions {
factory AnalyzerOptions.fromArguments(ArgResults args,
{String dartSdkSummaryPath, List<String> summaryPaths}) {
- var contextBuilderOptions = createContextBuilderOptions(args);
-
- if (dartSdkSummaryPath != null)
- contextBuilderOptions.dartSdkSummaryPath = dartSdkSummaryPath;
- contextBuilderOptions.dartSdkSummaryPath ??=
- path.join(args['dart-sdk'], 'lib', '_internal', 'ddc_sdk.sum');
- if (contextBuilderOptions.dartSdkSummaryPath == 'build') {
- // For building the SDK, we explicitly set the path to none.
- contextBuilderOptions.dartSdkSummaryPath = null;
- }
+ var contextBuilderOptions = createContextBuilderOptions(args,
+ strongMode: true, trackCacheDependencies: false);
+
+ var dartSdkPath = args['dart-sdk'] ?? getSdkDir().path;
+
+ dartSdkSummaryPath ??= contextBuilderOptions.dartSdkSummaryPath;
+ dartSdkSummaryPath ??=
+ path.join(dartSdkPath, 'lib', '_internal', 'ddc_sdk.sum');
+ // For building the SDK, we explicitly set the path to none.
+ if (dartSdkSummaryPath == 'build') dartSdkSummaryPath = null;
+ contextBuilderOptions.dartSdkSummaryPath = dartSdkSummaryPath;
return new AnalyzerOptions._(
contextBuilderOptions: contextBuilderOptions,
summaryPaths: summaryPaths ?? args['summary'] as List<String>,
- dartSdkPath: args['dart-sdk'],
+ dartSdkPath: dartSdkPath,
customUrlMappings: _parseUrlMappings(args['url-mapping']));
}
@@ -113,20 +111,8 @@ class AnalyzerOptions {
}
}
-/// Creates an analysis context that contains our restricted typing rules.
-AnalysisContextImpl createAnalysisContext() {
- var res = AnalysisEngine.instance.createAnalysisContext();
- res.analysisOptions = new AnalysisOptionsImpl()
- ..strongMode = true
- ..trackCacheDependencies = false;
- return res;
-}
-
/// Creates a SourceFactory configured by the [options].
///
-/// Use [options.useMockSdk] to specify the SDK mode, or use [sdkResolver]
-/// to entirely override the DartUriResolver.
-///
/// If supplied, [fileResolvers] will override the default `file:` and
/// `package:` URI resolvers.
SourceFactory createSourceFactory(AnalyzerOptions options,
@@ -168,20 +154,3 @@ List<UriResolver> createFileResolvers(AnalyzerOptions options,
return [new ResourceUriResolver(resourceProvider), packageResolver()];
}
-
-FolderBasedDartSdk _createFolderBasedDartSdk(String sdkPath) {
- var resourceProvider = PhysicalResourceProvider.INSTANCE;
- var sdk = new FolderBasedDartSdk(resourceProvider,
- resourceProvider.getFolder(sdkPath), /*useDart2jsPaths:*/ true);
- sdk.useSummary = true;
- sdk.analysisOptions = new AnalysisOptionsImpl()..strongMode = true;
- return sdk;
-}
-
-/// Creates a [DartUriResolver] that uses the SDK at the given [sdkPath].
-DartUriResolver createSdkPathResolver(String sdkSummaryPath, String sdkPath) {
- var sdk = (sdkSummaryPath != null)
- ? new SummaryBasedDartSdk(sdkSummaryPath, true)
- : _createFolderBasedDartSdk(sdkPath);
- return new DartUriResolver(sdk);
-}
« no previous file with comments | « pkg/analyzer/lib/src/command_line/arguments.dart ('k') | pkg/dev_compiler/lib/src/compiler/command.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698