diff options
| author | threadexception <hannes.gaumann@outlook.de> | 2021-11-15 17:46:44 +0100 |
|---|---|---|
| committer | threadexception <hannes.gaumann@outlook.de> | 2021-11-20 16:41:36 +0100 |
| commit | 5f6059d9a2433042ffeeec1eb42c94c5f1e75135 (patch) | |
| tree | ce1e5e9a2653ce0fc4a4a8e7316ced3fae7c1bd2 | |
| parent | 3d789740b09002e3d2be3ab1cf53fdca3995034c (diff) | |
| download | rust-5f6059d9a2433042ffeeec1eb42c94c5f1e75135.tar.gz rust-5f6059d9a2433042ffeeec1eb42c94c5f1e75135.zip | |
Fix float ICE
Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-90728.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-90728.stderr | 20 | ||||
| -rw-r--r-- | src/tools/tidy/src/ui_tests.rs | 2 |
4 files changed, 29 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 3d29d305021..0c8c45410bd 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -1032,6 +1032,8 @@ impl<'a> Parser<'a> { [IdentLike(_), Punct('+' | '-')] | // 1e+2 | 1e-2 [IdentLike(_), Punct('+' | '-'), IdentLike(_)] | + // 1.2e+ | 1.2e- + [IdentLike(_), Punct('.'), IdentLike(_), Punct('+' | '-')] | // 1.2e+3 | 1.2e-3 [IdentLike(_), Punct('.'), IdentLike(_), Punct('+' | '-'), IdentLike(_)] => { // See the FIXME about `TokenCursor` above. diff --git a/src/test/ui/parser/issue-90728.rs b/src/test/ui/parser/issue-90728.rs new file mode 100644 index 00000000000..d6a898361cc --- /dev/null +++ b/src/test/ui/parser/issue-90728.rs @@ -0,0 +1,6 @@ +fn main() { + a.5.2E+ + //~^ ERROR: unexpected token: `5.2E+` + //~| ERROR: expected one of `.`, `;`, `?`, `}`, or an operator, found `5.2E+` + //~| ERROR: expected at least one digit in exponent +} diff --git a/src/test/ui/parser/issue-90728.stderr b/src/test/ui/parser/issue-90728.stderr new file mode 100644 index 00000000000..b55c4603066 --- /dev/null +++ b/src/test/ui/parser/issue-90728.stderr @@ -0,0 +1,20 @@ +error: expected at least one digit in exponent + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ + +error: unexpected token: `5.2E+` + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ + +error: expected one of `.`, `;`, `?`, `}`, or an operator, found `5.2E+` + --> $DIR/issue-90728.rs:2:7 + | +LL | a.5.2E+ + | ^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator + +error: aborting due to 3 previous errors + diff --git a/src/tools/tidy/src/ui_tests.rs b/src/tools/tidy/src/ui_tests.rs index 248d4f1583f..7fae9bf0f69 100644 --- a/src/tools/tidy/src/ui_tests.rs +++ b/src/tools/tidy/src/ui_tests.rs @@ -9,7 +9,7 @@ const ENTRY_LIMIT: usize = 1000; // FIXME: The following limits should be reduced eventually. const ROOT_ENTRY_LIMIT: usize = 983; const ISSUES_ENTRY_LIMIT: usize = 2310; -const PARSER_LIMIT: usize = 1010; +const PARSER_LIMIT: usize = 1012; fn check_entries(path: &Path, bad: &mut bool) { let dirs = walkdir::WalkDir::new(&path.join("test/ui")) |
