// run-pass

#![feature(associated_type_bounds)]

use std::fmt::Debug;
use std::iter::Empty;
use std::ops::Range;

trait Lam<Binder> { type App; }

#[derive(Clone)]
struct L1;
impl<'a> Lam<&'a u8> for L1 { type App = u8; }

#[derive(Clone)]
struct L2;
impl<'a, 'b> Lam<&'a &'b u8> for L2 { type App = u8; }

trait Case1 {
    type A: Iterator<Item: Debug>;

    type B: Iterator<Item: 'static>;
}

pub struct S1;
impl Case1 for S1 {
    type A = Empty<String>;
    type B = Range<u16>;
}

// Ensure we don't have opaque `impl Trait` desugaring:

pub trait Foo { type Out: Baz<Assoc: Default>; }
pub trait Baz { type Assoc; }

#[derive(Default)]
struct S2;
#[derive(Default)]
struct S3;
struct S4;
struct S5;
struct S6;
struct S7;

impl Foo for S6 { type Out = S4; }
impl Foo for S7 { type Out = S5; }

impl Baz for S4 { type Assoc = S2; }
impl Baz for S5 { type Assoc = S3; }

fn main() {}
