mirror of
https://gitlab.com/qemu-project/meson.git
synced 2025-09-16 14:41:54 +08:00
mesonbuild/ast: make mypy safe
This commit is contained in:

committed by
Dylan Baker

parent
aef7c97bc1
commit
9606a4b44a
@ -54,9 +54,10 @@ from ..mparser import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
if T.TYPE_CHECKING:
|
if T.TYPE_CHECKING:
|
||||||
|
from pathlib import Path
|
||||||
from .visitor import AstVisitor
|
from .visitor import AstVisitor
|
||||||
from ..interpreter import Interpreter
|
from ..interpreter import Interpreter
|
||||||
from ..interpreterbase import SubProject, TYPE_nkwargs, TYPE_var, TYPE_nvar
|
from ..interpreterbase import SubProject, TYPE_var, TYPE_nvar
|
||||||
from ..mparser import (
|
from ..mparser import (
|
||||||
AndNode,
|
AndNode,
|
||||||
ComparisonNode,
|
ComparisonNode,
|
||||||
@ -246,10 +247,10 @@ class AstInterpreter(InterpreterBase):
|
|||||||
'debug': self.func_do_nothing,
|
'debug': self.func_do_nothing,
|
||||||
})
|
})
|
||||||
|
|
||||||
def _unholder_args(self, args: _T, kwargs: _V) -> T.Tuple[_T, _V]:
|
def _unholder_args(self, args: T.Any, kwargs: T.Any) -> T.Tuple[T.Any, T.Any]:
|
||||||
return args, kwargs
|
return args, kwargs
|
||||||
|
|
||||||
def _holderify(self, res: _T) -> _T:
|
def _holderify(self, res: T.Any) -> T.Any:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def func_do_nothing(self, node: BaseNode, args: T.List[TYPE_var], kwargs: T.Dict[str, TYPE_var]) -> UnknownValue:
|
def func_do_nothing(self, node: BaseNode, args: T.List[TYPE_var], kwargs: T.Dict[str, TYPE_var]) -> UnknownValue:
|
||||||
@ -340,13 +341,13 @@ class AstInterpreter(InterpreterBase):
|
|||||||
args: mparser.ArgumentNode,
|
args: mparser.ArgumentNode,
|
||||||
key_resolver: T.Callable[[mparser.BaseNode], str] = default_resolve_key,
|
key_resolver: T.Callable[[mparser.BaseNode], str] = default_resolve_key,
|
||||||
duplicate_key_error: T.Optional[str] = None,
|
duplicate_key_error: T.Optional[str] = None,
|
||||||
) -> T.Tuple[T.List[TYPE_var], TYPE_nkwargs]:
|
) -> T.Tuple[T.List[T.Any], T.Any]:
|
||||||
for arg in args.arguments:
|
for arg in args.arguments:
|
||||||
self.evaluate_statement(arg)
|
self.evaluate_statement(arg)
|
||||||
for value in args.kwargs.values():
|
for value in args.kwargs.values():
|
||||||
self.evaluate_statement(value)
|
self.evaluate_statement(value)
|
||||||
if isinstance(args, ArgumentNode):
|
if isinstance(args, ArgumentNode):
|
||||||
kwargs: T.Dict[str, TYPE_var] = {}
|
kwargs = {}
|
||||||
for key, val in args.kwargs.items():
|
for key, val in args.kwargs.items():
|
||||||
kwargs[key_resolver(key)] = val
|
kwargs[key_resolver(key)] = val
|
||||||
if args.incorrect_order():
|
if args.incorrect_order():
|
||||||
@ -497,9 +498,6 @@ class AstInterpreter(InterpreterBase):
|
|||||||
assert ret is not None
|
assert ret is not None
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def get_variable(self, varname: str) -> int:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
# The function `node_to_runtime_value` takes a node of the ast as an
|
# The function `node_to_runtime_value` takes a node of the ast as an
|
||||||
# argument and tries to return the same thing that would be passed to e.g.
|
# argument and tries to return the same thing that would be passed to e.g.
|
||||||
# `func_message` if you put `message(node)` in your `meson.build` file and
|
# `func_message` if you put `message(node)` in your `meson.build` file and
|
||||||
|
@ -13,7 +13,7 @@ from mesonbuild.mesonlib import version_compare
|
|||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
# fully typed submodules
|
# fully typed submodules
|
||||||
# 'mesonbuild/ast/',
|
'mesonbuild/ast/',
|
||||||
'mesonbuild/cargo/',
|
'mesonbuild/cargo/',
|
||||||
'mesonbuild/cmake/',
|
'mesonbuild/cmake/',
|
||||||
'mesonbuild/compilers/',
|
'mesonbuild/compilers/',
|
||||||
@ -26,10 +26,6 @@ modules = [
|
|||||||
'mesonbuild/wrap/',
|
'mesonbuild/wrap/',
|
||||||
|
|
||||||
# specific files
|
# specific files
|
||||||
'mesonbuild/ast/introspection.py',
|
|
||||||
'mesonbuild/ast/printer.py',
|
|
||||||
'mesonbuild/ast/postprocess.py',
|
|
||||||
'mesonbuild/ast/visitor.py',
|
|
||||||
'mesonbuild/arglist.py',
|
'mesonbuild/arglist.py',
|
||||||
'mesonbuild/backend/backends.py',
|
'mesonbuild/backend/backends.py',
|
||||||
'mesonbuild/backend/nonebackend.py',
|
'mesonbuild/backend/nonebackend.py',
|
||||||
|
Reference in New Issue
Block a user