parameter_assignments
Don’t reassign references to parameters of functions or methods.
This rule is available as of Dart 2.0.0.
Details
DON’T assign new values to parameters of methods or functions.
Assigning new values to parameters is generally a bad practice unless an
operator such as ??=
is used. Otherwise, arbitrarily reassigning parameters
is usually a mistake.
BAD:
void badFunction(int parameter) { // LINT
parameter = 4;
}
BAD:
void badFunction(int required, {int optional: 42}) { // LINT
optional ??= 8;
}
BAD:
void badFunctionPositional(int required, [int optional = 42]) { // LINT
optional ??= 8;
}
BAD:
class A {
void badMethod(int parameter) { // LINT
parameter = 4;
}
}
GOOD:
void ok(String parameter) {
print(parameter);
}
GOOD:
void actuallyGood(int required, {int optional}) { // OK
optional ??= ...;
}
GOOD:
void actuallyGoodPositional(int required, [int optional]) { // OK
optional ??= ...;
}
GOOD:
class A {
void ok(String parameter) {
print(parameter);
}
}
Usage
To enable the parameter_assignments
rule,
add parameter_assignments
under linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- parameter_assignments