[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

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