From f45d2f03efb695a61cbccc15d9577302f944dd0d Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Fri, 14 Aug 2020 02:34:23 +0900 Subject: [PATCH] avoid to_pystr to generate type name --- vm/src/format.rs | 7 ++++--- vm/src/function.rs | 4 ++-- vm/src/obj/objbool.rs | 3 +-- vm/src/obj/objobject.rs | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vm/src/format.rs b/vm/src/format.rs index 04aac3809..b7bef16bb 100644 --- a/vm/src/format.rs +++ b/vm/src/format.rs @@ -910,9 +910,10 @@ fn call_object_format( let result = vm.call_method(&argument, "__format__", vec![returned_type])?; if !objtype::isinstance(&result, &vm.ctx.types.str_type) { - let result_type = result.class(); - let actual_type = vm.to_pystr(&result_type)?; - return Err(vm.new_type_error(format!("__format__ must return a str, not {}", actual_type))); + return Err(vm.new_type_error(format!( + "__format__ must return a str, not {}", + &result.class().name + ))); } Ok(result) } diff --git a/vm/src/function.rs b/vm/src/function.rs index 5f2329814..458cff2fa 100644 --- a/vm/src/function.rs +++ b/vm/src/function.rs @@ -128,8 +128,8 @@ impl PyFuncArgs { if isinstance(&kwarg, &ty) { Ok(Some(kwarg)) } else { - let expected_ty_name = vm.to_pystr(&ty)?; - let actual_ty_name = vm.to_pystr(&kwarg.class())?; + let expected_ty_name = &ty.name; + let actual_ty_name = &kwarg.class().name; Err(vm.new_type_error(format!( "argument of type {} is required for named parameter `{}` (got: {})", expected_ty_name, key, actual_ty_name diff --git a/vm/src/obj/objbool.rs b/vm/src/obj/objbool.rs index 457a9e352..41ebf4857 100644 --- a/vm/src/obj/objbool.rs +++ b/vm/src/obj/objbool.rs @@ -155,8 +155,7 @@ impl PyBool { #[pyslot] fn tp_new(zelf: PyObjectRef, x: OptionalArg, vm: &VirtualMachine) -> PyResult { if !objtype::isinstance(&zelf, &vm.ctx.types.type_type) { - let zelf_typ = zelf.class(); - let actual_type = vm.to_pystr(&zelf_typ)?; + let actual_type = &zelf.class().name; return Err(vm.new_type_error(format!( "requires a 'type' object but received a '{}'", actual_type diff --git a/vm/src/obj/objobject.rs b/vm/src/obj/objobject.rs index 82ac139c3..52f4be3dd 100644 --- a/vm/src/obj/objobject.rs +++ b/vm/src/obj/objobject.rs @@ -194,7 +194,7 @@ impl PyBaseObject { Ok(()) } Err(value) => { - let type_repr = vm.to_pystr(&value.class())?; + let type_repr = &value.class().name; Err(vm.new_type_error(format!( "__class__ must be set to a class, not '{}' object", type_repr