avoid_redundant_argument_values
Avoid redundant argument values.
This rule is available as of Dart 2.8.
This rule has a quick fix available.
Details
#DON'T pass an argument that matches the corresponding parameter's default value.
Note that a method override can change the default value of a parameter, so that
an argument may be equal to one default value, and not the other. Take, for
example, two classes, A
and B
where B
is a subclass of A
, and B
overrides a method declared on A
, and that method has a parameter with one
default value in A
's declaration, and a different default value in B
's
declaration. If the static type of the target of the invoked method is B
, and
B
's default value matches the argument, then the argument can be omitted (and
if the argument value is different, then a lint is not reported). If, however,
the static type of the target of the invoked method is A
, then a lint may be
reported, but we cannot know statically which method is invoked, so the reported
lint may be a false positive. Such cases can be ignored inline with a comment
like // ignore: avoid_redundant_argument_values
.
BAD:
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: true);
}
GOOD:
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: false);
f();
}
Usage
#To enable the avoid_redundant_argument_values
rule,
add avoid_redundant_argument_values
under linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- avoid_redundant_argument_values
除非另有说明,文档之所提及适用于 Dart 3.5.4 版本,本页面最后更新时间: 2024-08-02。 查看文档源码 或者 报告页面问题。