Skip to content

Assertion failure in rewriter on 1.9.0+ #15261

Closed

Description

@bgilbert

Describe the bug
meson rewrite kwargs info project / asserts:

Traceback (most recent call last):
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/mesonmain.py", line 193, in run
    return options.run_func(options)
           ~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/rewriter.py", line 1180, in run
    raise e
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/rewriter.py", line 1150, in run
    rewriter.analyze_meson()
    ~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/rewriter.py", line 389, in analyze_meson
    self.interpreter.analyze()
    ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/introspection.py", line 346, in analyze
    self.run()
    ~~~~~~~~^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 178, in run
    self.evaluate_codeblock(self.ast, start=1)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 203, in evaluate_codeblock
    raise e
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 195, in evaluate_codeblock
    self.evaluate_statement(cur)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 767, in evaluate_statement
    return super().evaluate_statement(cur)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 209, in evaluate_statement
    return self.function_call(cur)
           ~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 770, in function_call
    ret = super().function_call(node)
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 536, in function_call
    res = func(node, func_args, kwargs)
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 690, in func_set_variable
    self.evaluate_statement(equiv)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 767, in evaluate_statement
    return super().evaluate_statement(cur)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 213, in evaluate_statement
    self.assignment(cur)
    ~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 656, in assignment
    self.evaluate_statement(node.value)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 767, in evaluate_statement
    return super().evaluate_statement(cur)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 215, in evaluate_statement
    return self.method_call(cur)
           ~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 305, in method_call
    (args, kwargs) = self.reduce_arguments(node.args)
                     ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 348, in reduce_arguments
    self.evaluate_statement(arg)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 767, in evaluate_statement
    return super().evaluate_statement(cur)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 215, in evaluate_statement
    return self.method_call(cur)
           ~~~~~~~~~~~~~~~~^^^^^
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 303, in method_call
    obj = self.node_to_runtime_value(invocable)
  File "/home/bgilbert/tmp/t/env/lib64/python3.14/site-packages/mesonbuild/ast/interpreter.py", line 556, in node_to_runtime_value
    assert len(self.dataflow_dag.tgt_to_srcs[node]) == 1
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

meson.build:4:54: ERROR: Unhandled python exception

    This is a Meson bug and should be reported!

This is a 1.9.0 regression and bisects to aef7c97. cc @Volker-Weissmann

To Reproduce

project('a', 'c', license: 'MIT')
set_variable(
  'z',
  '-Wl,--version-script,@0@/src/lib.sym'.format(meson.current_source_dir())
)

Expected behavior

{
  "kwargs": {
    "project#/": {
      "license": "MIT"
    }
  }
}

system parameters

  • Is this a cross build or just a plain native build (for the same computer)?
    native
  • what operating system (e.g. MacOS Catalina, Windows 10, CentOS 8.0, Ubuntu 18.04, etc.)
    Fedora 43
  • what Python version are you using e.g. 3.8.0
    3.14.0
  • what meson --version
    1.9.0
  • what ninja --version if it's a Ninja build
    1.13.1

Activity

  1. Volker-Weissmann commented on Nov 17, 2025

    @Volker-Weissmann
    Contributor

    Mine

  2. added this to the 1.9.2 milestone on Nov 17, 2025
  3. added 2 commits that reference this issue on Nov 19, 2025
    85b2e2b
    7c618da
  4. added a commit that references this issue on Nov 21, 2025
    03a0926
  5. added a commit that references this issue on Dec 2, 2025
    16c5a7e
  6. added a commit that references this issue on Jan 11, 2026
    11ebed1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions