Skip to main content

unnecessary_this_alias

Learn about the unnecessary_this_alias linter rule.

Unreleased
Released in Dart 3.14

Use 'this' directly instead of assigning it to a local variable.

Details

#

DON'T assign this to a local variable to perform type promotion.

BAD:

dart
class C {
  void m() {
    var self = this;
    if (self is D) {}
  }
}
class D extends C {}

GOOD:

dart
class C {
  void m() {
    if (this is D) {}
  }
}
class D extends C {}

Enable

#

To enable the unnecessary_this_alias rule, add unnecessary_this_alias under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_this_alias

If you're instead using the YAML map syntax to configure linter rules, add unnecessary_this_alias: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_this_alias: true