avoid-suspicious-super-overrides
- Group
- Suspicious
- Path
lint/suspicious/avoid-suspicious-super-overrides- Default
- Off, opt in
- Origin
- Falcon
- Rule
- 144 of 512
Finds getters hiding fields supplied via the immediate super constructor's
this. formals or declaring primary-constructor parameters.
Initializer-list assignments and forwarding through intermediate classes are not tracked.
Invalid
class Base {
final String issueType;
const Base({required this.issueType});
const Base.named(this.issueType);
}
class Child extends Base {
Child() : super(issueType: 'promotion');
@override
String get issueType => 'hidden';
}
class Positional extends Base {
Positional() : super.named('promotion');
@override
String get issueType => 'hidden';
}
class Forwarded extends Base {
Forwarded({required super.issueType});
@override
String get issueType => 'hidden';
}
class PositionalForwarded extends Base {
PositionalForwarded(super.issueType) : super.named();
@override
String get issueType => 'hidden';
} @override String get issueType => 'hidden'; @override String get issueType => 'hidden'; @override String get issueType => 'hidden'; @override String get issueType => 'hidden';Valid
class Base {
final String issueType;
const Base({required this.issueType});
}
class NoOverride extends Base {
NoOverride() : super(issueType: 'promotion');
}
class UsesSuper extends Base {
UsesSuper() : super(issueType: 'promotion');
@override
String get issueType => '${super.issueType}: detail';
}
class DefaultBase {
final String issueType;
DefaultBase({this.issueType = 'default'});
}
class NoPassedValue extends DefaultBase {
@override
String get issueType => 'different';
}
class GetterBase {
GetterBase({required String issueType});
String get issueType => 'base';
}
class OverridesGetter extends GetterBase {
OverridesGetter() : super(issueType: 'promotion');
@override
String get issueType => 'child';
}
class UnrelatedParameterBase {
final String issueType = 'stored';
UnrelatedParameterBase({required String issueType});
}
class UnrelatedParameter extends UnrelatedParameterBase {
UnrelatedParameter() : super(issueType: 'not stored');
@override
String get issueType => 'child';
}
class MixedBase {
final int count;
final String issueType;
MixedBase(this.count, {this.issueType = 'default'});
}
class PositionalNameOnly extends MixedBase {
PositionalNameOnly(super.issueType);
@override
String get issueType => 'hidden';
}
class InitializedBase {
final String issueType;
InitializedBase(String issueType) : issueType = issueType;
}
class InitializedChild extends InitializedBase {
InitializedChild() : super('promotion');
@override
String get issueType => 'hidden';
}
class Intermediate extends Base {
Intermediate({required super.issueType});
}
class IndirectChild extends Intermediate {
IndirectChild() : super(issueType: 'promotion');
@override
String get issueType => 'hidden';
}Configure avoid-suspicious-super-overrides
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"suspicious": {
"avoid-suspicious-super-overrides": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/suspicious/avoid-suspicious-super-overrides: <reason>More suspicious rules
- avoid-throw-in-catch-block
avoid-throw-in-catch-blockFlags
throwstatements inside acatchblock. - avoid-top-level-members-in-teststest
Requires public declarations in test files, except main, to be private.
- avoid-types-as-parameter-names
avoid_types_as_parameter_namesrecommendedFlags implicit formal parameters, catch variables, and type parameters that shadow a type in their enclosing scope.
- avoid-unrelated-type-assertions
avoid-unrelated-type-assertionsrecommendedFlags an
ischeck proven impossible by canonical resolved types. - banned-usage
Ban resolved API references, not identifiers that merely share their spelling.
- cascade-after-null-coalescing
Flags a cascade after an unparenthesized null-coalescing expression.
- control-flow-in-finally
control_flow_in_finallyrecommendedFlags
return,break, orcontinuethat escapes afinallyblock. - empty-catches
empty_catchesrecommendedFlags empty
catchblocks.