about summary refs log tree commit diff
path: root/tests/ui/trait-bounds/trait-selection-overflow-prevention-72839.rs
blob: 436657e3de5ee0914dca0572e2445f5931390c39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// https://github.com/rust-lang/rust/issues/72839
// Regression test for issue #72839
// Tests that we do not overflow during trait selection after
// a type error occurs
use std::ops::Rem;
trait Foo {}
struct MyStruct<T>(T);

impl<T, U> Rem<MyStruct<T>> for MyStruct<U> where MyStruct<U>: Rem<MyStruct<T>> {
    type Output = u8;
    fn rem(self, _: MyStruct<T>) -> Self::Output {
        panic!()
    }
}

fn main() {}

fn foo() {
    if missing_var % 8 == 0 {} //~ ERROR cannot find
}