https://github.com/python/cpython/commit/fd53ae113911e5a7d83c04b08623df824f9d5d70
commit: fd53ae113911e5a7d83c04b08623df824f9d5d70
branch: main
author: da-woods <[email protected]>
committer: vstinner <[email protected]>
date: 2026-06-18T14:53:09+02:00
summary:
gh-141510 Document and test frozendict class matching behaviour (#150799)
Frozendict has `_Py_TPFLAGS_MATCH_SELF` set so works correctly
with the single-arg class matching. However it isn't documented
in the list of classes this works with and it isn't tested.
The test is some way below the other similar tests but anything
else would need a large renumbering.
files:
M Doc/reference/compound_stmts.rst
M Lib/test/test_patma.py
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 6710c0acf77e350..b3168bb85b4765d 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -1172,6 +1172,7 @@ subject value:
* :class:`bytes`
* :class:`dict`
* :class:`float`
+ * :class:`frozendict`
* :class:`frozenset`
* :class:`int`
* :class:`list`
diff --git a/Lib/test/test_patma.py b/Lib/test/test_patma.py
index 29cce4ee6d271ff..e3aaea84ea7ce84 100644
--- a/Lib/test/test_patma.py
+++ b/Lib/test/test_patma.py
@@ -2852,6 +2852,15 @@ def test_patma_266(self):
self.assertEqual(x, 0)
self.assertEqual(y, 1)
+ def test_patma_frozendict_class_self(self):
+ x = frozendict()
+ match x:
+ case frozendict(z):
+ y = 0
+ self.assertEqual(x, frozendict())
+ self.assertEqual(y, 0)
+ self.assertIs(z, x)
+
def test_patma_runtime_checkable_protocol(self):
# Runtime-checkable protocol
from typing import Protocol, runtime_checkable
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]