diff options
| author | Benjamin Gilbert <bgilbert@backtick.net> | 2025-06-23 15:24:15 -0700 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-11-18 08:32:28 -0800 |
| commit | efb9c62a7e98b03f38c767c83c48db13f5a8cab8 (patch) | |
| tree | 1b0fab2a4f1ead0162d93d5f82c06a3d1d48f6dd /mesonbuild/rewriter.py | |
| parent | 4b7a494f8227aea2bb8acce8ab40d7d34734971a (diff) | |
| download | meson-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.py | 12 |
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 |
