// run-pass #![allow(dead_code)] type MyType<'a, T> = &'a T; // combine lifetime bounds and type arguments in usual way type TypeA<'a> = MyType<'a, ()>; // ensure token `>>` works fine type TypeB = Box>; type TypeB_ = Box>; // trailing comma when combine lifetime bounds and type arguments type TypeC<'a> = MyType<'a, (),>; // normal lifetime bounds type TypeD = TypeA<'static>; // trailing comma on lifetime bounds type TypeE = TypeA<'static,>; // normal type argument type TypeF = Box; // type argument with trailing comma type TypeG = Box; // trailing comma on lifetime defs type TypeH<'a,> = &'a (); // trailing comma on type argument type TypeI = T; static STATIC: () = (); fn main() { // ensure token `>=` works fine let _: TypeA<'static>= &STATIC; let _: TypeA<'static,>= &STATIC; // ensure token `>>=` works fine let _: Box>= Box::new(&STATIC); let _: Box>= Box::new(&STATIC); }