#![feature(lazy_type_alias)] | |
#![allow(incomplete_features)] | |
impl<T> NotInjective<T> {} //~ ERROR the type parameter `T` is not constrained | |
type NotInjective<T: ?Sized> = Local<<T as Discard>::Out>; | |
struct Local<T>(T); | |
trait Discard { type Out; } | |
impl<T: ?Sized> Discard for T { type Out = (); } | |
fn main() {} |