| @@ -334,7 +334,7 @@ class Parser: | |||||
| def __init__(self, fn: (types.FunctionType, types.MethodType), parse_method=None) -> None: | def __init__(self, fn: (types.FunctionType, types.MethodType), parse_method=None) -> None: | ||||
| self.fn = fn | self.fn = fn | ||||
| self.parse_method = parse_method | self.parse_method = parse_method | ||||
| _, self.line_offset = inspect.getsourcelines(self.fn) | |||||
| self.line_offset = 0 | |||||
| self.filename: str = inspect.getfile(self.fn) | self.filename: str = inspect.getfile(self.fn) | ||||
| # Used to resolve the function's globals Namespace. | # Used to resolve the function's globals Namespace. | ||||
| @@ -350,7 +350,8 @@ class Parser: | |||||
| logger.debug("fn = %r", self.fn) | logger.debug("fn = %r", self.fn) | ||||
| tree = None | tree = None | ||||
| if isinstance(self.fn, (types.FunctionType, types.MethodType)): | if isinstance(self.fn, (types.FunctionType, types.MethodType)): | ||||
| original_src = inspect.getsource(self.fn) | |||||
| lines, self.line_offset = inspect.getsourcelines(self.fn) | |||||
| original_src = ''.join(lines) | |||||
| hexstr = hashlib.sha256(original_src.encode()).hexdigest() | hexstr = hashlib.sha256(original_src.encode()).hexdigest() | ||||
| tree = Parser.ast_cache.get(hexstr) | tree = Parser.ast_cache.get(hexstr) | ||||
| if not tree: | if not tree: | ||||