no_ self_ assignments
Learn about the no_self_assignments linter rule.
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?
Unless stated otherwise, the documentation on this site reflects Dart 3.10.3. Report an issue.