Skip to content

__replace__ on manually created AST objects has too many required arguments #133783

Open
@JelleZijlstra

Description

@JelleZijlstra

Bug report

Bug description:

This should work but doesn't:

>>> fd=ast.FunctionDef(name="hi", args=[])
>>> fd
FunctionDef(name='hi', args=[], body=[], decorator_list=[], returns=None, type_comment=None, type_params=[])
>>> fd.__replace__()
Traceback (most recent call last):
  File "<python-input-16>", line 1, in <module>
    fd.__replace__()
    ~~~~~~~~~~~~~~^^
TypeError: FunctionDef.__replace__ missing 2 keyword arguments: 'returns', 'type_comment'.

cc @srittau

CPython versions tested on:

3.14

Operating systems tested on:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.14bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions