Răsfoiți Sursa

add `__or__` for type

blueloveTH 1 an în urmă
părinte
comite
55b7db54a2
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      src/public/py_object.c

+ 6 - 0
src/public/py_object.c

@@ -93,6 +93,11 @@ static bool type__getitem__(int argc, py_Ref argv) {
     return true;
     return true;
 }
 }
 
 
+static bool type__or__(int argc, py_Ref argv) {
+    py_assign(py_retval(), argv);
+    return true;
+}
+
 static bool type__module__(int argc, py_Ref argv) {
 static bool type__module__(int argc, py_Ref argv) {
     PY_CHECK_ARGC(1);
     PY_CHECK_ARGC(1);
     py_TypeInfo* ti = pk__type_info(py_totype(argv));
     py_TypeInfo* ti = pk__type_info(py_totype(argv));
@@ -127,6 +132,7 @@ void pk_object__register() {
     py_bindmagic(tp_type, __repr__, type__repr__);
     py_bindmagic(tp_type, __repr__, type__repr__);
     py_bindmagic(tp_type, __new__, type__new__);
     py_bindmagic(tp_type, __new__, type__new__);
     py_bindmagic(tp_type, __getitem__, type__getitem__);
     py_bindmagic(tp_type, __getitem__, type__getitem__);
+    py_bindmagic(tp_type, __or__, type__or__);
     py_bindproperty(tp_type, "__module__", type__module__, NULL);
     py_bindproperty(tp_type, "__module__", type__module__, NULL);
 
 
     py_bindproperty(tp_type, "__base__", type__base__, NULL);
     py_bindproperty(tp_type, "__base__", type__base__, NULL);