rust-lang/rust

Internal Compiler Error: 'assertion failed: `(left != right)` at compiler/rustc_parse/src/parser/ty.rs:324:9

Closed this issue · 3 comments

rustc panics on the following input, found by fuzz-rustc:

fn f(t:for<>t?
$ rustc bug.rs
error: this file contains an unclosed delimiter
 --> bug.rs:1:16
  |
1 | fn f(t:for<>t?
  |     -          ^
  |     |
  |     unclosed delimiter

thread 'rustc' panicked at 'assertion failed: `(left != right)`
  left: `Token { kind: Question, span: bug.rs:1:14: 1:15 (#0) }`,
 right: `Question`', compiler/rustc_parse/src/parser/ty.rs:324:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.53.0-nightly (a86612456 2021-04-11) running on x86_64-unknown-linux-gnu

query stack during panic:
end of query stack
error: aborting due to previous error

This is a regression, introduced in #67820.

(Thanks cargo-bisect-rustc!)

cc @ecstatic-morse

The ICE still happens if you close the parens:

fn f(t:for<>t?) 

Assigning priority as discussed as part of the Prioritization Working Group procedure and removing I-prioritize.

@rustbot label -I-prioritize +P-low