Skip to content

Commit fb621e1

Browse files
authored
Update to analyzer 2.7.0, use createMockSdk() and FolderBasedDartSdk. (#2845)
* Update to analyzer 2.7.0, use createMockSdk() and FolderBasedDartSdk. * format
1 parent f2eb530 commit fb621e1

File tree

5 files changed

+27
-50
lines changed

5 files changed

+27
-50
lines changed

lib/src/io_utils.dart

-12
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,10 @@ import 'dart:io' as io;
1212

1313
import 'package:analyzer/file_system/file_system.dart';
1414
import 'package:analyzer/file_system/physical_file_system.dart';
15-
// ignore: implementation_imports
16-
import 'package:analyzer/src/generated/sdk.dart' show SdkLibrary;
17-
// ignore: implementation_imports
18-
import 'package:analyzer/src/test_utilities/mock_sdk.dart' show MockSdkLibrary;
1915
import 'package:path/path.dart' as path show Context;
2016

2117
Encoding utf8AllowMalformed = Utf8Codec(allowMalformed: true);
2218

23-
bool isSdkLibraryDocumented(SdkLibrary library) {
24-
if (library is MockSdkLibrary) {
25-
// Not implemented in [MockSdkLibrary].
26-
return true;
27-
}
28-
return library.isDocumented;
29-
}
30-
3119
extension PathExtensions on path.Context {
3220
/// Returns a canonicalized path including the home directory in place of
3321
/// tilde references.

lib/src/model/library.dart

+1-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import 'package:analyzer/src/dart/element/inheritance_manager3.dart'
1515
show InheritanceManager3;
1616
// ignore: implementation_imports
1717
import 'package:analyzer/src/generated/sdk.dart' show SdkLibrary;
18-
import 'package:dartdoc/src/io_utils.dart';
1918
import 'package:dartdoc/src/model/comment_referable.dart';
2019
import 'package:dartdoc/src/model/model.dart';
2120
import 'package:dartdoc/src/package_meta.dart' show PackageMeta;
@@ -199,8 +198,7 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
199198
@override
200199
bool get isPublic {
201200
if (!super.isPublic) return false;
202-
if (sdkLib != null &&
203-
(sdkLib.isInternal || !isSdkLibraryDocumented(sdkLib))) {
201+
if (sdkLib != null && (sdkLib.isInternal || !sdkLib.isDocumented)) {
204202
return false;
205203
}
206204
if (config.isLibraryExcluded(name) ||

pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ environment:
77
sdk: '>=2.11.99 <3.0.0'
88

99
dependencies:
10-
analyzer: ^2.4.0
10+
analyzer: ^2.7.0
1111
args: ^2.3.0
1212
charcode: ^1.3.1
1313
collection: ^1.15.0

test/documentation_comment_test.dart

+12-7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import 'package:analyzer/file_system/file_system.dart';
66
import 'package:analyzer/file_system/memory_file_system.dart';
7+
import 'package:analyzer/src/dart/sdk/sdk.dart';
78
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
89
import 'package:dartdoc/src/dartdoc_options.dart';
910
import 'package:dartdoc/src/model/model.dart';
@@ -18,8 +19,6 @@ void main() {
1819
MemoryResourceProvider resourceProvider;
1920
PackageMetaProvider packageMetaProvider;
2021
FakePackageConfigProvider packageConfigProvider;
21-
MockSdk mockSdk;
22-
Folder sdkFolder;
2322
Folder projectRoot;
2423
String projectPath;
2524
var packageName = 'my_package';
@@ -40,16 +39,22 @@ void main() {
4039
group('documentation_comment tests', () {
4140
setUp(() async {
4241
resourceProvider = MemoryResourceProvider();
43-
mockSdk = MockSdk(resourceProvider: resourceProvider);
44-
sdkFolder = utils.writeMockSdkFiles(mockSdk);
42+
final sdkRoot = resourceProvider.getFolder(
43+
resourceProvider.convertPath('/sdk'),
44+
);
45+
createMockSdk(
46+
resourceProvider: resourceProvider,
47+
root: sdkRoot,
48+
);
49+
utils.writeMockSdkFiles(sdkRoot);
4550

4651
packageMetaProvider = PackageMetaProvider(
4752
PubPackageMeta.fromElement,
4853
PubPackageMeta.fromFilename,
4954
PubPackageMeta.fromDir,
5055
resourceProvider,
51-
sdkFolder,
52-
defaultSdk: mockSdk,
56+
sdkRoot,
57+
defaultSdk: FolderBasedDartSdk(resourceProvider, sdkRoot),
5358
messageForMissingPackageMeta:
5459
PubPackageMeta.messageForMissingPackageMeta);
5560
var optionSet = await DartdocOptionSet.fromOptionGenerators(
@@ -59,7 +64,7 @@ void main() {
5964
// To build the package graph, we always ask package_config for a
6065
// [PackageConfig] for the SDK directory. Put a dummy entry in.
6166
packageConfigProvider.addPackageToConfigFor(
62-
sdkFolder.path, 'analyzer', Uri.file('/sdk/pkg/analyzer/'));
67+
sdkRoot.path, 'analyzer', Uri.file('/sdk/pkg/analyzer/'));
6368

6469
projectRoot = utils.writePackage(
6570
packageName, resourceProvider, packageConfigProvider);

test/src/utils.dart

+13-27
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'dart:io';
88

99
import 'package:analyzer/file_system/file_system.dart';
1010
import 'package:analyzer/file_system/memory_file_system.dart';
11+
import 'package:analyzer/src/dart/sdk/sdk.dart';
1112
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
1213
import 'package:dartdoc/src/dartdoc_options.dart';
1314
import 'package:dartdoc/src/markdown_processor.dart';
@@ -82,50 +83,35 @@ PackageConfigProvider getTestPackageConfigProvider(String sdkPath) {
8283
/// Returns a [PackageMetaProvider] using a [MemoryResourceProvider].
8384
PackageMetaProvider get testPackageMetaProvider {
8485
var resourceProvider = MemoryResourceProvider();
85-
var mockSdk = MockSdk(resourceProvider: resourceProvider);
86-
var sdkFolder = writeMockSdkFiles(mockSdk);
86+
final sdkRoot = resourceProvider.getFolder(
87+
resourceProvider.convertPath('/sdk'),
88+
);
89+
createMockSdk(
90+
resourceProvider: resourceProvider,
91+
root: sdkRoot,
92+
);
93+
writeMockSdkFiles(sdkRoot);
8794

8895
return PackageMetaProvider(
8996
PubPackageMeta.fromElement,
9097
PubPackageMeta.fromFilename,
9198
PubPackageMeta.fromDir,
9299
resourceProvider,
93-
sdkFolder,
94-
defaultSdk: mockSdk,
100+
sdkRoot,
101+
defaultSdk: FolderBasedDartSdk(resourceProvider, sdkRoot),
95102
messageForMissingPackageMeta: PubPackageMeta.messageForMissingPackageMeta,
96103
);
97104
}
98105

99-
/// Writes [mockSdk] to disk at both its original path, and its canonicalized
100-
/// path (they may be different on Windows).
106+
/// Writes additional files for a mock SDK.
101107
///
102108
/// Included is a "version" file and an "api_readme.md" file.
103-
Folder writeMockSdkFiles(MockSdk mockSdk) {
104-
var resourceProvider = mockSdk.resourceProvider;
105-
var pathContext = resourceProvider.pathContext;
106-
107-
// The [MockSdk] only works in non-canonicalized paths, which include
108-
// "C:\sdk", on Windows. However, dartdoc works almost exclusively with
109-
// canonical paths ("c:\sdk"). Copy all MockSdk files to the canonicalized
110-
// path.
111-
for (var l in mockSdk.sdkLibraries) {
112-
var p = l.path;
113-
resourceProvider
114-
.getFile(pathContext.canonicalize(p))
115-
.writeAsStringSync(resourceProvider.getFile(p).readAsStringSync());
116-
}
117-
var sdkFolder = resourceProvider.getFolder(
118-
pathContext.canonicalize(resourceProvider.convertPath(sdkRoot)))
119-
..create();
109+
void writeMockSdkFiles(Folder sdkFolder) {
120110
sdkFolder.getChildAssumingFile('version').writeAsStringSync('2.9.0');
121111
sdkFolder.getChildAssumingFile('api_readme.md').writeAsStringSync(
122112
'Welcome to the [Dart](https://dart.dev/) API reference documentation');
123113

124114
_writeMockSdkBinFiles(sdkFolder);
125-
_writeMockSdkBinFiles(
126-
resourceProvider.getFolder(resourceProvider.convertPath(sdkRoot)));
127-
128-
return sdkFolder;
129115
}
130116

131117
/// Dartdoc has a few indicator files it uses to verify that a directory

0 commit comments

Comments
 (0)