avoid-unnecessary-super

Group
Style
Path
lint/style/avoid-unnecessary-super
Default
Off, opt in
Origin
Falcon
Rule
174 of 512

Omit implicit super() initializers and provably redundant member prefixes.

Member checks require a final class or enum without library-local subclasses, matching resolved read/write owners, and no shadowing lexical or library binding. Open classes retain super dispatch because future subclasses can override members. Constructor checks remain available without resolution.

Invalid

example.dartdart
class Parent { Parent(); }
class Child extends Parent {
  Child() :  super();
}
This empty `super()` call is implicit; remove the explicit initializer.
2class Child extends Parent {
3 Child() : super();

Valid

example.dartdart
class Parent {
  Parent();
  Parent.named();
  Parent.value(int value);
}
class Implicit extends Parent { Implicit(); }
class Named extends Parent { Named() : super.named(); }
class Argument extends Parent { Argument() : super.value(1); }

Configure avoid-unnecessary-super

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "avoid-unnecessary-super": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/avoid-unnecessary-super: <reason>