diff options
Diffstat (limited to 'Tools/peg_generator/pegen/parser.py')
-rw-r--r-- | Tools/peg_generator/pegen/parser.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Tools/peg_generator/pegen/parser.py b/Tools/peg_generator/pegen/parser.py index 034e8e6..eab48ef 100644 --- a/Tools/peg_generator/pegen/parser.py +++ b/Tools/peg_generator/pegen/parser.py @@ -10,7 +10,6 @@ from typing import Any, Callable, ClassVar, Dict, Optional, Tuple, Type, TypeVar from pegen.tokenizer import Mark, Tokenizer, exact_token_types T = TypeVar("T") -P = TypeVar("P", bound="Parser") F = TypeVar("F", bound=Callable[..., Any]) @@ -21,7 +20,7 @@ def logger(method: F) -> F: """ method_name = method.__name__ - def logger_wrapper(self: P, *args: object) -> T: + def logger_wrapper(self: "Parser", *args: object) -> Any: if not self._verbose: return method(self, *args) argsr = ",".join(repr(arg) for arg in args) @@ -41,7 +40,7 @@ def memoize(method: F) -> F: """Memoize a symbol method.""" method_name = method.__name__ - def memoize_wrapper(self: P, *args: object) -> T: + def memoize_wrapper(self: "Parser", *args: object) -> Any: mark = self._mark() key = mark, method_name, args # Fast path: cache hit, and not verbose. @@ -74,11 +73,13 @@ def memoize(method: F) -> F: return cast(F, memoize_wrapper) -def memoize_left_rec(method: Callable[[P], Optional[T]]) -> Callable[[P], Optional[T]]: +def memoize_left_rec( + method: Callable[["Parser"], Optional[T]] +) -> Callable[["Parser"], Optional[T]]: """Memoize a left-recursive symbol method.""" method_name = method.__name__ - def memoize_left_rec_wrapper(self: P) -> Optional[T]: + def memoize_left_rec_wrapper(self: "Parser") -> Optional[T]: mark = self._mark() key = mark, method_name, () # Fast path: cache hit, and not verbose. |