aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase/interpreterbase.py
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-02-10 21:39:50 -0500
committerEli Schwartz <eschwartz@archlinux.org>2022-02-14 20:40:41 -0500
commitc0b8e02d9fb1b58551b18e68ae188263dd90eb4c (patch)
treeac67d9907a21c04308b33f9a6889b88dad735de7 /mesonbuild/interpreterbase/interpreterbase.py
parentbab651a7a03b48ff909a49eabe2dbcef0e821496 (diff)
downloadmeson-c0b8e02d9fb1b58551b18e68ae188263dd90eb4c.zip
meson-c0b8e02d9fb1b58551b18e68ae188263dd90eb4c.tar.gz
meson-c0b8e02d9fb1b58551b18e68ae188263dd90eb4c.tar.bz2
FeatureNew: add mypy type annotations for subproject arg
Use a derived type when passing `subproject` around, so that mypy knows it's actually a SubProject, not a str. This means that passing anything other than a handle to the interpreter state's subproject attribute becomes a type violation, specifically when the order of the *four* different str arguments is typoed.
Diffstat (limited to 'mesonbuild/interpreterbase/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase/interpreterbase.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/mesonbuild/interpreterbase/interpreterbase.py b/mesonbuild/interpreterbase/interpreterbase.py
index 99f6619..bd7d7f9 100644
--- a/mesonbuild/interpreterbase/interpreterbase.py
+++ b/mesonbuild/interpreterbase/interpreterbase.py
@@ -26,6 +26,8 @@ from .baseobjects import (
ObjectHolder,
IterableObject,
+ SubProject,
+
TYPE_var,
TYPE_kwargs,
@@ -73,7 +75,7 @@ FunctionType = T.Dict[
]
class InterpreterBase:
- def __init__(self, source_root: str, subdir: str, subproject: str):
+ def __init__(self, source_root: str, subdir: str, subproject: 'SubProject'):
self.source_root = source_root
self.funcs: FunctionType = {}
self.builtin: T.Dict[str, InterpreterObject] = {}