dtolnay / dtolnay/trybuild

Some ICEs manifest as if the crate compiled successfully

Open
#173 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
998
Forks
84
PR merge metrics
No merged PRs in 30d

Description

For example the following ICE in nightly-2020-06-04 (https://github.com/rust-lang/rust/issues/97698):

```rust
// tests/compiletest.rs

#[test]
fn ui() {
let t = trybuild::TestCases::new();
t.compile_fail("tests/ui/break-rust.rs");
}
```

```rust
// tests/ui/break-rust.rs

trait AmbiguousIfImpl {
fn method() {}
}

struct One;
struct Two;

impl AmbiguousIfImpl for T {}
impl AmbiguousIfImpl for T {}

struct Struct;

fn main() {
>::method();
}
```

```console
$ 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.

```console
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
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.