Skip to content

Commit 1f10422

Browse files
committed
Update uses of deprecated API in ddc
[email protected], [email protected] Review URL: https://codereview.chromium.org/2338883002 .
1 parent 4fce5e9 commit 1f10422

File tree

2 files changed

+53
-15
lines changed

2 files changed

+53
-15
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4+
5+
library analyzer.source.custom_resolver;
6+
7+
import 'package:analyzer/file_system/file_system.dart';
8+
import 'package:analyzer/src/generated/source.dart';
9+
10+
class CustomUriResolver extends UriResolver {
11+
final ResourceProvider resourceProvider;
12+
final Map<String, String> _urlMappings;
13+
14+
CustomUriResolver(this.resourceProvider, this._urlMappings);
15+
16+
@override
17+
Source resolveAbsolute(Uri uri, [Uri actualUri]) {
18+
String mapping = _urlMappings[uri.toString()];
19+
if (mapping == null) {
20+
return null;
21+
}
22+
Uri fileUri = new Uri.file(mapping);
23+
if (!fileUri.isAbsolute) {
24+
return null;
25+
}
26+
return resourceProvider
27+
.getFile(resourceProvider.pathContext.fromUri(fileUri))
28+
.createSource(actualUri ?? uri);
29+
}
30+
}

pkg/dev_compiler/lib/src/analyzer/context.dart

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2-
32
// for details. All rights reserved. Use of this source code is governed by a
43
// BSD-style license that can be found in the LICENSE file.
54

@@ -8,19 +7,15 @@ import 'package:analyzer/file_system/file_system.dart'
87
show ResourceProvider, ResourceUriResolver;
98
import 'package:analyzer/file_system/physical_file_system.dart'
109
show PhysicalResourceProvider;
10+
import 'package:analyzer/source/custom_resolver.dart';
11+
import 'package:analyzer/source/package_map_resolver.dart';
12+
import 'package:analyzer/src/context/builder.dart';
1113
import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
1214
import 'package:analyzer/src/dart/sdk/sdk.dart' show FolderBasedDartSdk;
1315
import 'package:analyzer/src/generated/engine.dart'
1416
show AnalysisContext, AnalysisEngine, AnalysisOptionsImpl;
15-
import 'package:analyzer/src/generated/java_io.dart' show JavaFile;
16-
import 'package:analyzer/src/generated/source.dart';
17-
import 'package:analyzer/src/generated/source_io.dart'
18-
show
19-
CustomUriResolver,
20-
DartUriResolver,
21-
PackageUriResolver,
22-
SourceFactory,
23-
UriResolver;
17+
import 'package:analyzer/src/generated/source.dart'
18+
show DartUriResolver, SourceFactory, UriResolver;
2419
import 'package:analyzer/src/summary/package_bundle_reader.dart'
2520
show InSummaryUriResolver, InputPackagesResultProvider, SummaryDataStore;
2621
import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk;
@@ -157,26 +152,39 @@ SourceFactory _createSourceFactory(AnalyzerOptions options,
157152
List<UriResolver> fileResolvers,
158153
SummaryDataStore summaryData,
159154
ResourceProvider resourceProvider}) {
155+
resourceProvider ??= PhysicalResourceProvider.INSTANCE;
160156
var resolvers = <UriResolver>[];
161157
if (options.customUrlMappings.isNotEmpty) {
162-
resolvers.add(new CustomUriResolver(options.customUrlMappings));
158+
resolvers.add(
159+
new CustomUriResolver(resourceProvider, options.customUrlMappings));
163160
}
164161
resolvers.add(sdkResolver);
165162
if (summaryData != null) {
166163
resolvers.add(new InSummaryUriResolver(resourceProvider, summaryData));
167164
}
168165

169-
if (fileResolvers == null) fileResolvers = createFileResolvers(options);
166+
if (fileResolvers == null)
167+
fileResolvers =
168+
createFileResolvers(options, resourceProvider: resourceProvider);
170169
resolvers.addAll(fileResolvers);
171170
return new SourceFactory(resolvers, null, resourceProvider);
172171
}
173172

174-
List<UriResolver> createFileResolvers(AnalyzerOptions options) {
173+
List<UriResolver> createFileResolvers(AnalyzerOptions options,
174+
{ResourceProvider resourceProvider}) {
175+
resourceProvider ??= PhysicalResourceProvider.INSTANCE;
176+
UriResolver packageResolver() {
177+
ContextBuilder builder = new ContextBuilder(resourceProvider, null, null);
178+
builder.defaultPackagesDirectoryPath = options.packageRoot;
179+
return new PackageMapUriResolver(resourceProvider,
180+
builder.convertPackagesToMap(builder.createPackageMap('')));
181+
}
182+
175183
return [
176-
new ResourceUriResolver(PhysicalResourceProvider.INSTANCE),
184+
new ResourceUriResolver(resourceProvider),
177185
options.useMultiPackage
178186
? new MultiPackageResolver(options.packagePaths)
179-
: new PackageUriResolver([new JavaFile(options.packageRoot)])
187+
: packageResolver()
180188
];
181189
}
182190

0 commit comments

Comments
 (0)