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

Side by Side Diff: lib/src/analysis_context.dart

Issue 1245013002: some fixes for --strong warnings (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | lib/src/checker/checker.dart » ('j') | lib/src/utils.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 dev_compiler.src.analysis_context; 5 library dev_compiler.src.analysis_context;
6 6
7 import 'package:analyzer/src/generated/engine.dart'; 7 import 'package:analyzer/src/generated/engine.dart';
8 import 'package:analyzer/src/generated/java_io.dart' show JavaFile; 8 import 'package:analyzer/src/generated/java_io.dart' show JavaFile;
9 import 'package:analyzer/src/generated/sdk_io.dart' show DirectoryBasedDartSdk; 9 import 'package:analyzer/src/generated/sdk_io.dart' show DirectoryBasedDartSdk;
10 import 'package:analyzer/src/generated/source.dart' show DartUriResolver; 10 import 'package:analyzer/src/generated/source.dart' show DartUriResolver;
11 import 'package:analyzer/src/generated/source_io.dart'; 11 import 'package:analyzer/src/generated/source_io.dart';
12 12
13 import 'package:dev_compiler/strong_mode.dart' show StrongModeOptions; 13 import 'package:dev_compiler/strong_mode.dart' show StrongModeOptions;
14 14
15 import 'checker/resolver.dart'; 15 import 'checker/resolver.dart';
16 import 'dart_sdk.dart'; 16 import 'dart_sdk.dart';
17 import 'multi_package_resolver.dart'; 17 import 'multi_package_resolver.dart';
18 import 'options.dart'; 18 import 'options.dart';
19 19
20 /// Creates an [AnalysisContext] with dev_compiler type rules and inference, 20 /// Creates an [AnalysisContext] with dev_compiler type rules and inference,
21 /// using [createSourceFactory] to set up its [SourceFactory]. 21 /// using [createSourceFactory] to set up its [SourceFactory].
22 AnalysisContext createAnalysisContextWithSources( 22 AnalysisContext createAnalysisContextWithSources(
23 StrongModeOptions strongOptions, SourceResolverOptions srcOptions, 23 StrongModeOptions strongOptions, SourceResolverOptions srcOptions,
24 {DartUriResolver sdkResolver, List fileResolvers}) { 24 {DartUriResolver sdkResolver, List<UriResolver> fileResolvers}) {
25 var srcFactory = createSourceFactory(srcOptions, 25 var srcFactory = createSourceFactory(srcOptions,
26 sdkResolver: sdkResolver, fileResolvers: fileResolvers); 26 sdkResolver: sdkResolver, fileResolvers: fileResolvers);
27 return createAnalysisContext(strongOptions)..sourceFactory = srcFactory; 27 return createAnalysisContext(strongOptions)..sourceFactory = srcFactory;
28 } 28 }
29 29
30 /// Creates an analysis context that contains our restricted typing rules. 30 /// Creates an analysis context that contains our restricted typing rules.
31 AnalysisContext createAnalysisContext(StrongModeOptions options) { 31 AnalysisContext createAnalysisContext(StrongModeOptions options) {
32 AnalysisContextImpl res = AnalysisEngine.instance.createAnalysisContext(); 32 AnalysisContextImpl res = AnalysisEngine.instance.createAnalysisContext();
33 enableDevCompilerInference(res, options); 33 enableDevCompilerInference(res, options);
34 return res; 34 return res;
(...skipping 13 matching lines...) Expand all
48 /// to entirely override the DartUriResolver. 48 /// to entirely override the DartUriResolver.
49 /// 49 ///
50 /// If supplied, [fileResolvers] will override the default `file:` and 50 /// If supplied, [fileResolvers] will override the default `file:` and
51 /// `package:` URI resolvers. 51 /// `package:` URI resolvers.
52 SourceFactory createSourceFactory(SourceResolverOptions options, 52 SourceFactory createSourceFactory(SourceResolverOptions options,
53 {DartUriResolver sdkResolver, List<UriResolver> fileResolvers}) { 53 {DartUriResolver sdkResolver, List<UriResolver> fileResolvers}) {
54 var sdkResolver = options.useMockSdk 54 var sdkResolver = options.useMockSdk
55 ? createMockSdkResolver(mockSdkSources) 55 ? createMockSdkResolver(mockSdkSources)
56 : createSdkPathResolver(options.dartSdkPath); 56 : createSdkPathResolver(options.dartSdkPath);
57 57
58 var resolvers = []; 58 var resolvers = <UriResolver>[];
59 if (options.customUrlMappings.isNotEmpty) { 59 if (options.customUrlMappings.isNotEmpty) {
60 resolvers.add(new CustomUriResolver(options.customUrlMappings)); 60 resolvers.add(new CustomUriResolver(options.customUrlMappings));
61 } 61 }
62 resolvers.add(sdkResolver); 62 resolvers.add(sdkResolver);
63 if (fileResolvers == null) fileResolvers = createFileResolvers(options); 63 if (fileResolvers == null) fileResolvers = createFileResolvers(options);
64 resolvers.addAll(fileResolvers); 64 resolvers.addAll(fileResolvers);
65 return new SourceFactory(resolvers); 65 return new SourceFactory(resolvers);
66 } 66 }
67 67
68 List<UriResolver> createFileResolvers(SourceResolverOptions options) { 68 List<UriResolver> createFileResolvers(SourceResolverOptions options) {
69 return [ 69 return [
70 new FileUriResolver(), 70 new FileUriResolver(),
71 options.useMultiPackage 71 options.useMultiPackage
72 ? new MultiPackageResolver(options.packagePaths) 72 ? new MultiPackageResolver(options.packagePaths)
73 : new PackageUriResolver([new JavaFile(options.packageRoot)]) 73 : new PackageUriResolver([new JavaFile(options.packageRoot)])
74 ]; 74 ];
75 } 75 }
76 76
77 /// Creates a [DartUriResolver] that uses a mock 'dart:' library contents. 77 /// Creates a [DartUriResolver] that uses a mock 'dart:' library contents.
78 DartUriResolver createMockSdkResolver(Map<String, String> mockSources) => 78 DartUriResolver createMockSdkResolver(Map<String, String> mockSources) =>
79 new MockDartSdk(mockSources, reportMissing: true).resolver; 79 new MockDartSdk(mockSources, reportMissing: true).resolver;
80 80
81 /// Creates a [DartUriResolver] that uses the SDK at the given [sdkPath]. 81 /// Creates a [DartUriResolver] that uses the SDK at the given [sdkPath].
82 DartUriResolver createSdkPathResolver(String sdkPath) => new DartUriResolver( 82 DartUriResolver createSdkPathResolver(String sdkPath) => new DartUriResolver(
83 new DirectoryBasedDartSdk( 83 new DirectoryBasedDartSdk(
84 new JavaFile(sdkPath), /*useDart2jsPaths:*/ true)); 84 new JavaFile(sdkPath), /*useDart2jsPaths:*/ true));
OLDNEW
« no previous file with comments | « no previous file | lib/src/checker/checker.dart » ('j') | lib/src/utils.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698