Skip to content
This repository was archived by the owner on Nov 20, 2024. It is now read-only.

Commit bd17d08

Browse files
authored
super param support for avoid_unused_constructor_parameters (#3162)
1 parent 2d0882c commit bd17d08

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

lib/src/rules/avoid_unused_constructor_parameters.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class _ConstructorVisitor extends RecursiveAstVisitor {
5858
var element = p.declaredElement;
5959
return element != null &&
6060
element is! FieldFormalParameterElement &&
61+
element is! SuperFormalParameterElement &&
6162
!element.hasDeprecated &&
6263
!element.name.isJustUnderscores;
6364
}).toSet();

test/rules/all.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import 'avoid_redundant_argument_values.dart'
99
as avoid_redundant_argument_values;
1010
import 'avoid_shadowing_type_parameters.dart'
1111
as avoid_shadowing_type_parameters;
12+
import 'avoid_unused_constructor_parameters.dart'
13+
as avoid_unused_constructor_parameters;
1214
import 'conditional_uri_does_not_exist.dart' as conditional_uri_does_not_exist;
1315
import 'deprecated_consistency.dart' as deprecated_consistency;
1416
import 'file_names.dart' as file_names;
@@ -46,6 +48,7 @@ void main() {
4648
avoid_init_to_null.main();
4749
avoid_redundant_argument_values.main();
4850
avoid_shadowing_type_parameters.main();
51+
avoid_unused_constructor_parameters.main();
4952
conditional_uri_does_not_exist.main();
5053
deprecated_consistency.main();
5154
file_names.main();
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:test_reflective_loader/test_reflective_loader.dart';
6+
7+
import '../rule_test_support.dart';
8+
9+
main() {
10+
defineReflectiveSuite(() {
11+
defineReflectiveTests(AvoidUnusedConstructorParametersTest);
12+
});
13+
}
14+
15+
@reflectiveTest
16+
class AvoidUnusedConstructorParametersTest extends LintRuleTest {
17+
@override
18+
List<String> get experiments => [
19+
EnableString.super_parameters,
20+
];
21+
22+
@override
23+
String get lintRule => 'avoid_unused_constructor_parameters';
24+
25+
test_super() async {
26+
await assertNoDiagnostics(r'''
27+
class A {
28+
String a;
29+
String b;
30+
A(this.a, this.b);
31+
}
32+
class B extends A {
33+
B(super.a, super.b);
34+
}
35+
''');
36+
}
37+
}

0 commit comments

Comments
 (0)