summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/issue-99387.rs
blob: 571d4194fe78f6feb101322072d2b3a3922726ff (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
26
//! Test that we don't follow through projections to find
//! opaque types.

#![feature(type_alias_impl_trait)]
#![allow(private_interfaces)]

pub type Successors<'a> = impl Iterator<Item = &'a ()>;

pub fn f<'a>() -> Successors<'a> {
    None.into_iter()
}

trait Tr {
    type Item;
}

impl<'a> Tr for &'a () {
    type Item = Successors<'a>;
}

pub fn ohno<'a>() -> <&'a () as Tr>::Item {
    //~^ ERROR item constrains opaque type that is not in its signature
    None.into_iter()
}

fn main() {}