//@ known-bug: #103507

#![feature(type_alias_impl_trait)]
#![feature(const_trait_impl)]

use std::marker::Destruct;

mod foo {
    trait T {
        type Item;
    }

    pub type Alias<'a> = impl T<Item = &'a ()>;

    struct S;
    impl<'a> T for &'a S {
        type Item = &'a ();
    }

    pub const fn filter_positive<'a>() -> &'a Alias<'a> {
        &&S
    }
}
use foo::*;

const fn with_positive<F: for<'a> ~const Fn(&'a Alias<'a>) + ~const Destruct>(fun: F) {
    fun(filter_positive());
}

const fn foo(_: &Alias<'_>) {}

const BAR: () = {
    with_positive(foo);
};

fn main() {}
