Skip to content

Commit

Permalink
add (currently ICEing) test
Browse files Browse the repository at this point in the history
  • Loading branch information
lcnr committed Feb 8, 2023
1 parent a516460 commit 4c7c5e5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
37 changes: 37 additions & 0 deletions tests/ui/traits/new-solver/provisional-result-done.rs
Original file line number Diff line number Diff line change
@@ -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<_>>();
}
6 changes: 6 additions & 0 deletions tests/ui/traits/new-solver/provisional-result-done.stderr
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 4c7c5e5

Please sign in to comment.