diff --git a/src/interpreter/vtable.rs b/src/interpreter/vtable.rs index 6a3de7aae808..726c6ce3913a 100644 --- a/src/interpreter/vtable.rs +++ b/src/interpreter/vtable.rs @@ -20,8 +20,8 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> { debug!("get_vtable(trait_ref={:?})", trait_ref); - let methods: Vec<_> = traits::supertraits(tcx, trait_ref.clone()).flat_map(|trait_ref| { - match self.fulfill_obligation(trait_ref.clone()) { + let methods: Vec<_> = traits::supertraits(tcx, trait_ref).flat_map(|trait_ref| { + match self.fulfill_obligation(trait_ref) { // Should default trait error here? traits::VtableDefaultImpl(_) | traits::VtableBuiltin(_) => { diff --git a/src/memory.rs b/src/memory.rs index c02ea22c1d99..79b4b8b64d61 100644 --- a/src/memory.rs +++ b/src/memory.rs @@ -314,7 +314,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> { Some(&FunctionDefinition { def_id, kind: FunctionKind::Closure { ref substs, ref ty } - }) => Ok((def_id, substs.clone(), ty.clone())), + }) => Ok((def_id, *substs, ty.clone())), Some(&FunctionDefinition { kind: FunctionKind::Function { .. }, .. }) => Err(EvalError::CalledClosureAsFunction),