Просмотр исходного кода

change `AttributeError`'s error msg

blueloveTH 2 лет назад
Родитель
Сommit
51ab011253
1 измененных файлов с 5 добавлено и 1 удалено
  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); }