aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2022-07-08 09:41:04 -0700
committerEli Schwartz <eschwartz93@gmail.com>2023-01-03 14:49:02 -0500
commit76bead7e15f402cb385c2a21116d8facd0daad75 (patch)
treef6c194da6ab5497bcf93788454900a60d52aeae0 /mesonbuild
parent3e97a95f9dc974771823d5f4f3cedd66b4b05f5f (diff)
downloadmeson-76bead7e15f402cb385c2a21116d8facd0daad75.zip
meson-76bead7e15f402cb385c2a21116d8facd0daad75.tar.gz
meson-76bead7e15f402cb385c2a21116d8facd0daad75.tar.bz2
msetup: do some stupid casting to make mypy happy
mypy is pretty dumb when it comes to unions of callables (pylance is also dumb in this regard), and can't figure out that our use of `mlog.debug | mlog.log` is perfectly safe. We also can't annotate them properly to cast them to a valid subset of arguments because you can't have splats in `typing.Callable`, so I've done enough to make it work.
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/msetup.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py
index 43594dd..4b6d508 100644
--- a/mesonbuild/msetup.py
+++ b/mesonbuild/msetup.py
@@ -206,10 +206,11 @@ class MesonApp:
b = build.Build(env)
intr = interpreter.Interpreter(b, user_defined_options=user_defined_options)
- if env.is_cross_build():
- logger_fun = mlog.log
- else:
- logger_fun = mlog.debug
+ # Super hack because mlog.log and mlog.debug have different signatures,
+ # and there is currently no way to annotate them correctly, unionize them, or
+ # even to write `T.Callable[[*mlog.TV_Loggable], None]`
+ logger_fun = T.cast('T.Callable[[mlog.TV_Loggable, mlog.TV_Loggable], None]',
+ (mlog.log if env.is_cross_build() else mlog.debug))
build_machine = intr.builtin['build_machine']
host_machine = intr.builtin['host_machine']
target_machine = intr.builtin['target_machine']