// check-pass // Allow this for now, can remove this UI test when this becomes a hard error. #![allow(implied_bounds_entailment)] use std::collections::hash_map::{Keys, HashMap}; use std::marker::PhantomData; trait MapAssertion<'a, K, V, R> { fn key_set(&self) -> Subject, (), R>; } struct Subject<'a, T, V, R>(PhantomData<(&'a T, V, R)>); impl<'a, K, V, R> MapAssertion<'a, K, V, R> for Subject<'a, HashMap, (), R> { fn key_set(&self) -> Subject<'a, Keys, (), R> { todo!() } } fn main() {}