Skip to content

Commit 16f7d2e

Browse files
authored
update depend_on_referenced_packages to skip flutter_gen (dart-archive/linter#3309)
1 parent 66a4bf9 commit 16f7d2e

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

lib/src/rules/depend_on_referenced_packages.dart

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,24 @@ class DependOnReferencedPackages extends LintRule {
8484
}
8585

8686
class _Visitor extends SimpleAstVisitor {
87+
/// Virtual packages will not have explicit dependencies
88+
/// and get skipped.
89+
static const virtualPackages = [
90+
//https://github.com/dart-lang/linter/issues/3308
91+
'flutter_gen',
92+
];
93+
8794
final DependOnReferencedPackages rule;
8895
final List<String> availableDeps;
8996

9097
_Visitor(this.rule, this.availableDeps);
9198

99+
@override
100+
void visitExportDirective(ExportDirective node) => _checkDirective(node);
101+
102+
@override
103+
void visitImportDirective(ImportDirective node) => _checkDirective(node);
104+
92105
void _checkDirective(UriBasedDirective node) {
93106
// Is it a package: uri?
94107
var uriContent = node.uriContent;
@@ -100,13 +113,8 @@ class _Visitor extends SimpleAstVisitor {
100113
if (firstSlash == -1) return;
101114

102115
var packageName = uriContent.substring(8, firstSlash);
116+
if (virtualPackages.contains(packageName)) return;
103117
if (availableDeps.contains(packageName)) return;
104118
rule.reportLint(node.uri);
105119
}
106-
107-
@override
108-
void visitImportDirective(ImportDirective node) => _checkDirective(node);
109-
110-
@override
111-
void visitExportDirective(ExportDirective node) => _checkDirective(node);
112120
}

test_data/integration/depend_on_referenced_packages/_packages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
flutter_gen:vendor/flutter_gen
12
sample_project:lib/
23
public_dep:vendor/public_dep/
34
private_dep:vendor/private_dep/

test_data/integration/depend_on_referenced_packages/lib/public.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5+
import 'package:flutter_gen/gen.dart'; // OK
6+
57
import 'package:sample_project/sample_project.dart'; // OK
68
import 'package:public_dep/public_dep.dart'; // OK
79
import 'package:private_dep/private_dep.dart'; // LINT

test_data/integration/depend_on_referenced_packages/vendor/flutter_gen/gen.dart

Whitespace-only changes.

0 commit comments

Comments
 (0)