1010from pegen .tokenizer import Mark , Tokenizer , exact_token_types
1111
1212T = TypeVar ("T" )
13- P = TypeVar ("P" , bound = "Parser" )
1413F = TypeVar ("F" , bound = Callable [..., Any ])
1514
1615
@@ -21,7 +20,7 @@ def logger(method: F) -> F:
2120 """
2221 method_name = method .__name__
2322
24- def logger_wrapper (self : P , * args : object ) -> T :
23+ def logger_wrapper (self : "Parser" , * args : object ) -> Any :
2524 if not self ._verbose :
2625 return method (self , * args )
2726 argsr = "," .join (repr (arg ) for arg in args )
@@ -41,7 +40,7 @@ def memoize(method: F) -> F:
4140 """Memoize a symbol method."""
4241 method_name = method .__name__
4342
44- def memoize_wrapper (self : P , * args : object ) -> T :
43+ def memoize_wrapper (self : "Parser" , * args : object ) -> Any :
4544 mark = self ._mark ()
4645 key = mark , method_name , args
4746 # Fast path: cache hit, and not verbose.
@@ -74,11 +73,13 @@ def memoize_wrapper(self: P, *args: object) -> T:
7473 return cast (F , memoize_wrapper )
7574
7675
77- def memoize_left_rec (method : Callable [[P ], Optional [T ]]) -> Callable [[P ], Optional [T ]]:
76+ def memoize_left_rec (
77+ method : Callable [["Parser" ], Optional [T ]]
78+ ) -> Callable [["Parser" ], Optional [T ]]:
7879 """Memoize a left-recursive symbol method."""
7980 method_name = method .__name__
8081
81- def memoize_left_rec_wrapper (self : P ) -> Optional [T ]:
82+ def memoize_left_rec_wrapper (self : "Parser" ) -> Optional [T ]:
8283 mark = self ._mark ()
8384 key = mark , method_name , ()
8485 # Fast path: cache hit, and not verbose.
0 commit comments