Skip to content

Commit 08c541a

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer_plugin: support library_private_types_in_public_api lint rule
Luckily, the two cases which were reported could both be remedied by making more things private. * `DartFileEditBuilderImpl.librariesToImport` exposed `_LibraryImport`, but could be made private anyhow. Also, it's package-private code, so this is not a breaking change. * `CodegenVisitor.generateConstant` accepted a private type as an argument, but the whole class can be made private. Change-Id: I8613812385ed0e9a7e36922d86889dad4cedf3cd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/428924 Commit-Queue: Samuel Rawlins <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent ade4bf8 commit 08c541a

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

pkg/analyzer_plugin/analysis_options.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ analyzer:
99
constant_identifier_names: ignore
1010
implementation_imports: ignore
1111
non_constant_identifier_names: ignore
12-
# Existing violations (3)
13-
library_private_types_in_public_api: ignore
1412
# Existing violations (194)
1513
unintended_html_in_doc_comment: ignore
1614

pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,7 +1449,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
14491449

14501450
/// A mapping from libraries that need to be imported in order to make visible
14511451
/// the names used in generated code, to information about these imports.
1452-
Map<Uri, _LibraryImport> librariesToImport = {};
1452+
final Map<Uri, _LibraryImport> _librariesToImport = {};
14531453

14541454
/// A mapping of elements to pending imports that will be added to make them
14551455
/// visible in the generated code.
@@ -1472,10 +1472,10 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
14721472

14731473
@override
14741474
bool get hasEdits =>
1475-
super.hasEdits || librariesToImport.isNotEmpty || fileHeader != null;
1475+
super.hasEdits || _librariesToImport.isNotEmpty || fileHeader != null;
14761476

14771477
@override
1478-
List<Uri> get requiredImports => librariesToImport.keys.toList();
1478+
List<Uri> get requiredImports => _librariesToImport.keys.toList();
14791479

14801480
CodeStyleOptions get _codeStyleOptions => resolvedUnit.session.analysisContext
14811481
.getAnalysisOptionsForFile(resolvedUnit.file)
@@ -1544,8 +1544,8 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
15441544
createEditsForImports: _createEditsForImports);
15451545
copy.fileEdit.edits.addAll(fileEdit.edits);
15461546
copy.importPrefixGenerator = importPrefixGenerator;
1547-
for (var entry in librariesToImport.entries) {
1548-
copy.librariesToImport[entry.key] = entry.value;
1547+
for (var entry in _librariesToImport.entries) {
1548+
copy._librariesToImport[entry.key] = entry.value;
15491549
}
15501550
for (var entry in _elementLibrariesToImport.entries) {
15511551
copy._elementLibrariesToImport[entry.key] = entry.value;
@@ -1561,8 +1561,8 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
15611561

15621562
@override
15631563
void finalize() {
1564-
if (_createEditsForImports && librariesToImport.isNotEmpty) {
1565-
_addLibraryImports(librariesToImport.values);
1564+
if (_createEditsForImports && _librariesToImport.isNotEmpty) {
1565+
_addLibraryImports(_librariesToImport.values);
15661566
}
15671567
var header = fileHeader;
15681568
if (header != null) {
@@ -1741,7 +1741,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
17411741
}
17421742

17431743
// Queued change.
1744-
var importChange = (libraryChangeBuilder ?? this).librariesToImport[uri];
1744+
var importChange = (libraryChangeBuilder ?? this)._librariesToImport[uri];
17451745
return importChange != null;
17461746
}
17471747

@@ -1909,7 +1909,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
19091909
super.revert();
19101910

19111911
for (var uri in _revertData._addedLibrariesToImport) {
1912-
librariesToImport.remove(uri);
1912+
_librariesToImport.remove(uri);
19131913
}
19141914

19151915
_revertData._addedLibrariesToImport.clear();
@@ -2400,7 +2400,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
24002400
bool forceAbsolute = false,
24012401
bool forceRelative = false,
24022402
}) {
2403-
var import = (libraryChangeBuilder ?? this).librariesToImport[uri];
2403+
var import = (libraryChangeBuilder ?? this)._librariesToImport[uri];
24042404
var existingShownNames = <List<String>>[];
24052405
var existingHiddenNames = <List<String>>[];
24062406

@@ -2457,7 +2457,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
24572457
if (showName != null) {
24582458
import._ensureShown(showName, useShow: useShow);
24592459
}
2460-
(libraryChangeBuilder ?? this).librariesToImport[uri] = import;
2460+
(libraryChangeBuilder ?? this)._librariesToImport[uri] = import;
24612461
_revertData._addedLibrariesToImport.add(uri);
24622462
}
24632463
return import;
@@ -2506,7 +2506,7 @@ class DartFileEditBuilderImpl extends FileEditBuilderImpl
25062506
// And finally, remove the remaining candidates from the set of libraries to
25072507
// be imported.
25082508
(libraryChangeBuilder ?? this)
2509-
.librariesToImport
2509+
._librariesToImport
25102510
.removeWhere((_, import) => candidatesToRemove.contains(import));
25112511
}
25122512

pkg/analyzer_plugin/tool/spec/codegen_protocol_constants.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import 'from_html.dart';
1010

1111
final GeneratedFile target = GeneratedFile(
1212
'lib/protocol/protocol_constants.dart', (String pkgPath) async {
13-
var visitor = CodegenVisitor(readApi(pkgPath));
13+
var visitor = _CodegenVisitor(readApi(pkgPath));
1414
return visitor.collectCode(visitor.visitApi);
1515
});
1616

1717
/// A visitor that produces Dart code defining constants associated with the
1818
/// API.
19-
class CodegenVisitor extends DartCodegenVisitor with CodeGenerator {
20-
CodegenVisitor(super.api) {
19+
class _CodegenVisitor extends DartCodegenVisitor with CodeGenerator {
20+
_CodegenVisitor(super.api) {
2121
codeGeneratorSettings.commentLineLength = 79;
2222
codeGeneratorSettings.docCommentStartMarker = null;
2323
codeGeneratorSettings.docCommentLineLeader = '/// ';

0 commit comments

Comments
 (0)