Ver código fonte

change `AttributeError`'s error msg

blueloveTH 3 anos atrás
pai
commit
51ab011253
1 arquivos alterados com 5 adições e 1 exclusões
  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); }