diff --git a/src/librustc/infer/type_variable.rs b/src/librustc/infer/type_variable.rs index d89625ac871a..36afb8b53672 100644 --- a/src/librustc/infer/type_variable.rs +++ b/src/librustc/infer/type_variable.rs @@ -89,7 +89,7 @@ enum TypeVariableValue<'tcx> { // We will use this to store the required information to recapitulate what happened when // an error occurs. -#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] pub struct Default<'tcx> { pub ty: Ty<'tcx>, /// The span where the default was incurred @@ -123,7 +123,7 @@ impl<'tcx> TypeVariableTable<'tcx> { pub fn default(&self, vid: ty::TyVid) -> Option> { match &self.values.get(vid.index as usize).value { &Known { .. } => None, - &Bounded { ref default, .. } => default.clone() + &Bounded { default, .. } => default, } } @@ -185,7 +185,7 @@ impl<'tcx> TypeVariableTable<'tcx> { self.eq_relations.new_key(()); self.sub_relations.new_key(()); let index = self.values.push(TypeVariableData { - value: Bounded { default: default }, + value: Bounded { default }, origin, diverging, });