//@ check-pass #![feature(adt_const_params, unsized_const_params)] #![allow(incomplete_features)] use std::marker::{ConstParamTy, ConstParamTy_}; #[derive(PartialEq, Eq)] struct S { field: u8, gen: T, } impl ConstParamTy_ for S {} #[derive(PartialEq, Eq, ConstParamTy)] struct D { field: u8, gen: T, } fn check() {} fn main() { check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::(); check::<&u8>(); check::<&str>(); check::<[usize]>(); check::<[u16; 0]>(); check::<[u8; 42]>(); check::>(); check::>(); check::>(); check::>(); check::<()>(); check::<(i32,)>(); check::<(D, D)>(); }