From 672cda63ab358d5d02626244d5601252106e39d8 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Mon, 14 Mar 2022 08:50:17 +0800 Subject: [PATCH] Simplify formatting. --- src/api/call_fn.rs | 8 +--- src/api/eval.rs | 8 +--- src/api/type_names.rs | 4 +- src/func/call.rs | 99 +++++++++++++++++-------------------------- src/func/native.rs | 8 +--- src/optimizer.rs | 3 +- src/types/fn_ptr.rs | 16 ++----- 7 files changed, 53 insertions(+), 93 deletions(-) diff --git a/src/api/call_fn.rs b/src/api/call_fn.rs index 32b91c96..80a0d193 100644 --- a/src/api/call_fn.rs +++ b/src/api/call_fn.rs @@ -69,12 +69,8 @@ impl Engine { let typ = self.map_type_name(result.type_name()); result.try_cast().ok_or_else(|| { - ERR::ErrorMismatchOutputType( - self.map_type_name(type_name::()).into(), - typ.into(), - Position::NONE, - ) - .into() + let t = self.map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), Position::NONE).into() }) } /// Call a script function defined in an [`AST`] with multiple [`Dynamic`] arguments and the diff --git a/src/api/eval.rs b/src/api/eval.rs index fc7d1bd7..dc4a4336 100644 --- a/src/api/eval.rs +++ b/src/api/eval.rs @@ -195,12 +195,8 @@ impl Engine { let typ = self.map_type_name(result.type_name()); result.try_cast::().ok_or_else(|| { - ERR::ErrorMismatchOutputType( - self.map_type_name(type_name::()).into(), - typ.into(), - Position::NONE, - ) - .into() + let t = self.map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), Position::NONE).into() }) } /// Evaluate an [`AST`] with own scope. diff --git a/src/api/type_names.rs b/src/api/type_names.rs index faf1fa44..3edb1c3b 100644 --- a/src/api/type_names.rs +++ b/src/api/type_names.rs @@ -125,7 +125,7 @@ impl Engine { #[inline(never)] #[must_use] pub(crate) fn make_type_mismatch_err(&self, typ: &str, pos: Position) -> RhaiError { - ERR::ErrorMismatchDataType(self.map_type_name(type_name::()).into(), typ.into(), pos) - .into() + let t = self.map_type_name(type_name::()).into(); + ERR::ErrorMismatchDataType(t, typ.into(), pos).into() } } diff --git a/src/func/call.rs b/src/func/call.rs index 67778783..5d88059c 100644 --- a/src/func/call.rs +++ b/src/func/call.rs @@ -466,11 +466,8 @@ impl Engine { KEYWORD_PRINT => { if let Some(ref print) = self.print { let text = result.into_immutable_string().map_err(|typ| { - ERR::ErrorMismatchOutputType( - self.map_type_name(type_name::()).into(), - typ.into(), - pos, - ) + let t = self.map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), pos) })?; (print(&text).into(), false) } else { @@ -480,11 +477,8 @@ impl Engine { KEYWORD_DEBUG => { if let Some(ref debug) = self.debug { let text = result.into_immutable_string().map_err(|typ| { - ERR::ErrorMismatchOutputType( - self.map_type_name(type_name::()).into(), - typ.into(), - pos, - ) + let t = self.map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), pos) })?; let source = match global.source.as_str() { "" => None, @@ -507,15 +501,10 @@ impl Engine { crate::engine::FN_IDX_GET => { assert!(args.len() == 2); - Err(ERR::ErrorIndexingType( - format!( - "{} [{}]", - self.map_type_name(args[0].type_name()), - self.map_type_name(args[1].type_name()) - ), - pos, - ) - .into()) + let t0 = self.map_type_name(args[0].type_name()); + let t1 = self.map_type_name(args[1].type_name()); + + Err(ERR::ErrorIndexingType(format!("{} [{}]", t0, t1), pos).into()) } // index setter function not found? @@ -523,16 +512,11 @@ impl Engine { crate::engine::FN_IDX_SET => { assert!(args.len() == 3); - Err(ERR::ErrorIndexingType( - format!( - "{} [{}] = {}", - self.map_type_name(args[0].type_name()), - self.map_type_name(args[1].type_name()), - self.map_type_name(args[2].type_name()) - ), - pos, - ) - .into()) + let t0 = self.map_type_name(args[0].type_name()); + let t1 = self.map_type_name(args[1].type_name()); + let t2 = self.map_type_name(args[3].type_name()); + + Err(ERR::ErrorIndexingType(format!("{} [{}] = {}", t0, t1, t2), pos).into()) } // Getter function not found? @@ -540,11 +524,13 @@ impl Engine { _ if name.starts_with(crate::engine::FN_GET) => { assert!(args.len() == 1); + let prop = &name[crate::engine::FN_GET.len()..]; + let t0 = self.map_type_name(args[0].type_name()); + Err(ERR::ErrorDotExpr( format!( "Unknown property '{}' - a getter is not registered for type '{}'", - &name[crate::engine::FN_GET.len()..], - self.map_type_name(args[0].type_name()) + prop, t0 ), pos, ) @@ -556,12 +542,14 @@ impl Engine { _ if name.starts_with(crate::engine::FN_SET) => { assert!(args.len() == 2); + let prop = &name[crate::engine::FN_SET.len()..]; + let t0 = self.map_type_name(args[0].type_name()); + let t1 = self.map_type_name(args[1].type_name()); + Err(ERR::ErrorDotExpr( format!( "No writable property '{}' - a setter is not registered for type '{}' to handle '{}'", - &name[crate::engine::FN_SET.len()..], - self.map_type_name(args[0].type_name()), - self.map_type_name(args[1].type_name()), + prop, t0, t1 ), pos, ) @@ -608,8 +596,11 @@ impl Engine { level: usize, ) -> RhaiResultOf<(Dynamic, bool)> { fn no_method_err(name: &str, pos: Position) -> RhaiResultOf<(Dynamic, bool)> { - let msg = format!("'{0}' should not be called this way. Try {0}(...);", name); - Err(ERR::ErrorRuntime(msg.into(), pos).into()) + Err(ERR::ErrorRuntime( + (format!("'{0}' should not be called this way. Try {0}(...);", name)).into(), + pos, + ) + .into()) } // Check for data race. @@ -623,10 +614,8 @@ impl Engine { match fn_name { // Handle type_of() KEYWORD_TYPE_OF if args.len() == 1 => { - return Ok(( - self.map_type_name(args[0].type_name()).to_string().into(), - false, - )) + let typ = self.map_type_name(args[0].type_name()).to_string().into(); + return Ok((typ, false)); } // Handle is_def_fn() @@ -816,16 +805,12 @@ impl Engine { KEYWORD_FN_PTR_CALL => { if !call_args.is_empty() { if !call_args[0].is::() { - return Err(self.make_type_mismatch_err::( - self.map_type_name(call_args[0].type_name()), - *call_arg_pos, - )); + let typ = self.map_type_name(call_args[0].type_name()); + return Err(self.make_type_mismatch_err::(typ, *call_arg_pos)); } } else { - return Err(self.make_type_mismatch_err::( - self.map_type_name(target.type_name()), - pos, - )); + let typ = self.map_type_name(target.type_name()); + return Err(self.make_type_mismatch_err::(typ, pos)); } // FnPtr call on object @@ -855,10 +840,8 @@ impl Engine { } KEYWORD_FN_PTR_CURRY => { if !target.is::() { - return Err(self.make_type_mismatch_err::( - self.map_type_name(target.type_name()), - pos, - )); + let typ = self.map_type_name(target.type_name()); + return Err(self.make_type_mismatch_err::(typ, pos)); } let fn_ptr = target.read_lock::().expect("`FnPtr`"); @@ -1005,10 +988,8 @@ impl Engine { self.get_arg_value(scope, global, state, lib, this_ptr, arg, level)?; if !arg_value.is::() { - return Err(self.make_type_mismatch_err::( - self.map_type_name(arg_value.type_name()), - arg_pos, - )); + let typ = self.map_type_name(arg_value.type_name()); + return Err(self.make_type_mismatch_err::(typ, arg_pos)); } let fn_ptr = arg_value.cast::(); @@ -1055,10 +1036,8 @@ impl Engine { self.get_arg_value(scope, global, state, lib, this_ptr, first, level)?; if !arg_value.is::() { - return Err(self.make_type_mismatch_err::( - self.map_type_name(arg_value.type_name()), - arg_pos, - )); + let typ = self.map_type_name(arg_value.type_name()); + return Err(self.make_type_mismatch_err::(typ, arg_pos)); } let (name, fn_curry) = arg_value.cast::().take_data(); diff --git a/src/func/native.rs b/src/func/native.rs index c3932824..91756290 100644 --- a/src/func/native.rs +++ b/src/func/native.rs @@ -277,12 +277,8 @@ impl<'a> NativeCallContext<'a> { let typ = self.engine().map_type_name(result.type_name()); result.try_cast().ok_or_else(|| { - ERR::ErrorMismatchOutputType( - self.engine().map_type_name(type_name::()).into(), - typ.into(), - Position::NONE, - ) - .into() + let t = self.engine().map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), Position::NONE).into() }) } /// Call a function inside the call context. diff --git a/src/optimizer.rs b/src/optimizer.rs index a8fa2e4c..a9952ce0 100644 --- a/src/optimizer.rs +++ b/src/optimizer.rs @@ -1085,7 +1085,8 @@ fn optimize_expr(expr: &mut Expr, state: &mut OptimizerState, chaining: bool) { match x.name.as_str() { KEYWORD_TYPE_OF if arg_values.len() == 1 => { state.set_dirty(); - *expr = Expr::from_dynamic(state.engine.map_type_name(arg_values[0].type_name()).into(), *pos); + let typ = state.engine.map_type_name(arg_values[0].type_name()).into(); + *expr = Expr::from_dynamic(typ, *pos); return; } #[cfg(not(feature = "no_closure"))] diff --git a/src/types/fn_ptr.rs b/src/types/fn_ptr.rs index 08712902..9d2d60cf 100644 --- a/src/types/fn_ptr.rs +++ b/src/types/fn_ptr.rs @@ -162,12 +162,8 @@ impl FnPtr { let typ = engine.map_type_name(result.type_name()); result.try_cast().ok_or_else(|| { - ERR::ErrorMismatchOutputType( - engine.map_type_name(type_name::()).into(), - typ.into(), - Position::NONE, - ) - .into() + let t = engine.map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), Position::NONE).into() }) } /// Call the function pointer with curried arguments (if any). @@ -190,12 +186,8 @@ impl FnPtr { let typ = context.engine().map_type_name(result.type_name()); result.try_cast().ok_or_else(|| { - ERR::ErrorMismatchOutputType( - context.engine().map_type_name(type_name::()).into(), - typ.into(), - Position::NONE, - ) - .into() + let t = context.engine().map_type_name(type_name::()).into(); + ERR::ErrorMismatchOutputType(t, typ.into(), Position::NONE).into() }) } /// Call the function pointer with curried arguments (if any).