overridden-fields
Same as overridden_fields in Dart lints
- Group
- Suspicious
- Path
lint/suspicious/overridden-fields- Default
- On (recommended)
- Origin
- Dart lints
- Rule
- 306 of 512
Flags instance fields that redeclare an inherited field.
A field is reported when its inherited concrete super implementation is a
field — the first concrete getter-providing member of the superclass chain
and mixin applications, or for a mixin the member of its on types'
interfaces (Object without one). Fields reached only through implements,
abstract members of superclasses, and fields shadowed by a nearer getter or
method are not reported; covariance does not matter. Extension types
inherit no concrete members.
Declaring var/final primary constructor parameters are instance fields
too; forwarding formals and ordinary header parameters are not declarations.
Invalid
class Base { int value = 0; }
class Child extends Base {
int value = 1;
}
mixin class Mixed { final int mixed = 0; }
class FromMixin with Mixed {
final int mixed = 1;
}
class Covariant { covariant num value = 0; }
class FromCovariant extends Covariant {
int value = 1;
}class Child extends Base { int value = 1;class FromMixin with Mixed { final int mixed = 1;class FromCovariant extends Covariant { int value = 1;Valid
abstract class Base { covariant num value; }
class Child implements Base { int value = 1; }
class Other extends Base { int another = 0; }
class InterfaceField { final int viaInterface = 0; }
class Implementer implements InterfaceField {
@override
final int viaInterface = 1;
}
abstract class AbstractField { abstract final int declared; }
mixin AbstractFieldMixin on Object { abstract final int fromMixin; }
class Concrete extends AbstractField with AbstractFieldMixin {
@override
final int declared = 1;
@override
final int fromMixin = 2;
}
class FieldBase { final int shadowed = 0; }
class GetterMiddle extends FieldBase {
@override
int get shadowed => 1;
}
class ShadowedByGetter extends GetterMiddle {
@override
final int shadowed = 2;
}Configure overridden-fields
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"suspicious": {
"overridden-fields": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/suspicious/overridden-fields: <reason>More suspicious rules
- prefer-unique-test-namestest
Reports duplicate test descriptions within a group and constant names in loops.
- recursive-getters
recursive_gettersrecommendedFlags a getter that unconditionally returns itself.
- unnecessary-null-aware-assignments
unnecessary_null_aware_assignmentsrecommendedFlags
x ??= null, which can never have an effect. - unnecessary-null-in-if-null-operators
unnecessary_null_in_if_null_operatorsrecommendedFlags
x ?? nullandnull ?? x, where thenulloperand is redundant. - use-rethrow-when-possible
use_rethrow_when_possiblerecommendedFlags
throw einside acatch (e)by matching the exception parameter's name. - avoid-accessing-other-classes-private-members
Enforces class-level encapsulation even inside one Dart library.
- avoid-assignments-as-conditions
Flags assignments evaluated inside control-flow conditions.
- avoid-banned-annotations
Ban configured dotted annotation names, without the leading
@.