Skip to content

Commit d86dc7e

Browse files
committed
Use buildSdkSummary from the analyzer
Fixes #2745 This remains behind a `src/` import, but it is the new approach to building the summary.
1 parent 0ae4a85 commit d86dc7e

File tree

3 files changed

+12
-47
lines changed

3 files changed

+12
-47
lines changed

build_resolvers/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
## 1.3.10-dev
1+
## 1.3.10
2+
3+
- Migrate to new analyzer API for creating an SDK summary after the old approach
4+
was broken.
25

36
## 1.3.9
47

build_resolvers/lib/src/resolver.dart

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,12 @@ Future<String> _defaultSdkSummaryGenerator() async {
289289
var watch = Stopwatch()..start();
290290
_logger.info('Generating SDK summary...');
291291
await summaryFile.create(recursive: true);
292-
await summaryFile.writeAsBytes(_buildSdkSummary());
292+
final embedderYamlPath =
293+
isFlutter ? p.join(_dartUiPath, '_embedder.yaml') : null;
294+
await summaryFile.writeAsBytes(buildSdkSummary(
295+
sdkPath: _runningDartSdkPath,
296+
resourceProvider: PhysicalResourceProvider.INSTANCE,
297+
embedderYamlPath: embedderYamlPath));
293298

294299
await _createDepsFile(depsFile, currentDeps);
295300
watch.stop();
@@ -322,49 +327,6 @@ Future<void> _createDepsFile(
322327
await depsFile.writeAsString(jsonEncode(currentDeps));
323328
}
324329

325-
List<int> _buildSdkSummary() {
326-
var resourceProvider = PhysicalResourceProvider.INSTANCE;
327-
var dartSdkFolder = resourceProvider.getFolder(_runningDartSdkPath);
328-
var sdk = FolderBasedDartSdk(resourceProvider, dartSdkFolder)
329-
..useSummary = false
330-
..analysisOptions = AnalysisOptionsImpl();
331-
332-
if (isFlutter) {
333-
_addFlutterLibraries(sdk, resourceProvider);
334-
}
335-
336-
var sdkSources = {
337-
for (var library in sdk.sdkLibraries) sdk.mapDartUri(library.shortName),
338-
};
339-
340-
// ignore: deprecated_member_use
341-
return SummaryBuilder(sdkSources, sdk.context).build(
342-
// TODO: remove after https://github.com/dart-lang/sdk/issues/41820
343-
// ignore: deprecated_member_use
344-
featureSet: FeatureSet.fromEnableFlags(['non-nullable']));
345-
}
346-
347-
/// Loads the flutter engine _embedder.yaml file and adds any new libraries to
348-
/// [sdk].
349-
void _addFlutterLibraries(
350-
AbstractDartSdk sdk, ResourceProvider resourceProvider) {
351-
var embedderYamlFile =
352-
resourceProvider.getFile(p.join(_dartUiPath, '_embedder.yaml'));
353-
if (!embedderYamlFile.exists) {
354-
throw StateError('Unable to find flutter libraries, please run '
355-
'`flutter precache` and try again.');
356-
}
357-
358-
var embedderYaml = loadYaml(embedderYamlFile.readAsStringSync()) as YamlMap;
359-
var flutterSdk = EmbedderSdk(resourceProvider,
360-
{resourceProvider.getFolder(_dartUiPath): embedderYaml});
361-
362-
for (var library in flutterSdk.sdkLibraries) {
363-
if (sdk.libraryMap.getLibrary(library.shortName) != null) continue;
364-
sdk.libraryMap.setLibrary(library.shortName, library as SdkLibraryImpl);
365-
}
366-
}
367-
368330
/// Checks that the current analyzer version supports the current language
369331
/// version.
370332
void _warnOnLanguageVersionMismatch() {

build_resolvers/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name: build_resolvers
2-
version: 1.3.10-dev
2+
version: 1.3.10
33
description: Resolve Dart code in a Builder
44
homepage: https://github.com/dart-lang/build/tree/master/build_resolvers
55

66
environment:
77
sdk: ">=2.7.0 <3.0.0"
88

99
dependencies:
10-
analyzer: ^0.39.5
10+
analyzer: ^0.39.12
1111
build: ">=1.3.0 <1.4.0"
1212
crypto: ^2.0.0
1313
graphs: ^0.2.0

0 commit comments

Comments
 (0)