// 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
pub fn default(&self, vid: ty::TyVid) -> Option<Default<'tcx>> {
match &self.values.get(vid.index as usize).value {
&Known { .. } => None,
- &Bounded { ref default, .. } => default.clone()
+ &Bounded { default, .. } => default,
}
}
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,
});