Rollup merge of #50610 - estebank:fmt-str, r=Kimundi
Improve format string errors Point at format string position inside the formatting string: ``` error: invalid format string: unmatched `}` found --> $DIR/format-string-error.rs:21:22 | LL | let _ = format!("}"); | ^ unmatched `}` in format string ``` Explain that argument names can't start with an underscore: ``` error: invalid format string: invalid argument name `_foo` --> $DIR/format-string-error.rs:15:23 | LL | let _ = format!("{_foo}", _foo = 6usize); | ^^^^ invalid argument name in format string | = note: argument names cannot start with an underscore ``` Fix #23476. The more accurate spans will only be seen when using `format!` directly, when using `println!` the diagnostics machinery makes the span be the entire statement.
This commit is contained in:
commit
b3734bd78f
5 changed files with 132 additions and 21 deletions
|
@ -428,6 +428,13 @@ impl Span {
|
|||
)
|
||||
}
|
||||
|
||||
pub fn from_inner_byte_pos(self, start: usize, end: usize) -> Span {
|
||||
let span = self.data();
|
||||
Span::new(span.lo + BytePos::from_usize(start),
|
||||
span.lo + BytePos::from_usize(end),
|
||||
span.ctxt)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn apply_mark(self, mark: Mark) -> Span {
|
||||
let span = self.data();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue