dispose method
Called on ProviderContainer.dispose.
Implementation
@protected
@mustCallSuper
void dispose() {
assert(
_mounted || _debugDidChangeDependency,
'$provider was disposed twice',
);
assert(() {
RiverpodBinding.debugInstance
.providerListChangedFor(containerId: container._debugId);
return true;
}(), '');
_mounted = false;
_runOnDispose();
// TODO test [listen] calls are cleared
for (final sub in _dependencies.entries) {
sub.key._dependents.remove(this);
sub.key.mayNeedDispose();
}
_dependencies.clear();
for (final observer in _container._observers) {
_runBinaryGuarded(
observer.didDisposeProvider,
_origin,
_container,
);
}
_listeners.clear();
}