Skip to content

Commit fe03ab0

Browse files
committed
Auto merge of #137995 - hkBst:parse_format_reuse_unescape, r=<try>
Remove duplicate impl of string unescape from parse_format r? `@nnethercote`
2 parents 4559163 + 94fb87a commit fe03ab0

File tree

5 files changed

+447
-547
lines changed

5 files changed

+447
-547
lines changed

compiler/rustc_builtin_macros/src/format.rs

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::ops::Range;
2+
13
use parse::Position::ArgumentNamed;
24
use rustc_ast::ptr::P;
35
use rustc_ast::tokenstream::TokenStream;
@@ -335,7 +337,7 @@ fn make_format_args(
335337
return ExpandResult::Ready(Err(guar));
336338
}
337339

338-
let to_span = |inner_span: parse::InnerSpan| {
340+
let to_span = |inner_span: Range<usize>| {
339341
is_source_literal.then(|| {
340342
fmt_span.from_inner(InnerSpan { start: inner_span.start, end: inner_span.end })
341343
})
@@ -407,7 +409,7 @@ fn make_format_args(
407409
let mut placeholder_index = 0;
408410

409411
for piece in &pieces {
410-
match *piece {
412+
match piece.clone() {
411413
parse::Piece::Lit(s) => {
412414
unfinished_literal.push_str(s);
413415
}
@@ -417,7 +419,8 @@ fn make_format_args(
417419
unfinished_literal.clear();
418420
}
419421

420-
let span = parser.arg_places.get(placeholder_index).and_then(|&s| to_span(s));
422+
let span =
423+
parser.arg_places.get(placeholder_index).and_then(|s| to_span(s.clone()));
421424
placeholder_index += 1;
422425

423426
let position_span = to_span(position_span);
@@ -609,7 +612,7 @@ fn make_format_args(
609612
fn invalid_placeholder_type_error(
610613
ecx: &ExtCtxt<'_>,
611614
ty: &str,
612-
ty_span: Option<parse::InnerSpan>,
615+
ty_span: Option<Range<usize>>,
613616
fmt_span: Span,
614617
) {
615618
let sp = ty_span.map(|sp| fmt_span.from_inner(InnerSpan::new(sp.start, sp.end)));
@@ -775,8 +778,12 @@ fn report_redundant_format_arguments<'a>(
775778
let mut fmt_spans = vec![];
776779

777780
for (i, unnamed_arg) in args.unnamed_args().iter().enumerate().rev() {
778-
let Some(ty) = unnamed_arg.expr.to_ty() else { continue };
779-
let Some(argument_binding) = ty.kind.is_simple_path() else { continue };
781+
let Some(ty) = unnamed_arg.expr.to_ty() else {
782+
continue;
783+
};
784+
let Some(argument_binding) = ty.kind.is_simple_path() else {
785+
continue;
786+
};
780787
let argument_binding = argument_binding.as_str();
781788

782789
if used[i] {

0 commit comments

Comments
 (0)