no_self_assignments
Don't assign a variable to itself.
Details
#DON'T assign a variable to itself. Usually this is a mistake.
BAD:
dart
class C {
int x;
C(int x) {
x = x;
}
}
GOOD:
dart
class C {
int x;
C(int x) : x = x;
}
GOOD:
dart
class C {
int x;
C(int x) {
this.x = x;
}
}
BAD:
dart
class C {
int _x = 5;
int get x => _x;
set x(int x) {
_x = x;
_customUpdateLogic();
}
void _customUpdateLogic() {
print('updated');
}
void example() {
x = x;
}
}
GOOD:
dart
class C {
int _x = 5;
int get x => _x;
set x(int x) {
_x = x;
_customUpdateLogic();
}
void _customUpdateLogic() {
print('updated');
}
void example() {
_customUpdateLogic();
}
}
BAD:
dart
class C {
int x = 5;
void update(C other) {
this.x = this.x;
}
}
GOOD:
dart
class C {
int x = 5;
void update(C other) {
this.x = other.x;
}
}
Enable
#To enable the no_self_assignments
rule, add no_self_assignments
under linter > rules in your analysis_options.yaml
file:
analysis_options.yaml
yaml
linter:
rules:
- no_self_assignments
If you're instead using the YAML map syntax to configure linter rules, add no_self_assignments: true
under linter > rules:
analysis_options.yaml
yaml
linter:
rules:
no_self_assignments: true
Was this page's content helpful?
Thank you for your feedback!
Provide details Thank you for your feedback! Please let us know what we can do to improve.
Provide details Unless stated otherwise, the documentation on this site reflects Dart 3.8.1. Page last updated on 2025-03-07. View source or report an issue.