Skip to content

Commit 353b426

Browse files
authored
Remove unresolved-export warning. (#3711)
1 parent cdcbf6d commit 353b426

File tree

3 files changed

+2
-106
lines changed

3 files changed

+2
-106
lines changed

lib/src/model/package_graph.dart

+1-14
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,6 @@ class PackageGraph with CommentReferable, Nameable {
459459
PackageWarning.invalidParameter ||
460460
PackageWarning.toolError ||
461461
PackageWarning.deprecated ||
462-
PackageWarning.unresolvedExport ||
463462
PackageWarning.missingExampleFile ||
464463
PackageWarning.missingCodeBlockLanguage =>
465464
kind.messageFor([message])
@@ -513,19 +512,7 @@ class PackageGraph with CommentReferable, Nameable {
513512
return;
514513
}
515514
_reexportsTagged.add(key);
516-
if (libraryElement == null) {
517-
lastExportedElement!;
518-
final lastExportedElementUri = lastExportedElement.uri;
519-
final uri = lastExportedElementUri is DirectiveUriWithRelativeUriString
520-
? lastExportedElementUri.relativeUriString
521-
: null;
522-
warnOnElement(
523-
findButDoNotCreateLibraryFor(lastExportedElement.enclosingElement!),
524-
PackageWarning.unresolvedExport,
525-
message: '"$uri"',
526-
referredFrom: <Locatable>[topLevelLibrary]);
527-
return;
528-
}
515+
if (libraryElement == null) return;
529516
_libraryExports.putIfAbsent(libraryElement, () => {}).add(topLevelLibrary);
530517
for (var exportedElement in libraryElement.libraryExports) {
531518
_tagReexportsFor(

lib/src/warnings.dart

-6
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,6 @@ enum PackageWarning implements Comparable<PackageWarning> {
279279
'deprecated dartdoc usage: {0}',
280280
shortHelp: 'A dartdoc directive has a deprecated format.',
281281
),
282-
unresolvedExport(
283-
'unresolved-export',
284-
'unresolved export uri: {0}',
285-
shortHelp: 'An export refers to a URI that cannot be resolved.',
286-
defaultWarningMode: PackageWarningMode.error,
287-
),
288282
missingExampleFile(
289283
'missing-example-file',
290284
'example file not found: {0}',

test/warnings_test.dart

+1-86
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ library dartdoc.warnings_test;
77

88
import 'package:analyzer/file_system/physical_file_system.dart';
99
import 'package:dartdoc/src/dartdoc_options.dart';
10-
import 'package:dartdoc/src/generator/generator.dart';
11-
import 'package:dartdoc/src/io_utils.dart';
12-
import 'package:dartdoc/src/model/package_builder.dart';
13-
import 'package:dartdoc/src/package_config_provider.dart';
1410
import 'package:dartdoc/src/package_meta.dart';
1511
import 'package:dartdoc/src/warnings.dart';
1612
import 'package:test/test.dart';
@@ -59,7 +55,6 @@ void main() async {
5955
dartdoc:
6056
warnings:
6157
- type-as-html
62-
- unresolved-export
6358
errors:
6459
- unresolved-doc-reference
6560
ignore:
@@ -89,7 +84,6 @@ dartdoc:
8984
dartdoc:
9085
warnings:
9186
- type-as-html
92-
- unresolved-export
9387
errors:
9488
- unresolved-doc-reference
9589
ignore:
@@ -102,8 +96,6 @@ dartdoc:
10296

10397
expect(options.warningModes[PackageWarning.typeAsHtml],
10498
equals(PackageWarningMode.warn));
105-
expect(options.warningModes[PackageWarning.unresolvedExport],
106-
equals(PackageWarningMode.warn));
10799
expect(options.warningModes[PackageWarning.unresolvedDocReference],
108100
equals(PackageWarningMode.error));
109101
expect(options.warningModes[PackageWarning.ambiguousReexport],
@@ -115,7 +107,6 @@ dartdoc:
115107
dartdoc:
116108
warnings:
117109
- type-as-html
118-
- unresolved-export
119110
errors:
120111
- unresolved-doc-reference
121112
ignore:
@@ -127,14 +118,12 @@ dartdoc:
127118
'--errors',
128119
'type-as-html',
129120
'--ignore',
130-
'unresolved-export',
121+
'',
131122
]);
132123
PackageWarningOptions options = optionSet['packageWarningOptions']
133124
.valueAt(resourceProvider.getFolder(d.dir('test_package').io.path));
134125
expect(options.warningModes[PackageWarning.typeAsHtml],
135126
equals(PackageWarningMode.error));
136-
expect(options.warningModes[PackageWarning.unresolvedExport],
137-
equals(PackageWarningMode.ignore));
138127
// `unresolved-doc-reference` is not mentioned in command line, so it
139128
// reverts to default.
140129
expect(options.warningModes[PackageWarning.unresolvedDocReference],
@@ -149,7 +138,6 @@ dartdoc:
149138
dartdoc:
150139
warnings:
151140
- type-as-html
152-
- unresolved-export
153141
errors:
154142
- unresolved-doc-reference
155143
ignore:
@@ -168,82 +156,9 @@ dartdoc:
168156

169157
expect(options.warningModes[PackageWarning.typeAsHtml],
170158
equals(PackageWarningMode.ignore));
171-
expect(options.warningModes[PackageWarning.unresolvedExport],
172-
equals(PackageWarningMode.error));
173159
expect(options.warningModes[PackageWarning.unresolvedDocReference],
174160
equals(PackageWarningMode.warn));
175161
expect(options.warningModes[PackageWarning.ambiguousReexport],
176162
equals(PackageWarningMode.warn));
177163
});
178-
179-
test('warns of a broken re-export chain', () async {
180-
await d.createPackage(
181-
'test_package',
182-
pubspec: '''
183-
name: test_package
184-
version: 0.0.1
185-
environment:
186-
sdk: '>=2.12.0 <3.0.0'
187-
dependencies:
188-
test_package_export_error:
189-
path: ../test_package_export_error
190-
''',
191-
libFiles: [
192-
d.file('lib.dart', '''
193-
export 'package:test_package_export_error/library2.dart';
194-
195-
/// This is an important class.
196-
class BugFreeClass {}
197-
'''),
198-
],
199-
);
200-
await d.createPackage(
201-
'test_package_export_error',
202-
pubspec: '''
203-
name: test_package_export_error
204-
version: 0.0.1
205-
environment:
206-
sdk: '>=2.12.0 <3.0.0'
207-
''',
208-
libFiles: [
209-
d.file('library1.dart', '''
210-
/// An export of a non-existent library.
211-
export 'package:not_referenced_in_pubspec/library3.dart' show Lib3Class;
212-
'''),
213-
d.file('library2.dart', '''
214-
export 'package:test_package_export_error/library1.dart';
215-
216-
class Lib2Class {}
217-
'''),
218-
],
219-
);
220-
221-
var tempDir = resourceProvider.createSystemTemp('dartdoc.test.');
222-
223-
var optionSet = DartdocOptionRoot.fromOptionGenerators(
224-
'dartdoc',
225-
[
226-
createDartdocOptions,
227-
createGeneratorOptions,
228-
],
229-
pubPackageMetaProvider);
230-
optionSet.parseArguments(
231-
['--input', d.dir('test_package').io.path, '--output', tempDir.path]);
232-
var context = DartdocGeneratorOptionContext.fromDefaultContextLocation(
233-
optionSet, pubPackageMetaProvider.resourceProvider);
234-
235-
var packageGraph = await PubPackageBuilder(
236-
context, pubPackageMetaProvider, PhysicalPackageConfigProvider(),
237-
skipUnreachableSdkLibraries: true)
238-
.buildPackageGraph();
239-
240-
var unresolvedExportWarnings = packageGraph
241-
.packageWarningCounter.countedWarnings.values
242-
.map((e) => e[PackageWarning.unresolvedExport] ?? {})
243-
.expand((element) => element);
244-
245-
expect(unresolvedExportWarnings, hasLength(1));
246-
expect(unresolvedExportWarnings.first,
247-
equals('"package:not_referenced_in_pubspec/library3.dart"'));
248-
});
249164
}

0 commit comments

Comments
 (0)