// run-pass // Regression test for issue #21010: Normalize associated types in // various special paths in the `type_is_immediate` function. pub trait OffsetState: Sized {} pub trait Offset { type State: OffsetState; fn dummy(&self) { } } #[derive(Copy, Clone)] pub struct X; impl Offset for X { type State = Y; } #[derive(Copy, Clone)] pub struct Y; impl OffsetState for Y {} pub fn now() -> DateTime { from_utc(Y) } pub struct DateTime { pub offset: Off::State } pub fn from_utc(offset: Off::State) -> DateTime { DateTime { offset: offset } } pub fn main() { let _x = now(); }