Skip to main content

overridden_fields

Learn about the overridden_fields linter rule.

Stable
Recommended

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:

dart
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:

dart
class Base {  Object field = 'lorem';   Object something = 'change'; }  class Ok extends Base {  Object newField; // OK   final Object newFinal = 'ignore'; // OK } 

GOOD:

dart
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:

analysis_options.yaml
yaml
linter:  rules:  - overridden_fields 

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

analysis_options.yaml
yaml
linter:  rules:  overridden_fields: true