Add __reduce__ method to Ellipsis

This commit is contained in:
rusty
2019-08-15 15:28:20 +09:00
parent 49ed782098
commit 78017514ae
2 changed files with 10 additions and 1 deletions

View File

@@ -11,6 +11,9 @@ assert b is c
assert b is d
assert d is e
assert Ellipsis.__repr__() == 'Ellipsis'
assert Ellipsis.__reduce__() == 'Ellipsis'
assert Ellipsis is ...
Ellipsis = 2
assert Ellipsis is not ...

View File

@@ -5,7 +5,8 @@ use crate::vm::VirtualMachine;
pub fn init(context: &PyContext) {
extend_class!(context, &context.ellipsis_type, {
"__new__" => context.new_rustfunc(ellipsis_new),
"__repr__" => context.new_rustfunc(ellipsis_repr)
"__repr__" => context.new_rustfunc(ellipsis_repr),
"__reduce__" => context.new_rustfunc(ellipsis_reduce),
});
}
@@ -18,3 +19,8 @@ fn ellipsis_repr(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult {
arg_check!(vm, args, required = [(_cls, None)]);
Ok(vm.new_str("Ellipsis".to_string()))
}
fn ellipsis_reduce(vm: &VirtualMachine, args: PyFuncArgs) -> PyResult {
arg_check!(vm, args, required = [(_cls, None)]);
Ok(vm.new_str("Ellipsis".to_string()))
}