Skip to content

Commit 4652ee6

Browse files
committed
Auto merge of #137995 - hkBst:parse_format_reuse_unescape, r=nnethercote
Remove duplicate impl of string unescape from parse_format r? `@nnethercote`
2 parents ae8ab87 + 4711153 commit 4652ee6

File tree

5 files changed

+449
-545
lines changed

5 files changed

+449
-545
lines changed

compiler/rustc_builtin_macros/src/format.rs

+7-4
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)));

0 commit comments

Comments
 (0)