Skip to main content

matching_super_parameters

Stable

Use matching super parameter names.

Details

#

DO use super parameter names that match their corresponding super constructor's parameter names.

BAD:

dart
class Rectangle {
  final int width;
  final int height;

  Rectangle(this.width, this.height);
}

class ColoredRectangle extends Rectangle {
  final Color color;

  ColoredRectangle(
    this.color,
    super.height, // Bad, actually corresponds to the `width` parameter.
    super.width, // Bad, actually corresponds to the `height` parameter.
  );
}

GOOD:

dart
class Rectangle {
  final int width;
  final int height;

  Rectangle(this.width, this.height);
}

class ColoredRectangle extends Rectangle {
  final Color color;

  ColoredRectangle(
    this.color,
    super.width,
    super.height,
  );
}

Enable

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - matching_super_parameters

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

analysis_options.yaml
yaml
linter:
  rules:
    matching_super_parameters: true