diff --git a/codegen/src/module.rs b/codegen/src/module.rs index c1d7d6a3..30afc75c 100644 --- a/codegen/src/module.rs +++ b/codegen/src/module.rs @@ -150,7 +150,7 @@ impl Parse for Module { name: ident.to_string(), typ: ty.clone(), expr: expr.as_ref().clone(), - cfg_attrs: crate::attrs::collect_cfg_attr(&attrs), + cfg_attrs: crate::attrs::collect_cfg_attr(attrs), }), _ => {} } @@ -167,7 +167,7 @@ impl Parse for Module { }) => custom_types.push(ExportedType { name: ident.to_string(), typ: ty.clone(), - cfg_attrs: crate::attrs::collect_cfg_attr(&attrs), + cfg_attrs: crate::attrs::collect_cfg_attr(attrs), }), _ => {} } diff --git a/codegen/src/rhai_module.rs b/codegen/src/rhai_module.rs index 10b61e20..dc26e958 100644 --- a/codegen/src/rhai_module.rs +++ b/codegen/src/rhai_module.rs @@ -45,8 +45,8 @@ pub fn generate_body( .. } in consts { - let const_literal = syn::LitStr::new(&const_name, Span::call_site()); - let const_ref = syn::Ident::new(&const_name, Span::call_site()); + let const_literal = syn::LitStr::new(const_name, Span::call_site()); + let const_ref = syn::Ident::new(const_name, Span::call_site()); let cfg_attrs: Vec<_> = cfg_attrs .iter() @@ -69,7 +69,7 @@ pub fn generate_body( .. } in custom_types { - let const_literal = syn::LitStr::new(&name, Span::call_site()); + let const_literal = syn::LitStr::new(name, Span::call_site()); let cfg_attrs: Vec<_> = cfg_attrs .iter() @@ -86,7 +86,7 @@ pub fn generate_body( } for item_mod in sub_modules { - item_mod.update_scope(&parent_scope); + item_mod.update_scope(parent_scope); if item_mod.skipped() { continue; } @@ -117,7 +117,7 @@ pub fn generate_body( let mut gen_fn_tokens = Vec::new(); for function in fns { - function.update_scope(&parent_scope); + function.update_scope(parent_scope); if function.skipped() { continue; } diff --git a/src/api/call_fn.rs b/src/api/call_fn.rs index 8c5a9b22..53445c2c 100644 --- a/src/api/call_fn.rs +++ b/src/api/call_fn.rs @@ -268,7 +268,7 @@ impl Engine { // Check for data race. #[cfg(not(feature = "no_closure"))] - crate::func::call::ensure_no_data_race(name, &mut args, false)?; + crate::func::call::ensure_no_data_race(name, &args, false)?; let lib = &[ast.as_ref()]; let fn_def = ast diff --git a/src/api/custom_syntax.rs b/src/api/custom_syntax.rs index 3c48d340..6c7e2525 100644 --- a/src/api/custom_syntax.rs +++ b/src/api/custom_syntax.rs @@ -149,7 +149,7 @@ impl Expression<'_> { impl AsRef for Expression<'_> { #[inline(always)] fn as_ref(&self) -> &Expr { - &self.0 + self.0 } } @@ -158,7 +158,7 @@ impl Deref for Expression<'_> { #[inline(always)] fn deref(&self) -> &Self::Target { - &self.0 + self.0 } } @@ -178,7 +178,7 @@ impl Engine { /// /// Not available under `no_custom_syntax`. /// - /// * `symbols` holds a slice of strings that define the custom syntax. + /// * `symbols` holds a slice of strings that define the custom syntax. /// * `scope_may_be_changed` specifies variables _may_ be added/removed by this custom syntax. /// * `func` is the implementation function. /// @@ -365,8 +365,7 @@ impl Engine { parse: Box::new(parse), func: Box::new(func), scope_may_be_changed, - } - .into(), + }, ); self } diff --git a/src/api/type_names.rs b/src/api/type_names.rs index de6961c1..5717b7cc 100644 --- a/src/api/type_names.rs +++ b/src/api/type_names.rs @@ -102,8 +102,8 @@ fn map_std_type_name(name: &str, shorthands: bool) -> &str { }; } - if name.starts_with("rhai::") { - map_std_type_name(&name[6..], shorthands) + if let Some(stripped) = name.strip_prefix("rhai::") { + map_std_type_name(stripped, shorthands) } else { name } diff --git a/src/ast/ast.rs b/src/ast/ast.rs index e7dcddf9..8a033e2d 100644 --- a/src/ast/ast.rs +++ b/src/ast/ast.rs @@ -793,11 +793,8 @@ impl AST { || !options.contains(ASTFlags::CONSTANT) && include_variables => { let (name, expr, ..) = &**x; - if let Some(value) = expr.get_literal_value() { - Some((name.as_str(), options.contains(ASTFlags::CONSTANT), value)) - } else { - None - } + expr.get_literal_value() + .map(|value| (name.as_str(), options.contains(ASTFlags::CONSTANT), value)) } _ => None, }) diff --git a/src/ast/stmt.rs b/src/ast/stmt.rs index 21b6bc4b..c2cad9da 100644 --- a/src/ast/stmt.rs +++ b/src/ast/stmt.rs @@ -215,8 +215,8 @@ impl IntoIterator for RangeCase { #[inline(always)] fn into_iter(self) -> Self::IntoIter { match self { - Self::ExclusiveInt(r, ..) => Box::new(r.into_iter()), - Self::InclusiveInt(r, ..) => Box::new(r.into_iter()), + Self::ExclusiveInt(r, ..) => Box::new(r), + Self::InclusiveInt(r, ..) => Box::new(r), } } } @@ -507,8 +507,7 @@ impl<'a> IntoIterator for &'a StmtBlock { #[inline(always)] fn into_iter(self) -> Self::IntoIter { - let x = self.block.iter(); - x + self.block.iter() } } diff --git a/src/engine.rs b/src/engine.rs index 10a80417..b6817419 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -335,7 +335,7 @@ impl Engine { } #[cfg(not(feature = "unchecked"))] - self.check_data_size(&r, _pos)?; + self.check_data_size(r, _pos)?; } _ => (), } diff --git a/src/eval/eval_context.rs b/src/eval/eval_context.rs index 3d83eb15..e57b87a2 100644 --- a/src/eval/eval_context.rs +++ b/src/eval/eval_context.rs @@ -190,7 +190,7 @@ impl<'a, 's, 'ps, 'g, 'pg, 'c, 'pc, 't, 'pt> EvalContext<'a, 's, 'ps, 'g, 'pg, ' caches, self.lib, self.this_ptr, - &statements, + statements, rewind_scope, self.level, ), diff --git a/src/eval/expr.rs b/src/eval/expr.rs index c4a0011f..2980760e 100644 --- a/src/eval/expr.rs +++ b/src/eval/expr.rs @@ -99,7 +99,7 @@ impl Engine { let mut target: Target = value.clone().into(); // Module variables are constant target.set_access_mode(AccessMode::ReadOnly); - return Ok((target.into(), *_var_pos)); + return Ok((target, *_var_pos)); } } @@ -518,6 +518,6 @@ impl Engine { #[cfg(feature = "debugging")] global.debugger.reset_status(reset_debugger); - return result; + result } } diff --git a/src/eval/stmt.rs b/src/eval/stmt.rs index 6adf499f..86a06e04 100644 --- a/src/eval/stmt.rs +++ b/src/eval/stmt.rs @@ -161,7 +161,7 @@ impl Engine { ) { Ok(_) => { #[cfg(not(feature = "unchecked"))] - self.check_data_size(&args[0], root.1)?; + self.check_data_size(args[0], root.1)?; } Err(err) if matches!(*err, ERR::ErrorFunctionNotFound(ref f, ..) if f.starts_with(op_assign)) => { @@ -577,7 +577,7 @@ impl Engine { } let condition = self - .eval_expr(scope, global, caches, lib, this_ptr, &expr, level) + .eval_expr(scope, global, caches, lib, this_ptr, expr, level) .and_then(|v| { v.as_bool().map_err(|typ| { self.make_type_mismatch_err::(typ, expr.position()) @@ -943,7 +943,7 @@ impl Engine { } let path_result = self - .eval_expr(scope, global, caches, lib, this_ptr, &expr, level) + .eval_expr(scope, global, caches, lib, this_ptr, expr, level) .and_then(|v| { let typ = v.type_name(); v.try_cast::().ok_or_else(|| { @@ -1036,6 +1036,6 @@ impl Engine { #[cfg(feature = "debugging")] global.debugger.reset_status(reset_debugger); - return result; + result } } diff --git a/src/func/call.rs b/src/func/call.rs index 6a0b05aa..6c17d422 100644 --- a/src/func/call.rs +++ b/src/func/call.rs @@ -281,7 +281,7 @@ impl Engine { return args.and_then(|args| { if !is_op_assignment { - get_builtin_binary_op_fn(fn_name, &args[0], &args[1]).map(|f| { + get_builtin_binary_op_fn(fn_name, args[0], args[1]).map(|f| { FnResolutionCacheEntry { func: CallableFunction::from_method( Box::new(f) as Box @@ -454,7 +454,7 @@ impl Engine { // Check the data size of any `&mut` object, which may be changed. #[cfg(not(feature = "unchecked"))] if is_ref_mut && args.len() > 0 { - self.check_data_size(&args[0], pos)?; + self.check_data_size(args[0], pos)?; } // See if the function match print/debug (which requires special processing) @@ -464,7 +464,7 @@ impl Engine { let t = self.map_type_name(type_name::()).into(); ERR::ErrorMismatchOutputType(t, typ.into(), pos) })?; - ((&*self.print)(&text).into(), false) + ((*self.print)(&text).into(), false) } KEYWORD_DEBUG => { let text = result.into_immutable_string().map_err(|typ| { @@ -476,7 +476,7 @@ impl Engine { } else { Some(global.source.as_str()) }; - ((&*self.debug)(&text, source, pos).into(), false) + ((*self.debug)(&text, source, pos).into(), false) } _ => (result, is_method), }); diff --git a/src/module/mod.rs b/src/module/mod.rs index 65c61253..18d996c1 100644 --- a/src/module/mod.rs +++ b/src/module/mod.rs @@ -90,7 +90,7 @@ pub struct FuncInfo { impl FuncInfo { /// Format a return type to be display-friendly. /// - /// `()` is cleared. + /// `()` is cleared. /// [`RhaiResult`][crate::RhaiResult] and [`RhaiResultOf`] are expanded. #[cfg(feature = "metadata")] pub fn format_type(typ: &str, is_return_type: bool) -> std::borrow::Cow { @@ -693,7 +693,7 @@ impl Module { #[cfg(feature = "metadata")] comments: Box::default(), }, - func: Into::::into(fn_def).into(), + func: fn_def.into(), param_types: StaticVec::new_const(), } .into(), @@ -1029,7 +1029,7 @@ impl Module { #[cfg(feature = "metadata")] comments: Box::default(), }, - func: func.into(), + func, param_types, } .into(), @@ -1860,7 +1860,7 @@ impl Module { let orig_constants = std::mem::take(&mut global.constants); // Run the script - let result = engine.eval_ast_with_scope_raw(&mut scope, global, &ast, 0); + let result = engine.eval_ast_with_scope_raw(&mut scope, global, ast, 0); // Create new module let mut module = Module::new(); diff --git a/src/optimizer.rs b/src/optimizer.rs index 03bb8fbd..ebc029aa 100644 --- a/src/optimizer.rs +++ b/src/optimizer.rs @@ -151,7 +151,7 @@ impl<'a> OptimizerState<'a> { &mut self.caches, lib, fn_name, - calc_fn_hash(&fn_name, arg_values.len()), + calc_fn_hash(fn_name, arg_values.len()), &mut arg_values.iter_mut().collect::>(), false, false, @@ -1421,7 +1421,7 @@ pub fn optimize_into_ast( OptimizationLevel::Simple | OptimizationLevel::Full => optimize_top_level( statements, engine, - &scope, + scope, #[cfg(not(feature = "no_function"))] &[&lib], optimization_level, diff --git a/src/tokenizer.rs b/src/tokenizer.rs index fa1fcad9..eda7720c 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -1485,7 +1485,7 @@ fn get_next_token_inner( let return_comment = return_comment || is_doc_comment(comment.as_ref().expect("`Some`")); if return_comment { - return Some((Token::Comment(comment.expect("`Some`").into()), start_pos)); + return Some((Token::Comment(comment.expect("`Some`")), start_pos)); } if state.comment_level > 0 { // Reached EOF without ending comment block diff --git a/src/types/dynamic.rs b/src/types/dynamic.rs index b596923a..8a6e1fa2 100644 --- a/src/types/dynamic.rs +++ b/src/types/dynamic.rs @@ -218,7 +218,7 @@ impl<'d, T: Any + Clone> Deref for DynamicReadLock<'d, T> { #[inline] fn deref(&self) -> &Self::Target { match self.0 { - DynamicReadLockInner::Reference(ref reference) => *reference, + DynamicReadLockInner::Reference(reference) => reference, #[cfg(not(feature = "no_closure"))] DynamicReadLockInner::Guard(ref guard) => guard.downcast_ref().expect(CHECKED), } diff --git a/src/types/fn_ptr.rs b/src/types/fn_ptr.rs index 719e8b0f..6b8d6254 100644 --- a/src/types/fn_ptr.rs +++ b/src/types/fn_ptr.rs @@ -181,7 +181,7 @@ impl FnPtr { let mut arg_values = crate::StaticVec::new_const(); args.parse(&mut arg_values); - let result = self.call_raw(&context, None, arg_values)?; + let result = self.call_raw(context, None, arg_values)?; let typ = context.engine().map_type_name(result.type_name()); diff --git a/src/types/scope.rs b/src/types/scope.rs index aaa76fa3..41e40afe 100644 --- a/src/types/scope.rs +++ b/src/types/scope.rs @@ -81,9 +81,9 @@ impl fmt::Display for Scope<'_> { #[cfg(feature = "no_closure")] let value_is_shared = ""; - write!( + writeln!( f, - "[{}] {}{}{} = {:?}\n", + "[{}] {}{}{} = {:?}", i + 1, if constant { "const " } else { "" }, name,