dispose method
Implementation
@protected
void dispose() {
assert(!_transitionCompleter.isCompleted,
'Cannot dispose a $runtimeType twice.');
dismissInternal();
for (OverlayEntry entry in _overlayEntries) entry.remove();
_overlayEntries.clear();
_controller.dispose();
_transitionCompleter.complete(_result);
}