overridden_ fields
Learn about the overridden_fields linter rule.
Don't override fields.
Details
#DON'T override fields.
Overriding fields is almost always done unintentionally. Regardless, it is a bad practice to do so.
BAD:
class Base { Object field = 'lorem'; Object something = 'change'; } class Bad1 extends Base { @override final field = 'ipsum'; // LINT } class Bad2 extends Base { @override Object something = 'done'; // LINT } GOOD:
class Base { Object field = 'lorem'; Object something = 'change'; } class Ok extends Base { Object newField; // OK final Object newFinal = 'ignore'; // OK } GOOD:
abstract class BaseLoggingHandler { Base transformer; } class LogPrintHandler implements BaseLoggingHandler { @override Derived transformer; // OK }
Enable
# To enable the overridden_fields rule, add overridden_fields under linter > rules in your analysis_options.yaml file:
linter: rules: - overridden_fields If you're instead using the YAML map syntax to configure linter rules, add overridden_fields: true under linter > rules:
linter: rules: overridden_fields: true Unless stated otherwise, the documentation on this site reflects Dart 3.10.3. Report an issue.