Use LitKind::Err
for floats with empty exponents.
This prevents a follow-up type error in a test, which seems fine.
This commit is contained in:
parent
1e4f9e302c
commit
951f2d9ae2
5 changed files with 6 additions and 35 deletions
|
@ -501,9 +501,11 @@ impl<'sess, 'src> StringReader<'sess, 'src> {
|
||||||
(kind, self.symbol_from_to(start, end))
|
(kind, self.symbol_from_to(start, end))
|
||||||
}
|
}
|
||||||
rustc_lexer::LiteralKind::Float { base, empty_exponent } => {
|
rustc_lexer::LiteralKind::Float { base, empty_exponent } => {
|
||||||
|
let mut kind = token::Float;
|
||||||
if empty_exponent {
|
if empty_exponent {
|
||||||
let span = self.mk_sp(start, self.pos);
|
let span = self.mk_sp(start, self.pos);
|
||||||
self.dcx().emit_err(errors::EmptyExponentFloat { span });
|
let guar = self.dcx().emit_err(errors::EmptyExponentFloat { span });
|
||||||
|
kind = token::Err(guar);
|
||||||
}
|
}
|
||||||
let base = match base {
|
let base = match base {
|
||||||
Base::Hexadecimal => Some("hexadecimal"),
|
Base::Hexadecimal => Some("hexadecimal"),
|
||||||
|
@ -515,7 +517,7 @@ impl<'sess, 'src> StringReader<'sess, 'src> {
|
||||||
let span = self.mk_sp(start, end);
|
let span = self.mk_sp(start, end);
|
||||||
self.dcx().emit_err(errors::FloatLiteralUnsupportedBase { span, base });
|
self.dcx().emit_err(errors::FloatLiteralUnsupportedBase { span, base });
|
||||||
}
|
}
|
||||||
(token::Float, self.symbol_from_to(start, end))
|
(kind, self.symbol_from_to(start, end))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,5 @@
|
||||||
//@no-rustfix
|
//@no-rustfix
|
||||||
fn f2() -> impl Sized { && 3.14159265358979323846E }
|
fn f2() -> impl Sized { && 3.14159265358979323846E }
|
||||||
//~^ ERROR: expected at least one digit in exponent
|
//~^ ERROR: expected at least one digit in exponent
|
||||||
//~| ERROR: long literal lacking separators
|
|
||||||
//~| NOTE: `-D clippy::unreadable-literal` implied by `-D warnings`
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -4,14 +4,5 @@ error: expected at least one digit in exponent
|
||||||
LL | fn f2() -> impl Sized { && 3.14159265358979323846E }
|
LL | fn f2() -> impl Sized { && 3.14159265358979323846E }
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: long literal lacking separators
|
error: aborting due to 1 previous error
|
||||||
--> tests/ui/crashes/ice-10912.rs:3:28
|
|
||||||
|
|
|
||||||
LL | fn f2() -> impl Sized { && 3.14159265358979323846E }
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `3.141_592_653_589_793_238_46`
|
|
||||||
|
|
|
||||||
= note: `-D clippy::unreadable-literal` implied by `-D warnings`
|
|
||||||
= help: to override `-D warnings` add `#[allow(clippy::unreadable_literal)]`
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e−11; // m³⋅kg⁻¹⋅s⁻²
|
const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e−11; // m³⋅kg⁻¹⋅s⁻²
|
||||||
//~^ ERROR expected at least one digit in exponent
|
//~^ ERROR expected at least one digit in exponent
|
||||||
//~| ERROR unknown start of token: \u{2212}
|
//~| ERROR unknown start of token: \u{2212}
|
||||||
//~| ERROR cannot subtract `{integer}` from `{float}`
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -15,24 +15,5 @@ help: Unicode character '−' (Minus Sign) looks like '-' (Minus/Hyphen), but it
|
||||||
LL | const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e-11; // m³⋅kg⁻¹⋅s⁻²
|
LL | const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e-11; // m³⋅kg⁻¹⋅s⁻²
|
||||||
| ~
|
| ~
|
||||||
|
|
||||||
error[E0277]: cannot subtract `{integer}` from `{float}`
|
error: aborting due to 2 previous errors
|
||||||
--> $DIR/issue-49746-unicode-confusable-in-float-literal-expt.rs:1:53
|
|
||||||
|
|
|
||||||
LL | const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e−11; // m³⋅kg⁻¹⋅s⁻²
|
|
||||||
| ^ no implementation for `{float} - {integer}`
|
|
||||||
|
|
|
||||||
= help: the trait `Sub<{integer}>` is not implemented for `{float}`
|
|
||||||
= help: the following other types implement trait `Sub<Rhs>`:
|
|
||||||
<isize as Sub>
|
|
||||||
<isize as Sub<&isize>>
|
|
||||||
<i8 as Sub>
|
|
||||||
<i8 as Sub<&i8>>
|
|
||||||
<i16 as Sub>
|
|
||||||
<i16 as Sub<&i16>>
|
|
||||||
<i32 as Sub>
|
|
||||||
<i32 as Sub<&i32>>
|
|
||||||
and 48 others
|
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0277`.
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue