add (currently ICEing) test

This commit is contained in:
lcnr 2023-02-08 14:16:22 +01:00
parent a5164605bc
commit 4c7c5e597f
2 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,37 @@
// known-bug: unknown
// compile-flags: -Ztrait-solver=next
// failure-status: 101
// normalize-stderr-test "note: .*\n\n" -> ""
// normalize-stderr-test "thread 'rustc' panicked.*\n" -> ""
// rustc-env:RUST_BACKTRACE=0
// This tests checks that we update results in the provisional cache when
// we pop a goal from the stack.
#![feature(auto_traits)]
auto trait Coinductive {}
struct Foo<T>(T);
struct Bar<T>(T);
impl<T> Coinductive for Foo<T>
where
Bar<T>: Coinductive
{}
impl<T> Coinductive for Bar<T>
where
Foo<T>: Coinductive,
Bar<T>: ConstrainInfer,
{}
trait ConstrainInfer {}
impl ConstrainInfer for Bar<u8> {}
impl ConstrainInfer for Foo<u16> {}
fn impls<T: Coinductive>() -> T { todo!() }
fn constrain<T: ConstrainInfer>(_: T) {}
fn main() {
// This should constrain `_` to `u8`.
impls::<Foo<_>>();
}

View File

@ -0,0 +1,6 @@
error: the compiler unexpectedly panicked. this is a bug.
query stack during panic:
#0 [check_well_formed] checking that `<impl at $DIR/provisional-result-done.rs:20:1: 20:31>` is well-formed
#1 [check_mod_type_wf] checking that types are well-formed in top-level module
end of query stack