mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-11 14:10:19 +00:00
fix: dict and mappingproxy cannot be hashed
This commit is contained in:
parent
c99dfbe00a
commit
559c70c6fe
@ -988,6 +988,11 @@ void init_builtins(VM* _vm) {
|
|||||||
return (i64)_CAST(MappingProxy&, obj).attr().size();
|
return (i64)_CAST(MappingProxy&, obj).attr().size();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_vm->bind__hash__(_vm->tp_mappingproxy, [](VM* vm, PyObject* obj) {
|
||||||
|
vm->TypeError("unhashable type: 'mappingproxy'");
|
||||||
|
return (i64)0;
|
||||||
|
});
|
||||||
|
|
||||||
_vm->bind__getitem__(_vm->tp_mappingproxy, [](VM* vm, PyObject* obj, PyObject* index) {
|
_vm->bind__getitem__(_vm->tp_mappingproxy, [](VM* vm, PyObject* obj, PyObject* index) {
|
||||||
MappingProxy& self = _CAST(MappingProxy&, obj);
|
MappingProxy& self = _CAST(MappingProxy&, obj);
|
||||||
StrName key = CAST(Str&, index);
|
StrName key = CAST(Str&, index);
|
||||||
@ -1043,6 +1048,11 @@ void init_builtins(VM* _vm) {
|
|||||||
_vm->bind__len__(_vm->tp_dict, [](VM* vm, PyObject* obj) {
|
_vm->bind__len__(_vm->tp_dict, [](VM* vm, PyObject* obj) {
|
||||||
return (i64)_CAST(Dict&, obj).size();
|
return (i64)_CAST(Dict&, obj).size();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_vm->bind__hash__(_vm->tp_dict, [](VM* vm, PyObject* obj) {
|
||||||
|
vm->TypeError("unhashable type: 'dict'");
|
||||||
|
return (i64)0;
|
||||||
|
});
|
||||||
|
|
||||||
_vm->bind__getitem__(_vm->tp_dict, [](VM* vm, PyObject* obj, PyObject* index) {
|
_vm->bind__getitem__(_vm->tp_dict, [](VM* vm, PyObject* obj, PyObject* index) {
|
||||||
Dict& self = _CAST(Dict&, obj);
|
Dict& self = _CAST(Dict&, obj);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user