Rollup merge of #108101 - matthiaskrgr:noclonecopy, r=compiler-errors
don't clone types that are copy
This commit is contained in:
commit
ef0b12189e
@ -517,8 +517,7 @@ fn method_autoderef_steps<'tcx>(
|
||||
.by_ref()
|
||||
.map(|(ty, d)| {
|
||||
let step = CandidateStep {
|
||||
self_ty: infcx
|
||||
.make_query_response_ignoring_pending_obligations(inference_vars.clone(), ty),
|
||||
self_ty: infcx.make_query_response_ignoring_pending_obligations(inference_vars, ty),
|
||||
autoderefs: d,
|
||||
from_unsafe_deref: reached_raw_pointer,
|
||||
unsize: false,
|
||||
|
@ -92,7 +92,7 @@ fn complete(&self, key: K, value: V, index: DepNodeIndex) -> Self::Stored {
|
||||
let mut lock = self.cache.lock();
|
||||
// We may be overwriting another value. This is all right, since the dep-graph
|
||||
// will check that the fingerprint matches.
|
||||
lock.insert(key, (value.clone(), index));
|
||||
lock.insert(key, (value, index));
|
||||
value
|
||||
}
|
||||
|
||||
@ -153,7 +153,7 @@ fn lookup(&self, _key: &()) -> Option<(V, DepNodeIndex)> {
|
||||
|
||||
#[inline]
|
||||
fn complete(&self, _key: (), value: V, index: DepNodeIndex) -> Self::Stored {
|
||||
*self.cache.lock() = Some((value.clone(), index));
|
||||
*self.cache.lock() = Some((value, index));
|
||||
value
|
||||
}
|
||||
|
||||
@ -283,7 +283,7 @@ fn complete(&self, key: K, value: V, index: DepNodeIndex) -> Self::Stored {
|
||||
let mut lock = self.cache.get_shard_by_hash(key.index() as u64).lock();
|
||||
#[cfg(not(parallel_compiler))]
|
||||
let mut lock = self.cache.lock();
|
||||
lock.insert(key, (value.clone(), index));
|
||||
lock.insert(key, (value, index));
|
||||
value
|
||||
}
|
||||
|
||||
|
@ -547,7 +547,7 @@ fn try_merge_responses(
|
||||
response.value.certainty == Certainty::Yes
|
||||
&& response.has_no_inference_or_external_constraints()
|
||||
}) {
|
||||
return Ok(response.clone());
|
||||
return Ok(*response);
|
||||
}
|
||||
|
||||
let certainty = candidates.iter().fold(Certainty::AMBIGUOUS, |certainty, response| {
|
||||
|
@ -599,7 +599,7 @@ fn virtual_call_violation_for_method<'tcx>(
|
||||
return false;
|
||||
}
|
||||
|
||||
contains_illegal_self_type_reference(tcx, trait_def_id, pred.clone())
|
||||
contains_illegal_self_type_reference(tcx, trait_def_id, pred)
|
||||
}) {
|
||||
return Some(MethodViolationCode::WhereClauseReferencesSelf);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user