summaryrefslogtreecommitdiffstats
path: root/Objects/clinic
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend.aasland@protonmail.com>2023-01-31 20:42:03 (GMT)
committerGitHub <noreply@github.com>2023-01-31 20:42:03 (GMT)
commit2753cf2ed6eb329bdc34b8f67228801182b82160 (patch)
treeb1fa68edc115a6bf451d44e49319a7ba0452de5a /Objects/clinic
parent0062f538d937de55cf3b66b4a8d527b1fe9d5182 (diff)
downloadcpython-2753cf2ed6eb329bdc34b8f67228801182b82160.zip
cpython-2753cf2ed6eb329bdc34b8f67228801182b82160.tar.gz
cpython-2753cf2ed6eb329bdc34b8f67228801182b82160.tar.bz2
gh-101409: Improve generated clinic code for self type checks (#101411)
Diffstat (limited to 'Objects/clinic')
-rw-r--r--Objects/clinic/classobject.c.h10
-rw-r--r--Objects/clinic/codeobject.c.h6
-rw-r--r--Objects/clinic/enumobject.c.h6
-rw-r--r--Objects/clinic/floatobject.c.h6
-rw-r--r--Objects/clinic/listobject.c.h7
-rw-r--r--Objects/clinic/tupleobject.c.h6
6 files changed, 21 insertions, 20 deletions
diff --git a/Objects/clinic/classobject.c.h b/Objects/clinic/classobject.c.h
index 6c44982..a7bac63 100644
--- a/Objects/clinic/classobject.c.h
+++ b/Objects/clinic/classobject.c.h
@@ -38,11 +38,11 @@ static PyObject *
method_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyMethod_Type;
PyObject *function;
PyObject *instance;
- if ((type == &PyMethod_Type ||
- type->tp_init == PyMethod_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("method", kwargs)) {
goto exit;
}
@@ -70,10 +70,10 @@ static PyObject *
instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyInstanceMethod_Type;
PyObject *function;
- if ((type == &PyInstanceMethod_Type ||
- type->tp_init == PyInstanceMethod_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("instancemethod", kwargs)) {
goto exit;
}
@@ -86,4 +86,4 @@ instancemethod_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=e3294c26a71d456d input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2a5e7fa5947a86cb input=a9049054013a1b77]*/
diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h
index da33f4a..5ad4b1f 100644
--- a/Objects/clinic/codeobject.c.h
+++ b/Objects/clinic/codeobject.c.h
@@ -30,6 +30,7 @@ static PyObject *
code_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyCode_Type;
int argcount;
int posonlyargcount;
int kwonlyargcount;
@@ -49,8 +50,7 @@ code_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
PyObject *freevars = NULL;
PyObject *cellvars = NULL;
- if ((type == &PyCode_Type ||
- type->tp_init == PyCode_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("code", kwargs)) {
goto exit;
}
@@ -488,4 +488,4 @@ code__varname_from_oparg(PyCodeObject *self, PyObject *const *args, Py_ssize_t n
exit:
return return_value;
}
-/*[clinic end generated code: output=b6c98f17c60ace53 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f1fab6e71c785182 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/enumobject.c.h b/Objects/clinic/enumobject.c.h
index 208a9e8..adf78ef 100644
--- a/Objects/clinic/enumobject.c.h
+++ b/Objects/clinic/enumobject.c.h
@@ -91,10 +91,10 @@ static PyObject *
reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyReversed_Type;
PyObject *seq;
- if ((type == &PyReversed_Type ||
- type->tp_init == PyReversed_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("reversed", kwargs)) {
goto exit;
}
@@ -107,4 +107,4 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=683261097bfd794a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=aba0ddbeab1601e3 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/floatobject.c.h b/Objects/clinic/floatobject.c.h
index 1a81e17..6bc25a0 100644
--- a/Objects/clinic/floatobject.c.h
+++ b/Objects/clinic/floatobject.c.h
@@ -212,10 +212,10 @@ static PyObject *
float_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyFloat_Type;
PyObject *x = NULL;
- if ((type == &PyFloat_Type ||
- type->tp_init == PyFloat_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("float", kwargs)) {
goto exit;
}
@@ -327,4 +327,4 @@ float___format__(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=ac6374ac606a505e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=74bc91bb44014df9 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/listobject.c.h b/Objects/clinic/listobject.c.h
index 94852e9..e3d6ffa 100644
--- a/Objects/clinic/listobject.c.h
+++ b/Objects/clinic/listobject.c.h
@@ -326,10 +326,11 @@ static int
list___init__(PyObject *self, PyObject *args, PyObject *kwargs)
{
int return_value = -1;
+ PyTypeObject *base_tp = &PyList_Type;
PyObject *iterable = NULL;
- if ((Py_IS_TYPE(self, &PyList_Type) ||
- Py_TYPE(self)->tp_new == PyList_Type.tp_new) &&
+ if ((Py_IS_TYPE(self, base_tp) ||
+ Py_TYPE(self)->tp_new == base_tp->tp_new) &&
!_PyArg_NoKeywords("list", kwargs)) {
goto exit;
}
@@ -382,4 +383,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored))
{
return list___reversed___impl(self);
}
-/*[clinic end generated code: output=4e6f38b655394564 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2ca109d8acc775bc input=a9049054013a1b77]*/
diff --git a/Objects/clinic/tupleobject.c.h b/Objects/clinic/tupleobject.c.h
index a4776e1..3de9575 100644
--- a/Objects/clinic/tupleobject.c.h
+++ b/Objects/clinic/tupleobject.c.h
@@ -81,10 +81,10 @@ static PyObject *
tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
+ PyTypeObject *base_tp = &PyTuple_Type;
PyObject *iterable = NULL;
- if ((type == &PyTuple_Type ||
- type->tp_init == PyTuple_Type.tp_init) &&
+ if ((type == base_tp || type->tp_init == base_tp->tp_init) &&
!_PyArg_NoKeywords("tuple", kwargs)) {
goto exit;
}
@@ -118,4 +118,4 @@ tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored))
{
return tuple___getnewargs___impl(self);
}
-/*[clinic end generated code: output=441d2b880e865f87 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=48a9e0834b300ac3 input=a9049054013a1b77]*/