Răsfoiți Sursa

change `AttributeError`'s error msg

blueloveTH 2 ani în urmă
părinte
comite
51ab011253
1 a modificat fișierele cu 5 adăugiri și 1 ștergeri
  1. 5 1
      include/pocketpy/vm.h

+ 5 - 1
include/pocketpy/vm.h

@@ -372,7 +372,11 @@ public:
 
     void AttributeError(PyObject* obj, StrName name){
         // OBJ_NAME calls getattr, which may lead to a infinite recursion
-        _error("AttributeError", fmt("type ", OBJ_NAME(_t(obj)).escape(), " has no attribute ", name.escape()));
+        if(isinstance(obj, vm->tp_type)){
+            _error("AttributeError", fmt("type object ", OBJ_NAME(obj).escape(), " has no attribute ", name.escape()));
+        }else{
+            _error("AttributeError", fmt(OBJ_NAME(_t(obj)).escape(), " object has no attribute ", name.escape()));
+        }
     }
 
     void AttributeError(Str msg){ _error("AttributeError", msg); }