diff options
-rw-r--r-- | mesonbuild/optinterpreter.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py index 72bf865..27bda2e 100644 --- a/mesonbuild/optinterpreter.py +++ b/mesonbuild/optinterpreter.py @@ -174,6 +174,13 @@ class OptionInterpreter: lr = [self.reduce_single(curarg) for curarg in arg.args.arguments] # mypy really struggles with recursive flattening, help it out return T.cast(T.Sequence[T.Union[str, int, bool]], lr) + elif isinstance(arg, mparser.DictNode): + d = {} + for k, v in arg.args.kwargs.items(): + if not isinstance(k, mparser.StringNode): + raise OptionException('Dictionary keys must be a string literal') + d[k.value] = self.reduce_single(v) + return d elif isinstance(arg, mparser.UMinusNode): res = self.reduce_single(arg.value) if not isinstance(res, (int, float)): |