Add diagnostic width span when '0$' is used as width.
This commit is contained in:
parent
29c5a028b0
commit
62187b12c2
@ -572,9 +572,10 @@ fn format(&mut self) -> FormatSpec<'a> {
|
|||||||
// '0' flag and then an ill-formatted format string with just a '$'
|
// '0' flag and then an ill-formatted format string with just a '$'
|
||||||
// and no count, but this is better if we instead interpret this as
|
// and no count, but this is better if we instead interpret this as
|
||||||
// no '0' flag and '0$' as the width instead.
|
// no '0' flag and '0$' as the width instead.
|
||||||
if self.consume('$') {
|
if let Some(end) = self.consume_pos('$') {
|
||||||
spec.width = CountIsParam(0);
|
spec.width = CountIsParam(0);
|
||||||
havewidth = true;
|
havewidth = true;
|
||||||
|
spec.width_span = Some(self.to_span_index(end - 1).to(self.to_span_index(end + 1)));
|
||||||
} else {
|
} else {
|
||||||
spec.flags |= 1 << (FlagSignAwareZeroPad as u32);
|
spec.flags |= 1 << (FlagSignAwareZeroPad as u32);
|
||||||
}
|
}
|
||||||
|
@ -178,6 +178,23 @@ fn format_counts() {
|
|||||||
},
|
},
|
||||||
})],
|
})],
|
||||||
);
|
);
|
||||||
|
same(
|
||||||
|
"{1:0$.10x}",
|
||||||
|
&[NextArgument(Argument {
|
||||||
|
position: ArgumentIs(1),
|
||||||
|
format: FormatSpec {
|
||||||
|
fill: None,
|
||||||
|
align: AlignUnknown,
|
||||||
|
flags: 0,
|
||||||
|
precision: CountIs(10),
|
||||||
|
width: CountIsParam(0),
|
||||||
|
precision_span: None,
|
||||||
|
width_span: Some(InnerSpan::new(4, 6)),
|
||||||
|
ty: "x",
|
||||||
|
ty_span: None,
|
||||||
|
},
|
||||||
|
})],
|
||||||
|
);
|
||||||
same(
|
same(
|
||||||
"{:.*x}",
|
"{:.*x}",
|
||||||
&[NextArgument(Argument {
|
&[NextArgument(Argument {
|
||||||
|
Loading…
Reference in New Issue
Block a user