summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-impl-trait/inference-cycle.rs
blob: 79caddf79132072124ae62c6e1a539229159f6ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#![feature(type_alias_impl_trait)]
#![allow(dead_code)]

mod m {
    type Foo = impl std::fmt::Debug;
    //~^ ERROR cycle detected

    // Cycle: error today, but it'd be nice if it eventually worked

    pub fn foo() -> Foo {
        is_send(bar())
    }

    pub fn bar() {
        is_send(foo()); // Today: error
    }

    fn baz() {
        let f: Foo = 22_u32;
    }

    fn is_send<T: Send>(_: T) {}
}

fn main() {}