From 5c8757186364866423e952efce2e61de611fcff7 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Thu, 9 Jan 2020 23:32:49 +0900 Subject: [PATCH] Remove public field from PyBuiltinFunction --- vm/src/obj/objbuiltinfunc.rs | 7 +++++-- vm/src/vm.rs | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/vm/src/obj/objbuiltinfunc.rs b/vm/src/obj/objbuiltinfunc.rs index 928f240b0..6d198156a 100644 --- a/vm/src/obj/objbuiltinfunc.rs +++ b/vm/src/obj/objbuiltinfunc.rs @@ -6,8 +6,7 @@ use crate::pyobject::PyValue; use crate::vm::VirtualMachine; pub struct PyBuiltinFunction { - // TODO: shouldn't be public - pub value: PyNativeFunc, + value: PyNativeFunc, } impl PyValue for PyBuiltinFunction { @@ -26,4 +25,8 @@ impl PyBuiltinFunction { pub fn new(value: PyNativeFunc) -> Self { Self { value } } + + pub fn as_func(&self) -> &PyNativeFunc { + &self.value + } } diff --git a/vm/src/vm.rs b/vm/src/vm.rs index 918d52060..d82f224fd 100644 --- a/vm/src/vm.rs +++ b/vm/src/vm.rs @@ -673,8 +673,8 @@ impl VirtualMachine { args }; self.invoke(&function, args) - } else if let Some(PyBuiltinFunction { ref value }) = func_ref.payload() { - value(self, args) + } else if let Some(builtin_func) = func_ref.payload::() { + builtin_func.as_func()(self, args) } else if self.is_callable(&func_ref) { self.call_method(&func_ref, "__call__", args) } else {