From 6b28f17a59a7160eeaf73cdc7ffddf979a3083ce Mon Sep 17 00:00:00 2001 From: BobTheBuidler Date: Fri, 23 May 2025 23:18:37 +0000 Subject: [PATCH 01/16] feat: new primitive for weakref.ref --- mypyc/primitives/registry.py | 3 +- mypyc/primitives/weakref_ops.py | 13 +++++++ mypyc/test-data/irbuild-weakref.test | 51 ++++++++++++++++++++++++++++ mypyc/test-data/run-weakref.test | 22 ++++++++++++ mypyc/test/test_irbuild.py | 1 + mypyc/test/test_run.py | 1 + 6 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 mypyc/primitives/weakref_ops.py create mode 100644 mypyc/test-data/irbuild-weakref.test create mode 100644 mypyc/test-data/run-weakref.test diff --git a/mypyc/primitives/registry.py b/mypyc/primitives/registry.py index 5e7ecb70f55d..07546663d08e 100644 --- a/mypyc/primitives/registry.py +++ b/mypyc/primitives/registry.py @@ -371,4 +371,5 @@ def load_address_op(name: str, type: RType, src: str) -> LoadAddressDescription: import mypyc.primitives.list_ops import mypyc.primitives.misc_ops import mypyc.primitives.str_ops -import mypyc.primitives.tuple_ops # noqa: F401 +import mypyc.primitives.tuple_ops +import mypyc.primitives.weakref_ops # noqa: F401 diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py new file mode 100644 index 000000000000..19f8bc858732 --- /dev/null +++ b/mypyc/primitives/weakref_ops.py @@ -0,0 +1,13 @@ +from mypyc.ir.ops import ERR_MAGIC +from mypyc.ir.rtypes import object_rprimitive +from mypyc.primitives.registry import function_op + +# Weakref operations + +new_ref_op = function_op( + name="weakref.ReferenceType", + arg_types=[object_rprimitive, object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewRef", + error_kind=ERR_MAGIC, +) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test new file mode 100644 index 000000000000..29894916bd7a --- /dev/null +++ b/mypyc/test-data/irbuild-weakref.test @@ -0,0 +1,51 @@ +[case testWeakrefRef] +import weakref +from typing import Any, Callable +def f(x: object) -> object: + return weakref.ref(x) + +[out] +def f(x): + x, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, NULL) + return r0 + +[case testWeakrefRefCallback] +import weakref +from typing import Any, Callable +def f(x: object, cb: Callable[[object], Any]) -> object: + return weakref.ref(x, cb) + +[out] +def f(x, cb): + x, cb, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, cb) + return r0 + +[case testFromWeakrefRef] +from typing import Any, Callable +from weakref import ref +def f(x: object) -> object: + return ref(x) + +[out] +def f(x): + x, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, NULL) + return r0 + +[case testFromWeakrefRefCallback] +from typing import Any, Callable +from weakref import ref +def f(x: object, cb: Callable[[object], Any]) -> object: + return ref(x, cb) + +[out] +def f(x, cb): + x, cb, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, cb) + return r0 diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test new file mode 100644 index 000000000000..c7c85c7a4cc8 --- /dev/null +++ b/mypyc/test-data/run-weakref.test @@ -0,0 +1,22 @@ +# Test cases for weakrefs (compile and run) + +[case testWeakrefRef] +import asyncio +import pytest # type: ignore [import-not-found] +from weakref import ref + +def test_weakref_ref(): + # some random weakreffable object + obj = asyncio.new_event_loop() + r = ref(obj) + assert r() is obj + obj = None + assert r() is None, r() + +def test_weakref_ref_with_callback(): + # some random weakreffable object + obj = asyncio.new_event_loop() + r = ref(obj, lambda x: x) + assert r() is obj + obj = None + assert r() is None, r() diff --git a/mypyc/test/test_irbuild.py b/mypyc/test/test_irbuild.py index 9c0ad06416a7..d8f974ef201b 100644 --- a/mypyc/test/test_irbuild.py +++ b/mypyc/test/test_irbuild.py @@ -53,6 +53,7 @@ "irbuild-constant-fold.test", "irbuild-glue-methods.test", "irbuild-math.test", + "irbuild-weakref.test", ] if sys.version_info >= (3, 10): diff --git a/mypyc/test/test_run.py b/mypyc/test/test_run.py index e5b7e2421433..cd32daee4bdc 100644 --- a/mypyc/test/test_run.py +++ b/mypyc/test/test_run.py @@ -69,6 +69,7 @@ "run-dunders-special.test", "run-singledispatch.test", "run-attrs.test", + "run-weakref.test", "run-python37.test", "run-python38.test", ] From 8d41c269b345c651d76a56f10bd213f648662e44 Mon Sep 17 00:00:00 2001 From: BobTheBuidler Date: Fri, 23 May 2025 23:38:58 +0000 Subject: [PATCH 02/16] fix(test): fix test ref --- mypyc/test-data/run-weakref.test | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test index c7c85c7a4cc8..dd8a606e8ef2 100644 --- a/mypyc/test-data/run-weakref.test +++ b/mypyc/test-data/run-weakref.test @@ -5,17 +5,20 @@ import asyncio import pytest # type: ignore [import-not-found] from weakref import ref +@mypyc_attr(native_class=False) +class Object: + """some random weakreffable object""" + pass + def test_weakref_ref(): - # some random weakreffable object - obj = asyncio.new_event_loop() + obj = Object() r = ref(obj) assert r() is obj obj = None assert r() is None, r() def test_weakref_ref_with_callback(): - # some random weakreffable object - obj = asyncio.new_event_loop() + obj = Object() r = ref(obj, lambda x: x) assert r() is obj obj = None From 97f9186a8a6ef7d7d1ac22fcfbd171191d04de8b Mon Sep 17 00:00:00 2001 From: BobTheBuidler Date: Fri, 23 May 2025 23:40:42 +0000 Subject: [PATCH 03/16] fix(test): only test with callback --- mypyc/test-data/irbuild-weakref.test | 26 -------------------------- mypyc/test-data/run-weakref.test | 7 ------- 2 files changed, 33 deletions(-) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test index 29894916bd7a..2258d06115be 100644 --- a/mypyc/test-data/irbuild-weakref.test +++ b/mypyc/test-data/irbuild-weakref.test @@ -1,16 +1,3 @@ -[case testWeakrefRef] -import weakref -from typing import Any, Callable -def f(x: object) -> object: - return weakref.ref(x) - -[out] -def f(x): - x, r0 :: object -L0: - r0 = PyWeakref_NewRef(x, NULL) - return r0 - [case testWeakrefRefCallback] import weakref from typing import Any, Callable @@ -24,19 +11,6 @@ L0: r0 = PyWeakref_NewRef(x, cb) return r0 -[case testFromWeakrefRef] -from typing import Any, Callable -from weakref import ref -def f(x: object) -> object: - return ref(x) - -[out] -def f(x): - x, r0 :: object -L0: - r0 = PyWeakref_NewRef(x, NULL) - return r0 - [case testFromWeakrefRefCallback] from typing import Any, Callable from weakref import ref diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test index dd8a606e8ef2..f23141ab0c9a 100644 --- a/mypyc/test-data/run-weakref.test +++ b/mypyc/test-data/run-weakref.test @@ -10,13 +10,6 @@ class Object: """some random weakreffable object""" pass -def test_weakref_ref(): - obj = Object() - r = ref(obj) - assert r() is obj - obj = None - assert r() is None, r() - def test_weakref_ref_with_callback(): obj = Object() r = ref(obj, lambda x: x) From 81eadfbf907233cb5c1b6c24c9b5f7c1ce0b8fa6 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 23 May 2025 19:48:37 -0400 Subject: [PATCH 04/16] Update run-weakref.test --- mypyc/test-data/run-weakref.test | 1 + 1 file changed, 1 insertion(+) diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test index f23141ab0c9a..de2d5dd5bad2 100644 --- a/mypyc/test-data/run-weakref.test +++ b/mypyc/test-data/run-weakref.test @@ -4,6 +4,7 @@ import asyncio import pytest # type: ignore [import-not-found] from weakref import ref +from mypy_extensions import mypyc_attr @mypyc_attr(native_class=False) class Object: From 1ae55e45b1261857e9cc6134c8d7b03129ae5279 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:36:25 -0400 Subject: [PATCH 05/16] feat: add primitive for weakref.ref with 1 arg --- mypyc/primitives/weakref_ops.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index 19f8bc858732..29291024251d 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -1,9 +1,18 @@ from mypyc.ir.ops import ERR_MAGIC -from mypyc.ir.rtypes import object_rprimitive +from mypyc.ir.rtypes import object_rprimitive, pointer_rprimitive from mypyc.primitives.registry import function_op # Weakref operations +new_ref_op = function_op( + name="weakref.ReferenceType", + arg_types=[object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewRef", + extra_int_constants=[(0, pointer_rprimitive)], + error_kind=ERR_MAGIC, +) + new_ref_op = function_op( name="weakref.ReferenceType", arg_types=[object_rprimitive, object_rprimitive], From 216df5e0bdcc9398102c7d9d7bc10a7dd7e30fa9 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:37:55 -0400 Subject: [PATCH 06/16] Update irbuild-weakref.test --- mypyc/test-data/irbuild-weakref.test | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test index 2258d06115be..48af3c36470b 100644 --- a/mypyc/test-data/irbuild-weakref.test +++ b/mypyc/test-data/irbuild-weakref.test @@ -1,3 +1,16 @@ +[case testWeakrefRef] +import weakref +from typing import Any, Callable +def f(x: object) -> object: + return weakref.ref(x) + +[out] +def f(x, cb): + x, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, NULL) + return r0 + [case testWeakrefRefCallback] import weakref from typing import Any, Callable @@ -11,6 +24,19 @@ L0: r0 = PyWeakref_NewRef(x, cb) return r0 +[case testFromWeakrefRef] +from typing import Any, Callable +from weakref import ref +def f(x: object) -> object: + return ref(x) + +[out] +def f(x, cb): + x, r0 :: object +L0: + r0 = PyWeakref_NewRef(x, NULL) + return r0 + [case testFromWeakrefRefCallback] from typing import Any, Callable from weakref import ref From 180c98c3bdbb54f4737370c55009e1afd5466e16 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:38:46 -0400 Subject: [PATCH 07/16] Update run-weakref.test --- mypyc/test-data/run-weakref.test | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test index de2d5dd5bad2..a591bf6260b9 100644 --- a/mypyc/test-data/run-weakref.test +++ b/mypyc/test-data/run-weakref.test @@ -11,6 +11,13 @@ class Object: """some random weakreffable object""" pass +def test_weakref_ref(): + obj = Object() + r = ref(obj) + assert r() is obj + obj = None + assert r() is None, r() + def test_weakref_ref_with_callback(): obj = Object() r = ref(obj, lambda x: x) From e0b20f51b6bf34f8ecd3d1686bb76b81792b9f42 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:54:11 -0400 Subject: [PATCH 08/16] Update irbuild-weakref.test --- mypyc/test-data/irbuild-weakref.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test index 48af3c36470b..29894916bd7a 100644 --- a/mypyc/test-data/irbuild-weakref.test +++ b/mypyc/test-data/irbuild-weakref.test @@ -5,7 +5,7 @@ def f(x: object) -> object: return weakref.ref(x) [out] -def f(x, cb): +def f(x): x, r0 :: object L0: r0 = PyWeakref_NewRef(x, NULL) @@ -31,7 +31,7 @@ def f(x: object) -> object: return ref(x) [out] -def f(x, cb): +def f(x): x, r0 :: object L0: r0 = PyWeakref_NewRef(x, NULL) From c0f9bd294cdd6698e499087d87ed2a678f618a7e Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Mon, 2 Jun 2025 13:09:35 -0400 Subject: [PATCH 09/16] Update irbuild-weakref.test --- mypyc/test-data/irbuild-weakref.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test index 29894916bd7a..58ac6417d297 100644 --- a/mypyc/test-data/irbuild-weakref.test +++ b/mypyc/test-data/irbuild-weakref.test @@ -8,7 +8,7 @@ def f(x: object) -> object: def f(x): x, r0 :: object L0: - r0 = PyWeakref_NewRef(x, NULL) + r0 = PyWeakref_NewRef(x, 0) return r0 [case testWeakrefRefCallback] @@ -34,7 +34,7 @@ def f(x: object) -> object: def f(x): x, r0 :: object L0: - r0 = PyWeakref_NewRef(x, NULL) + r0 = PyWeakref_NewRef(x, 0) return r0 [case testFromWeakrefRefCallback] From 83cb39ff89c2efe265db75f92b95b5d56b250075 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:00:06 -0400 Subject: [PATCH 10/16] Update weakref_ops.py --- mypyc/primitives/weakref_ops.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index 29291024251d..b3aa8d2d5be1 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -13,10 +13,27 @@ error_kind=ERR_MAGIC, ) -new_ref_op = function_op( +new_ref__with_callback_op = function_op( name="weakref.ReferenceType", arg_types=[object_rprimitive, object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewRef", error_kind=ERR_MAGIC, ) + +new_proxy_op = function_op( + name="weakref.ProxyType", + arg_types=[object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewProxy", + extra_int_constants=[(0, pointer_rprimitive)], + error_kind=ERR_MAGIC, +) + +new_proxy_with_callback_op = function_op( + name="weakref.ProxyType", + arg_types=[object_rprimitive, object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewProxy", + error_kind=ERR_MAGIC, +) From 9e1375df84d55c884df65be84b05fe3a968ee0df Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:00:35 -0400 Subject: [PATCH 11/16] Update weakref_ops.py --- mypyc/primitives/weakref_ops.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index b3aa8d2d5be1..a7ac035b22a4 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -20,20 +20,3 @@ c_function_name="PyWeakref_NewRef", error_kind=ERR_MAGIC, ) - -new_proxy_op = function_op( - name="weakref.ProxyType", - arg_types=[object_rprimitive], - return_type=object_rprimitive, - c_function_name="PyWeakref_NewProxy", - extra_int_constants=[(0, pointer_rprimitive)], - error_kind=ERR_MAGIC, -) - -new_proxy_with_callback_op = function_op( - name="weakref.ProxyType", - arg_types=[object_rprimitive, object_rprimitive], - return_type=object_rprimitive, - c_function_name="PyWeakref_NewProxy", - error_kind=ERR_MAGIC, -) From aca4f5e76d73c9a00be403e4371c2811e7fd9ea8 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:00:59 -0400 Subject: [PATCH 12/16] feat: new primitives for weakref.proxy --- mypyc/primitives/weakref_ops.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index a7ac035b22a4..b3aa8d2d5be1 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -20,3 +20,20 @@ c_function_name="PyWeakref_NewRef", error_kind=ERR_MAGIC, ) + +new_proxy_op = function_op( + name="weakref.ProxyType", + arg_types=[object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewProxy", + extra_int_constants=[(0, pointer_rprimitive)], + error_kind=ERR_MAGIC, +) + +new_proxy_with_callback_op = function_op( + name="weakref.ProxyType", + arg_types=[object_rprimitive, object_rprimitive], + return_type=object_rprimitive, + c_function_name="PyWeakref_NewProxy", + error_kind=ERR_MAGIC, +) From 86423db11e53753c342a9b62a8af11f199f4259a Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:04:04 -0400 Subject: [PATCH 13/16] Update irbuild-weakref.test --- mypyc/test-data/irbuild-weakref.test | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/mypyc/test-data/irbuild-weakref.test b/mypyc/test-data/irbuild-weakref.test index 58ac6417d297..2180b1e747aa 100644 --- a/mypyc/test-data/irbuild-weakref.test +++ b/mypyc/test-data/irbuild-weakref.test @@ -49,3 +49,55 @@ def f(x, cb): L0: r0 = PyWeakref_NewRef(x, cb) return r0 + +[case testWeakrefProxy] +import weakref +from typing import Any, Callable +def f(x: object) -> object: + return weakref.proxy(x) + +[out] +def f(x): + x, r0 :: object +L0: + r0 = PyWeakref_NewProxy(x, 0) + return r0 + +[case testWeakrefProxyCallback] +import weakref +from typing import Any, Callable +def f(x: object, cb: Callable[[object], Any]) -> object: + return weakref.proxy(x, cb) + +[out] +def f(x, cb): + x, cb, r0 :: object +L0: + r0 = PyWeakref_NewProxy(x, cb) + return r0 + +[case testFromWeakrefProxy] +from typing import Any, Callable +from weakref import proxy +def f(x: object) -> object: + return proxy(x) + +[out] +def f(x): + x, r0 :: object +L0: + r0 = PyWeakref_NewProxy(x, 0) + return r0 + +[case testFromWeakrefProxyCallback] +from typing import Any, Callable +from weakref import proxy +def f(x: object, cb: Callable[[object], Any]) -> object: + return proxy(x, cb) + +[out] +def f(x, cb): + x, cb, r0 :: object +L0: + r0 = PyWeakref_NewProxy(x, cb) + return r0 From 84bd94a5e55a12ba752183a5595718194ac19d3b Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:06:29 -0400 Subject: [PATCH 14/16] Update run-weakref.test --- mypyc/test-data/run-weakref.test | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/mypyc/test-data/run-weakref.test b/mypyc/test-data/run-weakref.test index a591bf6260b9..794f3f7c5564 100644 --- a/mypyc/test-data/run-weakref.test +++ b/mypyc/test-data/run-weakref.test @@ -3,13 +3,14 @@ [case testWeakrefRef] import asyncio import pytest # type: ignore [import-not-found] -from weakref import ref +from weakref import proxy, ref from mypy_extensions import mypyc_attr @mypyc_attr(native_class=False) class Object: """some random weakreffable object""" - pass + def some_meth(self) -> int: + return 1 def test_weakref_ref(): obj = Object() @@ -24,3 +25,19 @@ def test_weakref_ref_with_callback(): assert r() is obj obj = None assert r() is None, r() + +def test_weakref_proxy(): + obj = Object() + p = proxy(obj) + assert p.some_meth() == 1 + obj = None + with pytest.raises(ReferenceError): + p.some_meth() + +def test_weakref_proxy_with_callback(): + obj = Object() + p = proxy(obj, lambda x: x) + assert p.some_meth() == 1 + obj = None + with pytest.raises(ReferenceError): + p.some_meth() From 4e8eb4884749469de13f37d6a2de99f49e59959b Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:18:28 -0400 Subject: [PATCH 15/16] Update weakref_ops.py --- mypyc/primitives/weakref_ops.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index b3aa8d2d5be1..e10b9bc1be74 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -14,7 +14,7 @@ ) new_ref__with_callback_op = function_op( - name="weakref.ReferenceType", + name="weakref.proxy", arg_types=[object_rprimitive, object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewRef", @@ -22,7 +22,7 @@ ) new_proxy_op = function_op( - name="weakref.ProxyType", + name="weakref.proxy", arg_types=[object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewProxy", From f7af02fb7181c914f29ce5d82db9bc7183a2eab1 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Tue, 3 Jun 2025 13:19:08 -0400 Subject: [PATCH 16/16] Update weakref_ops.py --- mypyc/primitives/weakref_ops.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mypyc/primitives/weakref_ops.py b/mypyc/primitives/weakref_ops.py index e10b9bc1be74..5dbc09c76a35 100644 --- a/mypyc/primitives/weakref_ops.py +++ b/mypyc/primitives/weakref_ops.py @@ -14,7 +14,7 @@ ) new_ref__with_callback_op = function_op( - name="weakref.proxy", + name="weakref.ReferenceType", arg_types=[object_rprimitive, object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewRef", @@ -22,7 +22,7 @@ ) new_proxy_op = function_op( - name="weakref.proxy", + name="_weakref.proxy", arg_types=[object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewProxy", @@ -31,7 +31,7 @@ ) new_proxy_with_callback_op = function_op( - name="weakref.ProxyType", + name="_weakref.proxy", arg_types=[object_rprimitive, object_rprimitive], return_type=object_rprimitive, c_function_name="PyWeakref_NewProxy",