mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 15:39:54 +00:00
Add AnalysisDriverForPackageBuild.sdkLibraryUris
https://github.com/dart-lang/build/pull/3389 Change-Id: Ib54ba5d5411fc6213ecf1733dd056f9347f27462 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265401 Reviewed-by: Jake Macdonald <jakemac@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
8c1b05cd8e
commit
b8ffc08d5b
|
@ -10,6 +10,7 @@
|
|||
* Deprecated `CompilationUnitElement.mixins2`, use `mixins` instead.
|
||||
* Deprecated `LibraryElement.parts2`, use `parts` instead.
|
||||
* Deprecated `ImportElement.imports2`, use `imports` instead.
|
||||
* Add `AnalysisDriverForPackageBuild.sdkLibraryUris`.
|
||||
|
||||
## 5.1.0
|
||||
* Deprecated `AstNode.name2`, use `name` instead.
|
||||
|
|
|
@ -64,19 +64,28 @@ AnalysisDriverForPackageBuild createAnalysisDriver({
|
|||
|
||||
scheduler.start();
|
||||
|
||||
return AnalysisDriverForPackageBuild._(driver);
|
||||
return AnalysisDriverForPackageBuild._(sdk.libraryUris, driver);
|
||||
}
|
||||
|
||||
/// [AnalysisSession] plus a tiny bit more.
|
||||
class AnalysisDriverForPackageBuild {
|
||||
final List<Uri> _sdkLibraryUris;
|
||||
final AnalysisDriver _driver;
|
||||
|
||||
AnalysisDriverForPackageBuild._(this._driver);
|
||||
AnalysisDriverForPackageBuild._(
|
||||
this._sdkLibraryUris,
|
||||
this._driver,
|
||||
);
|
||||
|
||||
AnalysisSession get currentSession {
|
||||
return _driver.currentSession;
|
||||
}
|
||||
|
||||
/// Returns URIs of libraries in the given SDK.
|
||||
List<Uri> get sdkLibraryUris {
|
||||
return _sdkLibraryUris;
|
||||
}
|
||||
|
||||
/// Return a [Future] that completes after pending file changes are applied,
|
||||
/// so that [currentSession] can be used to compute results.
|
||||
Future<void> applyPendingFileChanges() {
|
||||
|
|
|
@ -41,6 +41,11 @@ class SummaryBasedDartSdk implements DartSdk {
|
|||
);
|
||||
}
|
||||
|
||||
/// Returns URIs of all libraries.
|
||||
List<Uri> get libraryUris {
|
||||
return _bundle.libraries.map((e) => Uri.parse(e.uriStr)).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
List<SdkLibrary> get sdkLibraries {
|
||||
throw UnimplementedError();
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:analyzer/dart/sdk/build_sdk_summary.dart';
|
||||
import 'package:analyzer/src/clients/build_resolvers/build_resolvers.dart';
|
||||
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
|
||||
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
|
||||
import 'package:test/test.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
defineReflectiveTests(AnalysisDriverForPackageBuildTest);
|
||||
});
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class AnalysisDriverForPackageBuildTest with ResourceProviderMixin {
|
||||
test_sdkLibraryUris() async {
|
||||
var sdkRoot = getFolder('/sdk');
|
||||
|
||||
createMockSdk(
|
||||
resourceProvider: resourceProvider,
|
||||
root: sdkRoot,
|
||||
);
|
||||
|
||||
var sdkSummaryBytes = await buildSdkSummary2(
|
||||
resourceProvider: resourceProvider,
|
||||
sdkPath: sdkRoot.path,
|
||||
);
|
||||
|
||||
var analysisDriver = createAnalysisDriver(
|
||||
resourceProvider: resourceProvider,
|
||||
sdkSummaryBytes: sdkSummaryBytes,
|
||||
analysisOptions: AnalysisOptionsImpl(),
|
||||
uriResolvers: [],
|
||||
packages: Packages({}),
|
||||
);
|
||||
|
||||
expect(
|
||||
analysisDriver.sdkLibraryUris,
|
||||
containsAll([
|
||||
Uri.parse('dart:core'),
|
||||
Uri.parse('dart:async'),
|
||||
Uri.parse('dart:io'),
|
||||
Uri.parse('dart:_internal'),
|
||||
]),
|
||||
);
|
||||
}
|
||||
}
|
13
pkg/analyzer/test/src/clients/build_resolvers/test_all.dart
Normal file
13
pkg/analyzer/test/src/clients/build_resolvers/test_all.dart
Normal file
|
@ -0,0 +1,13 @@
|
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'build_resolvers_test.dart' as build_resolvers;
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
build_resolvers.main();
|
||||
}, name: 'build_resolvers');
|
||||
}
|
|
@ -4,10 +4,12 @@
|
|||
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'build_resolvers/test_all.dart' as build_resolvers;
|
||||
import 'dart_style/test_all.dart' as dart_style;
|
||||
|
||||
main() {
|
||||
defineReflectiveSuite(() {
|
||||
build_resolvers.main();
|
||||
dart_style.main();
|
||||
}, name: 'clients');
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue