Skip to content

Commit b0d2a81

Browse files
committed
Merge main branch into head with conflict resolution
2 parents d85056c + 520e649 commit b0d2a81

8 files changed

+40
-56
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
## 4.1.0-dev
1+
## 4.1.0
2+
* Move to analyzer 2.7.0. (#2845)
3+
* The library interface is now explicitly marked as experimental via meta.
24
* Experimental feature: HTML output from markdown rendering, `{@tool}` and
35
`{@inject-html}` is sanitized when hidden option `--sanitize-html` is passed.
6+
* Refactor of ModelElement and ElementType constructors. Technically breaking
7+
but known users of the API do not attempt to construct these types by hand.
8+
(#2828, #2829)
9+
* Move to recommended set of hints in linter and correct some small errors
10+
in regexps. (#2833)
411

512
## 4.0.0
613
* BREAKING CHANGE: Refactors to support NNBD and adapt to new analyzer

dartdoc_options.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
dartdoc:
22
linkToSource:
33
root: '.'
4-
uriTemplate: 'https://github.com/dart-lang/dartdoc/blob/v4.1.0-dev/%f%#L%l%'
4+
uriTemplate: 'https://github.com/dart-lang/dartdoc/blob/v4.1.0/%f%#L%l%'

lib/src/io_utils.dart

Lines changed: 0 additions & 12 deletions
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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import 'package:analyzer/src/dart/element/inheritance_manager3.dart'
1717
show InheritanceManager3;
1818
// ignore: implementation_imports
1919
import 'package:analyzer/src/generated/sdk.dart' show SdkLibrary;
20-
import 'package:dartdoc/src/io_utils.dart';
2120
import 'package:dartdoc/src/model/comment_referable.dart';
2221
import 'package:dartdoc/src/model/model.dart';
2322
import 'package:dartdoc/src/package_meta.dart' show PackageMeta;
@@ -201,8 +200,7 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
201200
@override
202201
bool get isPublic {
203202
if (!super.isPublic) return false;
204-
if (sdkLib != null &&
205-
(sdkLib.isInternal || !isSdkLibraryDocumented(sdkLib))) {
203+
if (sdkLib != null && (sdkLib.isInternal || !sdkLib.isDocumented)) {
206204
return false;
207205
}
208206
if (config.isLibraryExcluded(name) ||

lib/src/version.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// Generated code. Do not modify.
2-
const packageVersion = '4.1.0-dev';
2+
const packageVersion = '4.1.0';

pubspec.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
name: dartdoc
22
# Run `dart run grinder build` after updating.
3-
version: 4.1.0-dev
3+
version: 4.1.0
44
description: A non-interactive HTML documentation generator for Dart source code.
55
homepage: https://github.com/dart-lang/dartdoc
66
environment:
77
sdk: '>=2.12.0 <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
14-
cli_util: ^0.3.4
14+
cli_util: ^0.3.5
1515
crypto: ^3.0.1
1616
glob: ^2.0.1
1717
html: ^0.15.0
@@ -36,7 +36,7 @@ dev_dependencies:
3636
grinder: ^0.9.0
3737
http: ^0.13.3
3838
lints: ^1.0.1
39-
test: ^1.17.12
39+
test: ^1.19.0
4040

4141
executables:
4242
dartdoc: null

test/documentation_comment_test.dart

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import 'package:analyzer/file_system/file_system.dart';
88
import 'package:analyzer/file_system/memory_file_system.dart';
9+
import 'package:analyzer/src/dart/sdk/sdk.dart';
910
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
1011
import 'package:dartdoc/src/dartdoc_options.dart';
1112
import 'package:dartdoc/src/model/model.dart';
@@ -20,8 +21,6 @@ void main() {
2021
MemoryResourceProvider resourceProvider;
2122
PackageMetaProvider packageMetaProvider;
2223
FakePackageConfigProvider packageConfigProvider;
23-
MockSdk mockSdk;
24-
Folder sdkFolder;
2524
Folder projectRoot;
2625
String projectPath;
2726
var packageName = 'my_package';
@@ -42,16 +41,22 @@ void main() {
4241
group('documentation_comment tests', () {
4342
setUp(() async {
4443
resourceProvider = MemoryResourceProvider();
45-
mockSdk = MockSdk(resourceProvider: resourceProvider);
46-
sdkFolder = utils.writeMockSdkFiles(mockSdk);
44+
final sdkRoot = resourceProvider.getFolder(
45+
resourceProvider.convertPath('/sdk'),
46+
);
47+
createMockSdk(
48+
resourceProvider: resourceProvider,
49+
root: sdkRoot,
50+
);
51+
utils.writeMockSdkFiles(sdkRoot);
4752

4853
packageMetaProvider = PackageMetaProvider(
4954
PubPackageMeta.fromElement,
5055
PubPackageMeta.fromFilename,
5156
PubPackageMeta.fromDir,
5257
resourceProvider,
53-
sdkFolder,
54-
defaultSdk: mockSdk,
58+
sdkRoot,
59+
defaultSdk: FolderBasedDartSdk(resourceProvider, sdkRoot),
5560
messageForMissingPackageMeta:
5661
PubPackageMeta.messageForMissingPackageMeta,
5762
);
@@ -62,7 +67,7 @@ void main() {
6267
// To build the package graph, we always ask package_config for a
6368
// [PackageConfig] for the SDK directory. Put a dummy entry in.
6469
packageConfigProvider.addPackageToConfigFor(
65-
sdkFolder.path, 'analyzer', Uri.file('/sdk/pkg/analyzer/'));
70+
sdkRoot.path, 'analyzer', Uri.file('/sdk/pkg/analyzer/'));
6671

6772
projectRoot = utils.writePackage(
6873
packageName, resourceProvider, packageConfigProvider);

test/src/utils.dart

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'dart:io';
1010

1111
import 'package:analyzer/file_system/file_system.dart';
1212
import 'package:analyzer/file_system/memory_file_system.dart';
13+
import 'package:analyzer/src/dart/sdk/sdk.dart';
1314
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
1415
import 'package:dartdoc/src/dartdoc_options.dart';
1516
import 'package:dartdoc/src/markdown_processor.dart';
@@ -84,50 +85,35 @@ PackageConfigProvider getTestPackageConfigProvider(String sdkPath) {
8485
/// Returns a [PackageMetaProvider] using a [MemoryResourceProvider].
8586
PackageMetaProvider get testPackageMetaProvider {
8687
var resourceProvider = MemoryResourceProvider();
87-
var mockSdk = MockSdk(resourceProvider: resourceProvider);
88-
var sdkFolder = writeMockSdkFiles(mockSdk);
88+
final sdkRoot = resourceProvider.getFolder(
89+
resourceProvider.convertPath('/sdk'),
90+
);
91+
createMockSdk(
92+
resourceProvider: resourceProvider,
93+
root: sdkRoot,
94+
);
95+
writeMockSdkFiles(sdkRoot);
8996

9097
return PackageMetaProvider(
9198
PubPackageMeta.fromElement,
9299
PubPackageMeta.fromFilename,
93100
PubPackageMeta.fromDir,
94101
resourceProvider,
95-
sdkFolder,
96-
defaultSdk: mockSdk,
102+
sdkRoot,
103+
defaultSdk: FolderBasedDartSdk(resourceProvider, sdkRoot),
97104
messageForMissingPackageMeta: PubPackageMeta.messageForMissingPackageMeta,
98105
);
99106
}
100107

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

126116
_writeMockSdkBinFiles(sdkFolder);
127-
_writeMockSdkBinFiles(
128-
resourceProvider.getFolder(resourceProvider.convertPath(sdkRoot)));
129-
130-
return sdkFolder;
131117
}
132118

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

0 commit comments

Comments
 (0)