1
Fork 0

remove redundant clones

This commit is contained in:
Matthias Krüger 2023-04-15 18:04:51 +02:00
parent 2816486986
commit 1077d574cf
2 changed files with 12 additions and 11 deletions

View file

@ -570,15 +570,13 @@ impl<'a> Parser<'a> {
let expect = tokens_to_string(&expected); let expect = tokens_to_string(&expected);
let actual = super::token_descr(&self.token); let actual = super::token_descr(&self.token);
let (msg_exp, (label_sp, label_exp)) = if expected.len() > 1 { let (msg_exp, (label_sp, label_exp)) = if expected.len() > 1 {
let fmt = format!("expected one of {expect}, found {actual}");
let short_expect = if expected.len() > 6 { let short_expect = if expected.len() > 6 {
format!("{} possible tokens", expected.len()) format!("{} possible tokens", expected.len())
} else { } else {
expect.clone() expect
}; };
( (fmt, (self.prev_token.span.shrink_to_hi(), format!("expected one of {short_expect}")))
format!("expected one of {expect}, found {actual}"),
(self.prev_token.span.shrink_to_hi(), format!("expected one of {short_expect}")),
)
} else if expected.is_empty() { } else if expected.is_empty() {
( (
format!("unexpected token: {actual}"), format!("unexpected token: {actual}"),

View file

@ -2944,22 +2944,25 @@ impl<'tcx> InferCtxtPrivExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
rustc_transmute::Answer::No(reason) => { rustc_transmute::Answer::No(reason) => {
let dst = trait_ref.skip_binder().substs.type_at(0); let dst = trait_ref.skip_binder().substs.type_at(0);
let src = trait_ref.skip_binder().substs.type_at(1); let src = trait_ref.skip_binder().substs.type_at(1);
let custom_err_msg = format!("`{src}` cannot be safely transmuted into `{dst}` in the defining scope of `{scope}`").to_string(); let custom_err_msg = format!(
"`{src}` cannot be safely transmuted into `{dst}` in the defining scope of `{scope}`"
);
let reason_msg = match reason { let reason_msg = match reason {
rustc_transmute::Reason::SrcIsUnspecified => { rustc_transmute::Reason::SrcIsUnspecified => {
format!("`{src}` does not have a well-specified layout").to_string() format!("`{src}` does not have a well-specified layout")
} }
rustc_transmute::Reason::DstIsUnspecified => { rustc_transmute::Reason::DstIsUnspecified => {
format!("`{dst}` does not have a well-specified layout").to_string() format!("`{dst}` does not have a well-specified layout")
} }
rustc_transmute::Reason::DstIsBitIncompatible => { rustc_transmute::Reason::DstIsBitIncompatible => {
format!("At least one value of `{src}` isn't a bit-valid value of `{dst}`") format!("At least one value of `{src}` isn't a bit-valid value of `{dst}`")
.to_string()
} }
rustc_transmute::Reason::DstIsPrivate => format!( rustc_transmute::Reason::DstIsPrivate => format!(
"`{dst}` is or contains a type or field that is not visible in that scope" "`{dst}` is or contains a type or field that is not visible in that scope"
) ),
.to_string(),
// FIXME(bryangarza): Include the number of bytes of src and dst // FIXME(bryangarza): Include the number of bytes of src and dst
rustc_transmute::Reason::DstIsTooBig => { rustc_transmute::Reason::DstIsTooBig => {
format!("The size of `{src}` is smaller than the size of `{dst}`") format!("The size of `{src}` is smaller than the size of `{dst}`")