[commands] reset view when Optional argument encounters parsing error

This commit is contained in:
Sebastian Law 2021-08-19 16:56:28 -07:00 committed by GitHub
parent f3cb197429
commit 1d2eaf8526
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -564,7 +564,14 @@ class Command(_BaseCommand, Generic[CogT, P, T]):
if consume_rest_is_special:
argument = view.read_rest().strip()
else:
argument = view.get_quoted_word()
try:
argument = view.get_quoted_word()
except ArgumentParsingError as exc:
if self._is_typing_optional(param.annotation):
view.index = previous
return None
else:
raise exc
view.previous = previous
# type-checker fails to narrow argument