dispose-fields
added in: 1.3.0
warning
Warns when a widget state field is not disposed in dispose
method.
Not disposing fields that have a dispose
method might lead to memory leaks and should be avoided.
info
This rule will trigger for any field that has dispose
, close
or cancel
methods not called inside the widget's dispose
.
Example
❌ Bad:
class SomeDisposable implements Disposable {
void dispose() {}
}
class _ShinyWidgetState extends State<ShinyWidget> {
final _someDisposable = SomeDisposable();
final _anotherDisposable = SomeDisposable(); // LINT
void dispose() {
_someDisposable.dispose();
super.dispose();
}
}
✅ Good:
class SomeDisposable implements Disposable {
void dispose() {}
}
class _ShinyWidgetState extends State<ShinyWidget> {
final _someDisposable = SomeDisposable();
final _anotherDisposable = SomeDisposable();
void dispose() {
_someDisposable.dispose();
_anotherDisposable.dispose();
super.dispose();
}
}