From 0b0f5b91513fc380a247ab61934cf9445742be5a Mon Sep 17 00:00:00 2001 From: Jacob Rogers Date: Tue, 15 Jul 2025 10:56:30 -0700 Subject: [PATCH 1/3] Fix FRect contains message --- src_c/rect_impl.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src_c/rect_impl.h b/src_c/rect_impl.h index 8bb5379258..4dcfde562d 100644 --- a/src_c/rect_impl.h +++ b/src_c/rect_impl.h @@ -1999,6 +1999,16 @@ RectExport_containsSeq(RectObject *self, PyObject *arg) PyErr_SetString(PyExc_TypeError, "'in <" ObjectName ">' requires rect style object" " or int as left operand"); + if (strcmp(ObjectName, "pygame.rect.FRect") == 0) { + PyErr_SetString(PyExc_TypeError, "'in <" ObjectName + ">' requires rect style object" + " or float as left operand"); + } + else { + PyErr_SetString(PyExc_TypeError, "'in <" ObjectName + ">' requires rect style object" + " or int as left operand"); + } } return ret; } From bce83e359f5fbff61babc3e52b9cdb034d25c02a Mon Sep 17 00:00:00 2001 From: Jacob Rogers Date: Tue, 15 Jul 2025 12:43:54 -0700 Subject: [PATCH 2/3] Make FRect contains message DRYer --- src_c/rect_impl.h | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src_c/rect_impl.h b/src_c/rect_impl.h index 4dcfde562d..9018f95225 100644 --- a/src_c/rect_impl.h +++ b/src_c/rect_impl.h @@ -1994,21 +1994,16 @@ RectExport_containsSeq(RectObject *self, PyObject *arg) return coord == self->r.x || coord == self->r.y || coord == self->r.w || coord == self->r.h; } + int ret = RectExport_contains_internal(self, (PyObject *const *)&arg, 1); if (ret < 0) { - PyErr_SetString(PyExc_TypeError, "'in <" ObjectName - ">' requires rect style object" - " or int as left operand"); - if (strcmp(ObjectName, "pygame.rect.FRect") == 0) { - PyErr_SetString(PyExc_TypeError, "'in <" ObjectName - ">' requires rect style object" - " or float as left operand"); - } - else { - PyErr_SetString(PyExc_TypeError, "'in <" ObjectName - ">' requires rect style object" - " or int as left operand"); - } + const char *operand_type = + strcmp(ObjectName, "pygame.rect.FRect") == 0 ? "float" : "int"; + + PyErr_Format( + PyExc_TypeError, + "'in %s' requires rect style object or %s as left operand", + ObjectName, operand_type); } return ret; } From 7de30a30e5c23ad6675a2e7d2b23cdf943f6f733 Mon Sep 17 00:00:00 2001 From: Jacob Rogers Date: Tue, 15 Jul 2025 16:35:53 -0700 Subject: [PATCH 3/3] Apply change according to review feedback --- src_c/rect_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_c/rect_impl.h b/src_c/rect_impl.h index 9018f95225..a444f2d09d 100644 --- a/src_c/rect_impl.h +++ b/src_c/rect_impl.h @@ -1998,7 +1998,7 @@ RectExport_containsSeq(RectObject *self, PyObject *arg) int ret = RectExport_contains_internal(self, (PyObject *const *)&arg, 1); if (ret < 0) { const char *operand_type = - strcmp(ObjectName, "pygame.rect.FRect") == 0 ? "float" : "int"; + pgFRect_Check((PyObject *)self) ? "float" : "int"; PyErr_Format( PyExc_TypeError,