summaryrefslogtreecommitdiff
path: root/mesonbuild/rewriter.py
diff options
context:
space:
mode:
authorBenjamin Gilbert <bgilbert@backtick.net>2025-06-23 15:24:15 -0700
committerDylan Baker <dylan@pnwbakers.com>2025-11-18 08:32:28 -0800
commitefb9c62a7e98b03f38c767c83c48db13f5a8cab8 (patch)
tree1b0fab2a4f1ead0162d93d5f82c06a3d1d48f6dd /mesonbuild/rewriter.py
parent4b7a494f8227aea2bb8acce8ab40d7d34734971a (diff)
downloadmeson-efb9c62a7e98b03f38c767c83c48db13f5a8cab8.tar.gz
rewriter: fix kwargs info for dict-valued kwargs
We can't modify dict-valued kwargs (#14739) but this lets us at least read them.
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r--mesonbuild/rewriter.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py
index 33baefdb3..4a237bd7b 100644
--- a/mesonbuild/rewriter.py
+++ b/mesonbuild/rewriter.py
@@ -16,7 +16,7 @@ from .interpreterbase.helpers import flatten
from mesonbuild.mesonlib import MesonException, setup_vsenv, relpath
from . import mlog, environment
from functools import wraps
-from .mparser import Token, ArrayNode, ArgumentNode, ArithmeticNode, AssignmentNode, BaseNode, StringNode, BooleanNode, ElementaryNode, IdNode, FunctionNode, PlusAssignmentNode
+from .mparser import Token, ArrayNode, ArgumentNode, ArithmeticNode, AssignmentNode, BaseNode, StringNode, BooleanNode, DictNode, ElementaryNode, IdNode, FunctionNode, PlusAssignmentNode
from .mintro import IntrospectionEncoder
import json, os, re, sys, codecs
import typing as T
@@ -569,6 +569,16 @@ class Rewriter:
element = i.value
data_list += [element]
info_data[key] = data_list
+ elif isinstance(val, DictNode):
+ data_dict = {}
+ for k, v in val.args.kwargs.items():
+ if not isinstance(k, StringNode):
+ continue
+ value = None
+ if isinstance(v, ElementaryNode):
+ value = v.value
+ data_dict[k.value] = value
+ info_data[key] = data_dict
self.add_info('kwargs', '{}#{}'.format(cmd['function'], cmd['id']), info_data)
return # Nothing else to do