Open
Description
For example the following ICE in nightly-2020-06-04 (rust-lang/rust#97698):
// tests/compiletest.rs
#[test]
fn ui() {
let t = trybuild::TestCases::new();
t.compile_fail("tests/ui/break-rust.rs");
}
// tests/ui/break-rust.rs
trait AmbiguousIfImpl<A> {
fn method() {}
}
struct One;
struct Two;
impl<T> AmbiguousIfImpl<One> for T {}
impl<T> AmbiguousIfImpl<Two> for T {}
struct Struct;
fn main() {
<Struct as AmbiguousIfImpl<_>>::method();
}
$ cargo test
running 1 test
test tests/ui/break-rust.rs ... error
Expected test case to fail to compile, but it succeeded.
test ui ... FAILED
failures:
---- ui stdout ----
thread 'ui' panicked at '1 of 1 tests failed', github.com-1ecc6299db9ec823/trybuild-1.0.61/src/run.rs:100:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
error: test failed, to rerun pass '--test compiletest'
Meanwhile the crate definitely fails to build and rustc exits with nonzero code.
thread 'rustc' panicked at 'range end index 2 out of range for slice of length 1', library/core/src/slice/index.rs:73:5
stack 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.63.0-nightly (a6b8c6954 2022-06-03) running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [typeck] type-checking `main`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
Metadata
Metadata
Assignees
Labels
No labels