OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer_cli.src.build_mode; | 5 library analyzer_cli.src.build_mode; |
6 | 6 |
7 import 'dart:core' hide Resource; | 7 import 'dart:core' hide Resource; |
8 import 'dart:io' as io; | 8 import 'dart:io' as io; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit; | 10 import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit; |
11 import 'package:analyzer/dart/element/element.dart'; | 11 import 'package:analyzer/dart/element/element.dart'; |
12 import 'package:analyzer/file_system/file_system.dart'; | 12 import 'package:analyzer/file_system/file_system.dart'; |
13 import 'package:analyzer/file_system/physical_file_system.dart'; | 13 import 'package:analyzer/file_system/physical_file_system.dart'; |
14 import 'package:analyzer/src/generated/engine.dart'; | 14 import 'package:analyzer/src/generated/engine.dart'; |
15 import 'package:analyzer/src/generated/error.dart'; | 15 import 'package:analyzer/src/generated/error.dart'; |
16 import 'package:analyzer/src/generated/java_io.dart'; | 16 import 'package:analyzer/src/generated/java_io.dart'; |
| 17 import 'package:analyzer/src/generated/sdk.dart'; |
17 import 'package:analyzer/src/generated/sdk_io.dart'; | 18 import 'package:analyzer/src/generated/sdk_io.dart'; |
18 import 'package:analyzer/src/generated/source.dart'; | 19 import 'package:analyzer/src/generated/source.dart'; |
19 import 'package:analyzer/src/generated/source_io.dart'; | 20 import 'package:analyzer/src/generated/source_io.dart'; |
20 import 'package:analyzer/src/summary/format.dart'; | 21 import 'package:analyzer/src/summary/format.dart'; |
21 import 'package:analyzer/src/summary/idl.dart'; | 22 import 'package:analyzer/src/summary/idl.dart'; |
22 import 'package:analyzer/src/summary/link.dart'; | 23 import 'package:analyzer/src/summary/link.dart'; |
23 import 'package:analyzer/src/summary/package_bundle_reader.dart'; | 24 import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
24 import 'package:analyzer/src/summary/summarize_ast.dart'; | 25 import 'package:analyzer/src/summary/summarize_ast.dart'; |
25 import 'package:analyzer/src/summary/summarize_elements.dart'; | 26 import 'package:analyzer/src/summary/summarize_elements.dart'; |
| 27 import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk; |
26 import 'package:analyzer/task/dart.dart'; | 28 import 'package:analyzer/task/dart.dart'; |
27 import 'package:analyzer_cli/src/analyzer_impl.dart'; | 29 import 'package:analyzer_cli/src/analyzer_impl.dart'; |
28 import 'package:analyzer_cli/src/driver.dart'; | 30 import 'package:analyzer_cli/src/driver.dart'; |
29 import 'package:analyzer_cli/src/error_formatter.dart'; | 31 import 'package:analyzer_cli/src/error_formatter.dart'; |
30 import 'package:analyzer_cli/src/options.dart'; | 32 import 'package:analyzer_cli/src/options.dart'; |
31 import 'package:bazel_worker/bazel_worker.dart'; | 33 import 'package:bazel_worker/bazel_worker.dart'; |
32 | 34 |
33 /** | 35 /** |
34 * Persistent Bazel worker. | 36 * Persistent Bazel worker. |
35 */ | 37 */ |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 if (processedSeverity != null) { | 232 if (processedSeverity != null) { |
231 maxSeverity = maxSeverity.max(processedSeverity.severity); | 233 maxSeverity = maxSeverity.max(processedSeverity.severity); |
232 } | 234 } |
233 } | 235 } |
234 } | 236 } |
235 } | 237 } |
236 return maxSeverity; | 238 return maxSeverity; |
237 } | 239 } |
238 | 240 |
239 void _createContext() { | 241 void _createContext() { |
240 DirectoryBasedDartSdk sdk = | |
241 new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); | |
242 sdk.analysisOptions = | |
243 Driver.createAnalysisOptionsForCommandLineOptions(options); | |
244 sdk.useSummary = !options.buildSummaryOnlyAst; | |
245 | |
246 // Read the summaries. | 242 // Read the summaries. |
247 summaryDataStore = new SummaryDataStore(options.buildSummaryInputs); | 243 summaryDataStore = new SummaryDataStore(options.buildSummaryInputs); |
248 | 244 |
| 245 DartSdk sdk; |
| 246 PackageBundle sdkBundle; |
| 247 if (options.dartSdkSummaryPath != null) { |
| 248 SummaryBasedDartSdk summarySdk = |
| 249 new SummaryBasedDartSdk(options.dartSdkSummaryPath); |
| 250 sdk = summarySdk; |
| 251 sdkBundle = summarySdk.bundle; |
| 252 } else { |
| 253 DirectoryBasedDartSdk directorySdk = |
| 254 new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); |
| 255 directorySdk.analysisOptions = |
| 256 Driver.createAnalysisOptionsForCommandLineOptions(options); |
| 257 directorySdk.useSummary = !options.buildSummaryOnlyAst; |
| 258 sdk = directorySdk; |
| 259 sdkBundle = directorySdk.getSummarySdkBundle(); |
| 260 } |
| 261 |
249 // In AST mode include SDK bundle to avoid parsing SDK sources. | 262 // In AST mode include SDK bundle to avoid parsing SDK sources. |
250 if (options.buildSummaryOnlyAst) { | 263 if (options.buildSummaryOnlyAst) { |
251 summaryDataStore.addBundle(null, sdk.getSummarySdkBundle()); | 264 summaryDataStore.addBundle(null, sdkBundle); |
252 } | 265 } |
253 | 266 |
254 // Create the context. | 267 // Create the context. |
255 context = AnalysisEngine.instance.createAnalysisContext(); | 268 context = AnalysisEngine.instance.createAnalysisContext(); |
256 context.sourceFactory = new SourceFactory(<UriResolver>[ | 269 context.sourceFactory = new SourceFactory(<UriResolver>[ |
257 new DartUriResolver(sdk), | 270 new DartUriResolver(sdk), |
258 new InSummaryPackageUriResolver(summaryDataStore), | 271 new InSummaryPackageUriResolver(summaryDataStore), |
259 new ExplicitSourceResolver(uriToFileMap) | 272 new ExplicitSourceResolver(uriToFileMap) |
260 ]); | 273 ]); |
261 | 274 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 'Illegal input file (must be "\$uri|\$path"): $sourceFile'); | 370 'Illegal input file (must be "\$uri|\$path"): $sourceFile'); |
358 return null; | 371 return null; |
359 } | 372 } |
360 Uri uri = Uri.parse(sourceFile.substring(0, pipeIndex)); | 373 Uri uri = Uri.parse(sourceFile.substring(0, pipeIndex)); |
361 String path = sourceFile.substring(pipeIndex + 1); | 374 String path = sourceFile.substring(pipeIndex + 1); |
362 uriToFileMap[uri] = new JavaFile(path); | 375 uriToFileMap[uri] = new JavaFile(path); |
363 } | 376 } |
364 return uriToFileMap; | 377 return uriToFileMap; |
365 } | 378 } |
366 } | 379 } |
OLD | NEW |