Skip to content

Commit 525c7c5

Browse files
committed
avoid_using_api works with getters + cleared test case
1 parent 2ad0106 commit 525c7c5

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

lib/src/lints/avoid_using_api/avoid_using_api_linter.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,5 +270,23 @@ class AvoidUsingApiLinter {
270270

271271
reporter.atNode(node.methodName, entryCode);
272272
});
273+
274+
context.registry.addPrefixedIdentifier((node) {
275+
final propertyName = node.identifier.name;
276+
if (propertyName != identifier) return;
277+
278+
final element = node.identifier.staticElement;
279+
if (element == null || element.enclosingElement3 is! ExtensionElement) {
280+
return;
281+
}
282+
283+
final extensionElement = element.enclosingElement3! as ExtensionElement;
284+
if (extensionElement.name != className) return;
285+
286+
final sourcePath = extensionElement.librarySource.uri.toString();
287+
if (!_matchesSource(sourcePath, source)) return;
288+
289+
reporter.atNode(node.identifier, entryCode);
290+
});
273291
}
274292
}

lint_test/avoid_using_api/external_source/lib/external_source.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ int banned = 5;
2525

2626
extension BannedExtension on int {
2727
int banned() => this + 10;
28+
29+
int get bannedGetter => 10;
2830
}

lint_test/avoid_using_api/identifier_extension_source_ban/analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ custom_lint:
1111
identifier: banned
1212
source: package:external_source
1313
reason: "Banned identifier from BannedExtension from package:external_source is not allowed"
14+
- class_name: BannedExtension
15+
identifier: bannedGetter
16+
source: package:external_source
17+
reason: "bannedGetter identifier from BannedExtension from package:external_source is not allowed"
1418

lint_test/avoid_using_api/identifier_extension_source_ban/lib/identifier_extension_source_ban_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,7 @@ void extensionIdentifierBanTesting(){
55

66
// expect_lint: avoid_using_api
77
a.banned();
8+
9+
// expect_lint: avoid_using_api
10+
a.bannedGetter;
811
}

0 commit comments

Comments
 (0)