require-super-dispose
- Group
- Correctness
- Path
lint/correctness/require-super-dispose- Default
- On (recommended)
- Origin
- Falcon
- Domain
- flutter
- Rule
- 430 of 512
Require super.dispose() in Flutter State dispose overrides. Presence is checked separately from the ordering rule; nested callbacks do not count.
Invalid
import 'package:flutter/material.dart';
class S0 extends State<StatefulWidget> { void dispose() {} }
class S1 extends State<StatefulWidget> { void dispose() => cleanup(); }
class S2 extends State<StatefulWidget> { void dispose() { cleanup(); } }
class S3 extends State<StatefulWidget> { void dispose() { return; } }
class S4 extends State<StatefulWidget> { void dispose() { try { cleanup(); } finally { cleanup(); } } }import 'package:flutter/material.dart';class S0 extends State<StatefulWidget> { void dispose() {} }class S0 extends State<StatefulWidget> { void dispose() {} }class S1 extends State<StatefulWidget> { void dispose() => cleanup(); }class S1 extends State<StatefulWidget> { void dispose() => cleanup(); }class S2 extends State<StatefulWidget> { void dispose() { cleanup(); } }class S2 extends State<StatefulWidget> { void dispose() { cleanup(); } }class S3 extends State<StatefulWidget> { void dispose() { return; } }class S3 extends State<StatefulWidget> { void dispose() { return; } }class S4 extends State<StatefulWidget> { void dispose() { try { cleanup(); } finally { cleanup(); } } }Valid
import 'package:flutter/material.dart';
class S0 extends State<StatefulWidget> { void dispose() { super.dispose(); } }
class S1 extends State<StatefulWidget> { void dispose() => super.dispose(); }
class S2 extends State<StatefulWidget> { void dispose() { cleanup(); super.dispose(); } }
class S3 extends State<StatefulWidget> { void dispose() { try { cleanup(); } finally { super.dispose(); } } }
class Other { void dispose() {} }Configure require-super-dispose
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"correctness": {
"require-super-dispose": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/correctness/require-super-dispose: <reason>More correctness rules
- sort-pub-dependencies
sort_pub_dependenciescross-fileRequire
pubspec.yamldependency sections to be sorted alphabetically. - test-types-in-equals
test_types_in_equalsrecommendedFlags casting the parameter of
operator ==instead of testing its type. - throw-in-finally
throw_in_finallyrecommendedFlags
throwinside afinallyblock. - type-literal-in-constant-pattern
type_literal_in_constant_patternrecommendedDon't use constant patterns whose expressions have the core
Typetype. - undeclared-dependenciescross-file
Report package imports and exports missing from the enclosing pubspec.
- unnecessary-flutter-importsrecommendedflutter
Disallow unused Flutter framework and
dart:asyncimports. - unnecessary-nullable
check-unnecessary-nullablecross-fileFlags private function or method parameters whose nullable type is unnecessary.
- unnecessary-nullable-return-type
unnecessary_nullable_return_typeDisallow nullable return types on functions that never return null.