]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-131421: Fix ASDL kw_defaults being `expr*` instead of `expr?*` (GH-133773...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 29 Dec 2025 12:09:11 +0000 (13:09 +0100)
committerGitHub <noreply@github.com>
Mon, 29 Dec 2025 12:09:11 +0000 (12:09 +0000)
Also fix docs ASDL highlighting.
(cherry picked from commit f37f57dfe683163f390ef589301e4dd4608c4288)

Co-authored-by: Samuel <samuel@knutsen.co>
Doc/tools/extensions/lexers/asdl_lexer.py
Parser/Python.asdl
Python/Python-ast.c

index 3a74174a1f7dfb4560c6df8c521661a8418ebc0b..548ce1271a1db83ea3b1942a0347830ef59f9e06 100644 (file)
@@ -22,7 +22,7 @@ class ASDLLexer(RegexLexer):
                 bygroups(Keyword, Text, Name.Tag),
             ),
             (
-                r"(\w+)(\*\s|\?\s|\s)(\w+)",
+                r"(\w+)([\?\*]*\s)(\w+)",
                 bygroups(Name.Builtin.Pseudo, Operator, Name),
             ),
             # Keep in line with ``builtin_types`` from Parser/asdl.py.
index 96f3914b029d4c7a50b96b6ce90dbedbc426e459..9c7529c479916d0d5fb9a1c439c9f65375ad1629 100644 (file)
@@ -114,7 +114,7 @@ module Python
                     attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
 
     arguments = (arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs,
-                 expr* kw_defaults, arg? kwarg, expr* defaults)
+                 expr?* kw_defaults, arg? kwarg, expr* defaults)
 
     arg = (identifier arg, expr? annotation, string? type_comment)
            attributes (int lineno, int col_offset, int? end_lineno, int? end_col_offset)
index aac24ed7d3c0c5b73ba081f589f81e285139d64e..79608dee9bfac224b4ef98d92732486eb4ae4f68 100644 (file)
@@ -6813,7 +6813,7 @@ init_types(void *arg)
         return -1;
     state->arguments_type = make_type(state, "arguments", state->AST_type,
                                       arguments_fields, 7,
-        "arguments(arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs, expr* kw_defaults, arg? kwarg, expr* defaults)");
+        "arguments(arg* posonlyargs, arg* args, arg? vararg, arg* kwonlyargs, expr?* kw_defaults, arg? kwarg, expr* defaults)");
     if (!state->arguments_type) return -1;
     if (add_attributes(state, state->arguments_type, NULL, 0) < 0) return -1;
     if (PyObject_SetAttr(state->arguments_type, state->vararg, Py_None) == -1)