File tree Expand file tree Collapse file tree 3 files changed +14
-4
lines changed
compiler/rustc_parse_format/src Expand file tree Collapse file tree 3 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -655,7 +655,15 @@ impl<'input> Parser<'input> {
655655 spec. precision = self . count ( ) ;
656656 }
657657 let span = range. start ..self . input_vec_index2range ( self . input_vec_index ) . start ;
658- if spec. precision == CountImplied {
658+ if spec. precision == CountImplied &&
659+ // make an exception for "{:.}":
660+ // broad exception:
661+ // !self.input.contains("{:.}")
662+ // narrow exception:
663+ // !self.input.starts_with("{:.}")
664+ // very narrow exception:
665+ self . input != "{:.}" && self . input != "{:.}\n "
666+ {
659667 self . warnings . push ( ParseError {
660668 description : "expected numerical precision after precision specifier"
661669 . to_string ( ) ,
Original file line number Diff line number Diff line change 11//@ run-pass
22fn main ( ) {
33 let float = 0.123_456_789 ;
4+ // this special case is exempted from warning
5+ println ! ( "{:.}" , float) ;
46 println ! ( "Missing precision: {float:.} {float:3.} {float:_^12.}" ) ;
57 //~^ WARNING invalid format string: expected numerical precision after precision specifier
68 //~| WARNING invalid format string: expected numerical precision after precision specifier
Original file line number Diff line number Diff line change 11warning: invalid format string: expected numerical precision after precision specifier
2- --> $DIR/warn-on-empty-precision.rs:4 :41
2+ --> $DIR/warn-on-empty-precision.rs:6 :41
33 |
44LL | println!("Missing precision: {float:.} {float:3.} {float:_^12.}");
55 | ^ precision specifier without numerical precision in format string
66 |
77 = note: This may become an error in a future release
88
99warning: invalid format string: expected numerical precision after precision specifier
10- --> $DIR/warn-on-empty-precision.rs:4 :52
10+ --> $DIR/warn-on-empty-precision.rs:6 :52
1111 |
1212LL | println!("Missing precision: {float:.} {float:3.} {float:_^12.}");
1313 | ^ precision specifier without numerical precision in format string
1414 |
1515 = note: This may become an error in a future release
1616
1717warning: invalid format string: expected numerical precision after precision specifier
18- --> $DIR/warn-on-empty-precision.rs:4 :66
18+ --> $DIR/warn-on-empty-precision.rs:6 :66
1919 |
2020LL | println!("Missing precision: {float:.} {float:3.} {float:_^12.}");
2121 | ^ precision specifier without numerical precision in format string
You can’t perform that action at this time.
0 commit comments