From ea535856b4f7715dec102655aabc57fa8dc9b015 Mon Sep 17 00:00:00 2001 From: Yonatan Goldschmidt Date: Sun, 5 May 2019 20:40:32 +0300 Subject: [PATCH] Raise error on out-of-range input in `chr()` --- vm/src/builtins.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vm/src/builtins.rs b/vm/src/builtins.rs index a82914ad1..b99a38608 100644 --- a/vm/src/builtins.rs +++ b/vm/src/builtins.rs @@ -73,10 +73,10 @@ fn builtin_callable(obj: PyObjectRef, vm: &VirtualMachine) -> bool { vm.is_callable(&obj) } -fn builtin_chr(i: u32, _vm: &VirtualMachine) -> String { +fn builtin_chr(i: u32, vm: &VirtualMachine) -> PyResult { match char::from_u32(i) { - Some(value) => value.to_string(), - None => '_'.to_string(), + Some(value) => Ok(value.to_string()), + None => Err(vm.new_value_error("chr() arg not in range(0x110000)".to_string())), } }