mirror of https://github.com/python/cpython
gh-122943: Remove the object converter for var-positional parameter (GH-126560)
This commit is contained in:
parent
c222441fa7
commit
06a8b0bb5e
|
@ -4135,7 +4135,7 @@ test_vararg_and_posonly
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
|
@ -4176,7 +4176,7 @@ exit:
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
test_vararg_and_posonly_impl(PyObject *module, PyObject *a, PyObject *args)
|
test_vararg_and_posonly_impl(PyObject *module, PyObject *a, PyObject *args)
|
||||||
/*[clinic end generated code: output=0c11c475e240869e input=9cfa748bbff09877]*/
|
/*[clinic end generated code: output=0c11c475e240869e input=2c49a482f68545c0]*/
|
||||||
|
|
||||||
PyDoc_STRVAR(test_vararg_and_posonly__doc__,
|
PyDoc_STRVAR(test_vararg_and_posonly__doc__,
|
||||||
"test_vararg_and_posonly($module, a, /, *args)\n"
|
"test_vararg_and_posonly($module, a, /, *args)\n"
|
||||||
|
@ -4221,7 +4221,7 @@ test_vararg
|
||||||
|
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
|
@ -4292,14 +4292,14 @@ exit:
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
test_vararg_impl(PyObject *module, PyObject *a, PyObject *args)
|
test_vararg_impl(PyObject *module, PyObject *a, PyObject *args)
|
||||||
/*[clinic end generated code: output=e7d7da6a7e008125 input=81d33815ad1bae6e]*/
|
/*[clinic end generated code: output=e7d7da6a7e008125 input=7448995636d9186a]*/
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
test_vararg_with_default
|
test_vararg_with_default
|
||||||
|
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
*args: object
|
*args: tuple
|
||||||
b: bool = False
|
b: bool = False
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
@ -4383,13 +4383,13 @@ exit:
|
||||||
static PyObject *
|
static PyObject *
|
||||||
test_vararg_with_default_impl(PyObject *module, PyObject *a, PyObject *args,
|
test_vararg_with_default_impl(PyObject *module, PyObject *a, PyObject *args,
|
||||||
int b)
|
int b)
|
||||||
/*[clinic end generated code: output=46781f9920ecedcf input=6e110b54acd9b22d]*/
|
/*[clinic end generated code: output=46781f9920ecedcf input=3a0f9f557ce1f712]*/
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
test_vararg_with_only_defaults
|
test_vararg_with_only_defaults
|
||||||
|
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
b: bool = False
|
b: bool = False
|
||||||
c: object = ' '
|
c: object = ' '
|
||||||
|
|
||||||
|
@ -4477,7 +4477,7 @@ exit:
|
||||||
static PyObject *
|
static PyObject *
|
||||||
test_vararg_with_only_defaults_impl(PyObject *module, PyObject *args, int b,
|
test_vararg_with_only_defaults_impl(PyObject *module, PyObject *args, int b,
|
||||||
PyObject *c)
|
PyObject *c)
|
||||||
/*[clinic end generated code: output=d03daf5067039c03 input=fa56a709a035666e]*/
|
/*[clinic end generated code: output=d03daf5067039c03 input=6983e66817f82924]*/
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
test_paramname_module
|
test_paramname_module
|
||||||
|
@ -4978,7 +4978,7 @@ Test_an_metho_arg_named_arg_impl(TestObj *self, int arg)
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
Test.__init__
|
Test.__init__
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
Varargs init method. For example, nargs is translated to PyTuple_GET_SIZE.
|
Varargs init method. For example, nargs is translated to PyTuple_GET_SIZE.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
@ -5016,7 +5016,7 @@ exit:
|
||||||
|
|
||||||
static int
|
static int
|
||||||
Test___init___impl(TestObj *self, PyObject *args)
|
Test___init___impl(TestObj *self, PyObject *args)
|
||||||
/*[clinic end generated code: output=f172425cec373cd6 input=2a8bd0033c9ac772]*/
|
/*[clinic end generated code: output=f172425cec373cd6 input=4b8388c4e6baab6f]*/
|
||||||
|
|
||||||
PyDoc_STRVAR(Test___init____doc__,
|
PyDoc_STRVAR(Test___init____doc__,
|
||||||
"Test(*args)\n"
|
"Test(*args)\n"
|
||||||
|
@ -5054,7 +5054,7 @@ exit:
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
@classmethod
|
@classmethod
|
||||||
Test.__new__
|
Test.__new__
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
Varargs new method. For example, nargs is translated to PyTuple_GET_SIZE.
|
Varargs new method. For example, nargs is translated to PyTuple_GET_SIZE.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
@ -5091,7 +5091,7 @@ exit:
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
Test_impl(PyTypeObject *type, PyObject *args)
|
Test_impl(PyTypeObject *type, PyObject *args)
|
||||||
/*[clinic end generated code: output=ee1e8892a67abd4a input=70ad829df3dd9b84]*/
|
/*[clinic end generated code: output=ee1e8892a67abd4a input=a8259521129cad20]*/
|
||||||
|
|
||||||
PyDoc_STRVAR(Test__doc__,
|
PyDoc_STRVAR(Test__doc__,
|
||||||
"Test(*args)\n"
|
"Test(*args)\n"
|
||||||
|
|
|
@ -338,7 +338,7 @@ class ClinicWholeFileTest(TestCase):
|
||||||
my_test_func
|
my_test_func
|
||||||
|
|
||||||
pos_arg: object
|
pos_arg: object
|
||||||
*args: object
|
*args: tuple
|
||||||
*
|
*
|
||||||
kw_arg: object
|
kw_arg: object
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
@ -353,7 +353,7 @@ class ClinicWholeFileTest(TestCase):
|
||||||
|
|
||||||
pos_arg: object
|
pos_arg: object
|
||||||
*
|
*
|
||||||
*args: object
|
*args: tuple
|
||||||
kw_arg: object
|
kw_arg: object
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
"""
|
"""
|
||||||
|
@ -1816,7 +1816,7 @@ class ClinicParserTest(TestCase):
|
||||||
foo.bar
|
foo.bar
|
||||||
a: int
|
a: int
|
||||||
* [from 3.14]
|
* [from 3.14]
|
||||||
*args: object
|
*args: tuple
|
||||||
b: int
|
b: int
|
||||||
Docstring.
|
Docstring.
|
||||||
"""
|
"""
|
||||||
|
@ -1844,7 +1844,7 @@ class ClinicParserTest(TestCase):
|
||||||
module foo
|
module foo
|
||||||
foo.bar
|
foo.bar
|
||||||
a: int
|
a: int
|
||||||
*args: object
|
*args: tuple
|
||||||
* [from 3.14]
|
* [from 3.14]
|
||||||
b: int
|
b: int
|
||||||
Docstring.
|
Docstring.
|
||||||
|
@ -1980,7 +1980,7 @@ class ClinicParserTest(TestCase):
|
||||||
foo.bar
|
foo.bar
|
||||||
x: int
|
x: int
|
||||||
y: int
|
y: int
|
||||||
*args: object
|
*args: tuple
|
||||||
z: int
|
z: int
|
||||||
/
|
/
|
||||||
"""
|
"""
|
||||||
|
@ -2031,7 +2031,7 @@ class ClinicParserTest(TestCase):
|
||||||
module foo
|
module foo
|
||||||
foo.bar
|
foo.bar
|
||||||
a: int
|
a: int
|
||||||
*args: object
|
*args: tuple
|
||||||
/ [from 3.14]
|
/ [from 3.14]
|
||||||
b: int
|
b: int
|
||||||
Docstring.
|
Docstring.
|
||||||
|
@ -2070,8 +2070,8 @@ class ClinicParserTest(TestCase):
|
||||||
block = """
|
block = """
|
||||||
module foo
|
module foo
|
||||||
foo.bar
|
foo.bar
|
||||||
*vararg1: object
|
*vararg1: tuple
|
||||||
*vararg2: object
|
*vararg2: tuple
|
||||||
"""
|
"""
|
||||||
self.expect_failure(block, err, lineno=3)
|
self.expect_failure(block, err, lineno=3)
|
||||||
|
|
||||||
|
@ -2156,11 +2156,11 @@ class ClinicParserTest(TestCase):
|
||||||
block = """
|
block = """
|
||||||
module foo
|
module foo
|
||||||
foo.bar
|
foo.bar
|
||||||
*vararg1: object
|
*vararg1: tuple
|
||||||
\t*vararg2: object
|
\t*vararg2: tuple
|
||||||
"""
|
"""
|
||||||
err = ("Tab characters are illegal in the Clinic DSL: "
|
err = ("Tab characters are illegal in the Clinic DSL: "
|
||||||
r"'\t*vararg2: object'")
|
r"'\t*vararg2: tuple'")
|
||||||
self.expect_failure(block, err)
|
self.expect_failure(block, err)
|
||||||
|
|
||||||
def test_indent_stack_illegal_outdent(self):
|
def test_indent_stack_illegal_outdent(self):
|
||||||
|
@ -2505,7 +2505,7 @@ class ClinicParserTest(TestCase):
|
||||||
err = "Vararg can't take a default value!"
|
err = "Vararg can't take a default value!"
|
||||||
block = """
|
block = """
|
||||||
fn
|
fn
|
||||||
*args: object = None
|
*args: tuple = None
|
||||||
"""
|
"""
|
||||||
self.expect_failure(block, err, lineno=1)
|
self.expect_failure(block, err, lineno=1)
|
||||||
|
|
||||||
|
|
|
@ -980,13 +980,13 @@ keyword_only_parameter_impl(PyObject *module, PyObject *a)
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
varpos
|
varpos
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
varpos_impl(PyObject *module, PyObject *args)
|
varpos_impl(PyObject *module, PyObject *args)
|
||||||
/*[clinic end generated code: output=7b0b9545872bdca4 input=f87cd674145d394c]*/
|
/*[clinic end generated code: output=7b0b9545872bdca4 input=ae7ccecd997aaff4]*/
|
||||||
{
|
{
|
||||||
return Py_NewRef(args);
|
return Py_NewRef(args);
|
||||||
}
|
}
|
||||||
|
@ -998,14 +998,14 @@ posonly_varpos
|
||||||
a: object
|
a: object
|
||||||
b: object
|
b: object
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
posonly_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=5dae5eb2a0d623cd input=c9fd7895cfbaabba]*/
|
/*[clinic end generated code: output=5dae5eb2a0d623cd input=6dd74417b62cbe67]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1017,14 +1017,14 @@ posonly_req_opt_varpos
|
||||||
a: object
|
a: object
|
||||||
b: object = False
|
b: object = False
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_req_opt_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
posonly_req_opt_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=67f82f90838e166a input=a49bd64740171e1c]*/
|
/*[clinic end generated code: output=67f82f90838e166a input=e08ed48926a5b760]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1036,14 +1036,14 @@ posonly_poskw_varpos
|
||||||
a: object
|
a: object
|
||||||
/
|
/
|
||||||
b: object
|
b: object
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
posonly_poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=bffdb7649941c939 input=b3d7a734e0625f68]*/
|
/*[clinic end generated code: output=bffdb7649941c939 input=e5a2c4cab6745ca1]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1053,13 +1053,13 @@ posonly_poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *b,
|
||||||
poskw_varpos
|
poskw_varpos
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *args)
|
poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *args)
|
||||||
/*[clinic end generated code: output=2413ddfb5ef22794 input=a1dff12d00422484]*/
|
/*[clinic end generated code: output=2413ddfb5ef22794 input=e78114436a07aefe]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(2, a, args);
|
return pack_arguments_newref(2, a, args);
|
||||||
}
|
}
|
||||||
|
@ -1069,7 +1069,7 @@ poskw_varpos_impl(PyObject *module, PyObject *a, PyObject *args)
|
||||||
poskw_varpos_kwonly_opt
|
poskw_varpos_kwonly_opt
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
*args: object
|
*args: tuple
|
||||||
b: bool = False
|
b: bool = False
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
@ -1077,7 +1077,7 @@ poskw_varpos_kwonly_opt
|
||||||
static PyObject *
|
static PyObject *
|
||||||
poskw_varpos_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *args,
|
poskw_varpos_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *args,
|
||||||
int b)
|
int b)
|
||||||
/*[clinic end generated code: output=f36d35ba6133463b input=1721d43dc5f6d856]*/
|
/*[clinic end generated code: output=f36d35ba6133463b input=ebecfb189f4a3380]*/
|
||||||
{
|
{
|
||||||
PyObject *obj_b = b ? Py_True : Py_False;
|
PyObject *obj_b = b ? Py_True : Py_False;
|
||||||
return pack_arguments_newref(3, a, args, obj_b);
|
return pack_arguments_newref(3, a, args, obj_b);
|
||||||
|
@ -1088,7 +1088,7 @@ poskw_varpos_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *args,
|
||||||
poskw_varpos_kwonly_opt2
|
poskw_varpos_kwonly_opt2
|
||||||
|
|
||||||
a: object
|
a: object
|
||||||
*args: object
|
*args: tuple
|
||||||
b: object = False
|
b: object = False
|
||||||
c: object = False
|
c: object = False
|
||||||
|
|
||||||
|
@ -1097,7 +1097,7 @@ poskw_varpos_kwonly_opt2
|
||||||
static PyObject *
|
static PyObject *
|
||||||
poskw_varpos_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *args,
|
poskw_varpos_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *args,
|
||||||
PyObject *b, PyObject *c)
|
PyObject *b, PyObject *c)
|
||||||
/*[clinic end generated code: output=846cef62c6c40463 input=bb4b8d1577a8a408]*/
|
/*[clinic end generated code: output=846cef62c6c40463 input=1aff29829431f711]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(4, a, args, b, c);
|
return pack_arguments_newref(4, a, args, b, c);
|
||||||
}
|
}
|
||||||
|
@ -1106,14 +1106,14 @@ poskw_varpos_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *args,
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
varpos_kwonly_opt
|
varpos_kwonly_opt
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
b: object = False
|
b: object = False
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
varpos_kwonly_opt_impl(PyObject *module, PyObject *args, PyObject *b)
|
varpos_kwonly_opt_impl(PyObject *module, PyObject *args, PyObject *b)
|
||||||
/*[clinic end generated code: output=3b7bf98b091f5731 input=380fb00deec847e8]*/
|
/*[clinic end generated code: output=3b7bf98b091f5731 input=1bec50dc49fca2eb]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(2, args, b);
|
return pack_arguments_newref(2, args, b);
|
||||||
}
|
}
|
||||||
|
@ -1122,7 +1122,7 @@ varpos_kwonly_opt_impl(PyObject *module, PyObject *args, PyObject *b)
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
varpos_kwonly_req_opt
|
varpos_kwonly_req_opt
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
a: object
|
a: object
|
||||||
b: object = False
|
b: object = False
|
||||||
c: object = False
|
c: object = False
|
||||||
|
@ -1132,7 +1132,7 @@ varpos_kwonly_req_opt
|
||||||
static PyObject *
|
static PyObject *
|
||||||
varpos_kwonly_req_opt_impl(PyObject *module, PyObject *args, PyObject *a,
|
varpos_kwonly_req_opt_impl(PyObject *module, PyObject *args, PyObject *a,
|
||||||
PyObject *b, PyObject *c)
|
PyObject *b, PyObject *c)
|
||||||
/*[clinic end generated code: output=165274e1fd037ae9 input=530794afd0690c22]*/
|
/*[clinic end generated code: output=165274e1fd037ae9 input=355271f6119bb6c8]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(4, args, a, b, c);
|
return pack_arguments_newref(4, args, a, b, c);
|
||||||
}
|
}
|
||||||
|
@ -1219,7 +1219,7 @@ gh_32092_oob
|
||||||
|
|
||||||
pos1: object
|
pos1: object
|
||||||
pos2: object
|
pos2: object
|
||||||
*varargs: object
|
*varargs: tuple
|
||||||
kw1: object = None
|
kw1: object = None
|
||||||
kw2: object = None
|
kw2: object = None
|
||||||
|
|
||||||
|
@ -1230,7 +1230,7 @@ Proof-of-concept of GH-32092 OOB bug.
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gh_32092_oob_impl(PyObject *module, PyObject *pos1, PyObject *pos2,
|
gh_32092_oob_impl(PyObject *module, PyObject *pos1, PyObject *pos2,
|
||||||
PyObject *varargs, PyObject *kw1, PyObject *kw2)
|
PyObject *varargs, PyObject *kw1, PyObject *kw2)
|
||||||
/*[clinic end generated code: output=ee259c130054653f input=46d15c881608f8ff]*/
|
/*[clinic end generated code: output=ee259c130054653f input=63aeeca881979b91]*/
|
||||||
{
|
{
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@ -1240,7 +1240,7 @@ gh_32092_oob_impl(PyObject *module, PyObject *pos1, PyObject *pos2,
|
||||||
gh_32092_kw_pass
|
gh_32092_kw_pass
|
||||||
|
|
||||||
pos: object
|
pos: object
|
||||||
*args: object
|
*args: tuple
|
||||||
kw: object = None
|
kw: object = None
|
||||||
|
|
||||||
Proof-of-concept of GH-32092 keyword args passing bug.
|
Proof-of-concept of GH-32092 keyword args passing bug.
|
||||||
|
@ -1250,7 +1250,7 @@ Proof-of-concept of GH-32092 keyword args passing bug.
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gh_32092_kw_pass_impl(PyObject *module, PyObject *pos, PyObject *args,
|
gh_32092_kw_pass_impl(PyObject *module, PyObject *pos, PyObject *args,
|
||||||
PyObject *kw)
|
PyObject *kw)
|
||||||
/*[clinic end generated code: output=4a2bbe4f7c8604e9 input=5c0bd5b9079a0cce]*/
|
/*[clinic end generated code: output=4a2bbe4f7c8604e9 input=258987971f3ee97a]*/
|
||||||
{
|
{
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@ -1259,7 +1259,7 @@ gh_32092_kw_pass_impl(PyObject *module, PyObject *pos, PyObject *args,
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
gh_99233_refcount
|
gh_99233_refcount
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
Proof-of-concept of GH-99233 refcount error bug.
|
Proof-of-concept of GH-99233 refcount error bug.
|
||||||
|
|
||||||
|
@ -1267,7 +1267,7 @@ Proof-of-concept of GH-99233 refcount error bug.
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gh_99233_refcount_impl(PyObject *module, PyObject *args)
|
gh_99233_refcount_impl(PyObject *module, PyObject *args)
|
||||||
/*[clinic end generated code: output=585855abfbca9a7f input=eecfdc2092d90dc3]*/
|
/*[clinic end generated code: output=585855abfbca9a7f input=f5204359fd852613]*/
|
||||||
{
|
{
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@ -1295,7 +1295,7 @@ gh_99240_double_free_impl(PyObject *module, char *a, char *b)
|
||||||
null_or_tuple_for_varargs
|
null_or_tuple_for_varargs
|
||||||
|
|
||||||
name: object
|
name: object
|
||||||
*constraints: object
|
*constraints: tuple
|
||||||
covariant: bool = False
|
covariant: bool = False
|
||||||
|
|
||||||
See https://github.com/python/cpython/issues/110864
|
See https://github.com/python/cpython/issues/110864
|
||||||
|
@ -1304,7 +1304,7 @@ See https://github.com/python/cpython/issues/110864
|
||||||
static PyObject *
|
static PyObject *
|
||||||
null_or_tuple_for_varargs_impl(PyObject *module, PyObject *name,
|
null_or_tuple_for_varargs_impl(PyObject *module, PyObject *name,
|
||||||
PyObject *constraints, int covariant)
|
PyObject *constraints, int covariant)
|
||||||
/*[clinic end generated code: output=a785b35421358983 input=c9bce186637956b3]*/
|
/*[clinic end generated code: output=a785b35421358983 input=4df930e019f32878]*/
|
||||||
{
|
{
|
||||||
assert(name != NULL);
|
assert(name != NULL);
|
||||||
assert(constraints != NULL);
|
assert(constraints != NULL);
|
||||||
|
@ -1412,13 +1412,13 @@ _testclinic_TestClass_get_defining_class_arg_impl(PyObject *self,
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
_testclinic.TestClass.defclass_varpos
|
_testclinic.TestClass.defclass_varpos
|
||||||
cls: defining_class
|
cls: defining_class
|
||||||
*args: object
|
*args: tuple
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
_testclinic_TestClass_defclass_varpos_impl(PyObject *self, PyTypeObject *cls,
|
_testclinic_TestClass_defclass_varpos_impl(PyObject *self, PyTypeObject *cls,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=fad33f2d3a8d778d input=47071dcda393a7e1]*/
|
/*[clinic end generated code: output=fad33f2d3a8d778d input=332043286e393d38]*/
|
||||||
{
|
{
|
||||||
return PyTuple_Pack(2, cls, args);
|
return PyTuple_Pack(2, cls, args);
|
||||||
}
|
}
|
||||||
|
@ -1429,7 +1429,7 @@ _testclinic.TestClass.defclass_posonly_varpos
|
||||||
a: object
|
a: object
|
||||||
b: object
|
b: object
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -1437,7 +1437,7 @@ _testclinic_TestClass_defclass_posonly_varpos_impl(PyObject *self,
|
||||||
PyTypeObject *cls,
|
PyTypeObject *cls,
|
||||||
PyObject *a, PyObject *b,
|
PyObject *a, PyObject *b,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=1740fcf48d230b07 input=40f2e56286d4a7ef]*/
|
/*[clinic end generated code: output=1740fcf48d230b07 input=191da4557203c413]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(4, cls, a, b, args);
|
return pack_arguments_newref(4, cls, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1447,13 +1447,13 @@ _testclinic_TestClass_defclass_posonly_varpos_impl(PyObject *self,
|
||||||
@classmethod
|
@classmethod
|
||||||
_testclinic.TestClass.__new__ as varpos_no_fastcall
|
_testclinic.TestClass.__new__ as varpos_no_fastcall
|
||||||
|
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
varpos_no_fastcall_impl(PyTypeObject *type, PyObject *args)
|
varpos_no_fastcall_impl(PyTypeObject *type, PyObject *args)
|
||||||
/*[clinic end generated code: output=04e94f2898bb2dde input=b0447ebab3e81001]*/
|
/*[clinic end generated code: output=04e94f2898bb2dde input=c5d3d30a6589f97f]*/
|
||||||
{
|
{
|
||||||
return Py_NewRef(args);
|
return Py_NewRef(args);
|
||||||
}
|
}
|
||||||
|
@ -1466,14 +1466,14 @@ _testclinic.TestClass.__new__ as posonly_varpos_no_fastcall
|
||||||
a: object
|
a: object
|
||||||
b: object
|
b: object
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a, PyObject *b,
|
posonly_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a, PyObject *b,
|
||||||
PyObject *args)
|
PyObject *args)
|
||||||
/*[clinic end generated code: output=b0a0425719f69f5a input=d2ec37a06b3c2389]*/
|
/*[clinic end generated code: output=b0a0425719f69f5a input=10f29f2c2c6bfdc4]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1486,14 +1486,14 @@ _testclinic.TestClass.__new__ as posonly_req_opt_varpos_no_fastcall
|
||||||
a: object
|
a: object
|
||||||
b: object = False
|
b: object = False
|
||||||
/
|
/
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_req_opt_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a,
|
posonly_req_opt_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a,
|
||||||
PyObject *b, PyObject *args)
|
PyObject *b, PyObject *args)
|
||||||
/*[clinic end generated code: output=3c44915b1a554e2d input=e9e74686a5e6a06d]*/
|
/*[clinic end generated code: output=3c44915b1a554e2d input=d319302a8748147c]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
@ -1506,14 +1506,14 @@ _testclinic.TestClass.__new__ as posonly_poskw_varpos_no_fastcall
|
||||||
a: object
|
a: object
|
||||||
/
|
/
|
||||||
b: object
|
b: object
|
||||||
*args: object
|
*args: tuple
|
||||||
|
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
posonly_poskw_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a,
|
posonly_poskw_varpos_no_fastcall_impl(PyTypeObject *type, PyObject *a,
|
||||||
PyObject *b, PyObject *args)
|
PyObject *b, PyObject *args)
|
||||||
/*[clinic end generated code: output=6ad74bed4bdc7f96 input=fa931c38184213aa]*/
|
/*[clinic end generated code: output=6ad74bed4bdc7f96 input=1f8c113e749414a3]*/
|
||||||
{
|
{
|
||||||
return pack_arguments_newref(3, a, b, args);
|
return pack_arguments_newref(3, a, b, args);
|
||||||
}
|
}
|
||||||
|
|
|
@ -651,7 +651,7 @@ typevar_alloc(PyObject *name, PyObject *bound, PyObject *evaluate_bound,
|
||||||
typevar.__new__ as typevar_new
|
typevar.__new__ as typevar_new
|
||||||
|
|
||||||
name: object(subclass_of="&PyUnicode_Type")
|
name: object(subclass_of="&PyUnicode_Type")
|
||||||
*constraints: object
|
*constraints: tuple
|
||||||
bound: object = None
|
bound: object = None
|
||||||
default as default_value: object(c_default="&_Py_NoDefaultStruct") = typing.NoDefault
|
default as default_value: object(c_default="&_Py_NoDefaultStruct") = typing.NoDefault
|
||||||
covariant: bool = False
|
covariant: bool = False
|
||||||
|
@ -665,7 +665,7 @@ static PyObject *
|
||||||
typevar_new_impl(PyTypeObject *type, PyObject *name, PyObject *constraints,
|
typevar_new_impl(PyTypeObject *type, PyObject *name, PyObject *constraints,
|
||||||
PyObject *bound, PyObject *default_value, int covariant,
|
PyObject *bound, PyObject *default_value, int covariant,
|
||||||
int contravariant, int infer_variance)
|
int contravariant, int infer_variance)
|
||||||
/*[clinic end generated code: output=d2b248ff074eaab6 input=836f97f631d7293a]*/
|
/*[clinic end generated code: output=d2b248ff074eaab6 input=1b5b62e40c92c167]*/
|
||||||
{
|
{
|
||||||
if (covariant && contravariant) {
|
if (covariant && contravariant) {
|
||||||
PyErr_SetString(PyExc_ValueError,
|
PyErr_SetString(PyExc_ValueError,
|
||||||
|
|
|
@ -2127,7 +2127,7 @@ builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
print as builtin_print
|
print as builtin_print
|
||||||
|
|
||||||
*args: object
|
*args: array
|
||||||
sep: object(c_default="Py_None") = ' '
|
sep: object(c_default="Py_None") = ' '
|
||||||
string inserted between values, default a space.
|
string inserted between values, default a space.
|
||||||
end: object(c_default="Py_None") = '\n'
|
end: object(c_default="Py_None") = '\n'
|
||||||
|
@ -2142,9 +2142,10 @@ Prints the values to a stream, or to sys.stdout by default.
|
||||||
[clinic start generated code]*/
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
builtin_print_impl(PyObject *module, PyObject *args, PyObject *sep,
|
builtin_print_impl(PyObject *module, PyObject * const *args,
|
||||||
PyObject *end, PyObject *file, int flush)
|
Py_ssize_t args_length, PyObject *sep, PyObject *end,
|
||||||
/*[clinic end generated code: output=3cfc0940f5bc237b input=c143c575d24fe665]*/
|
PyObject *file, int flush)
|
||||||
|
/*[clinic end generated code: output=3cb7e5b66f1a8547 input=66ea4de1605a2437]*/
|
||||||
{
|
{
|
||||||
int i, err;
|
int i, err;
|
||||||
|
|
||||||
|
@ -2181,7 +2182,7 @@ builtin_print_impl(PyObject *module, PyObject *args, PyObject *sep,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < PyTuple_GET_SIZE(args); i++) {
|
for (i = 0; i < args_length; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
if (sep == NULL) {
|
if (sep == NULL) {
|
||||||
err = PyFile_WriteString(" ", file);
|
err = PyFile_WriteString(" ", file);
|
||||||
|
@ -2193,7 +2194,7 @@ builtin_print_impl(PyObject *module, PyObject *args, PyObject *sep,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = PyFile_WriteObject(PyTuple_GET_ITEM(args, i), file, Py_PRINT_RAW);
|
err = PyFile_WriteObject(args[i], file, Py_PRINT_RAW);
|
||||||
if (err) {
|
if (err) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ preserve
|
||||||
# include "pycore_runtime.h" // _Py_ID()
|
# include "pycore_runtime.h" // _Py_ID()
|
||||||
#endif
|
#endif
|
||||||
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
#include "pycore_modsupport.h" // _PyArg_UnpackKeywords()
|
||||||
#include "pycore_tuple.h" // _PyTuple_FromArray()
|
|
||||||
|
|
||||||
PyDoc_STRVAR(builtin___import____doc__,
|
PyDoc_STRVAR(builtin___import____doc__,
|
||||||
"__import__($module, /, name, globals=None, locals=None, fromlist=(),\n"
|
"__import__($module, /, name, globals=None, locals=None, fromlist=(),\n"
|
||||||
|
@ -902,8 +901,9 @@ PyDoc_STRVAR(builtin_print__doc__,
|
||||||
{"print", _PyCFunction_CAST(builtin_print), METH_FASTCALL|METH_KEYWORDS, builtin_print__doc__},
|
{"print", _PyCFunction_CAST(builtin_print), METH_FASTCALL|METH_KEYWORDS, builtin_print__doc__},
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
builtin_print_impl(PyObject *module, PyObject *args, PyObject *sep,
|
builtin_print_impl(PyObject *module, PyObject * const *args,
|
||||||
PyObject *end, PyObject *file, int flush);
|
Py_ssize_t args_length, PyObject *sep, PyObject *end,
|
||||||
|
PyObject *file, int flush);
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||||
|
@ -937,7 +937,8 @@ builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
|
||||||
PyObject *argsbuf[4];
|
PyObject *argsbuf[4];
|
||||||
PyObject * const *fastargs;
|
PyObject * const *fastargs;
|
||||||
Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
Py_ssize_t noptargs = 0 + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
|
||||||
PyObject *__clinic_args = NULL;
|
PyObject * const *__clinic_args;
|
||||||
|
Py_ssize_t args_length;
|
||||||
PyObject *sep = Py_None;
|
PyObject *sep = Py_None;
|
||||||
PyObject *end = Py_None;
|
PyObject *end = Py_None;
|
||||||
PyObject *file = Py_None;
|
PyObject *file = Py_None;
|
||||||
|
@ -973,16 +974,11 @@ builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
skip_optional_kwonly:
|
skip_optional_kwonly:
|
||||||
__clinic_args = _PyTuple_FromArray(args, nargs);
|
__clinic_args = args;
|
||||||
if (__clinic_args == NULL) {
|
args_length = nargs;
|
||||||
goto exit;
|
return_value = builtin_print_impl(module, __clinic_args, args_length, sep, end, file, flush);
|
||||||
}
|
|
||||||
return_value = builtin_print_impl(module, __clinic_args, sep, end, file, flush);
|
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
/* Cleanup for args */
|
|
||||||
Py_XDECREF(__clinic_args);
|
|
||||||
|
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1235,4 +1231,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
|
||||||
exit:
|
exit:
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
/*[clinic end generated code: output=76b27cf4164f257e input=a9049054013a1b77]*/
|
/*[clinic end generated code: output=5c510ec462507656 input=a9049054013a1b77]*/
|
||||||
|
|
|
@ -1251,7 +1251,3 @@ class varpos_array_converter(CConverter):
|
||||||
|
|
||||||
def parse_arg(self, argname: str, displayname: str, *, limited_capi: bool) -> str | None:
|
def parse_arg(self, argname: str, displayname: str, *, limited_capi: bool) -> str | None:
|
||||||
raise AssertionError('should never be called')
|
raise AssertionError('should never be called')
|
||||||
|
|
||||||
# XXX: temporary
|
|
||||||
class varpos_object_converter(varpos_tuple_converter):
|
|
||||||
pass
|
|
||||||
|
|
Loading…
Reference in New Issue