#![allow(incomplete_features)] #![feature(generic_const_exprs)] #![feature(specialization)] extern crate const_guards; use const_guards::guard; fn main() { let _ = B([0; 1]); } unsafe trait A {} struct B([T; N]); #[guard(N > 0)] default unsafe impl A for B where T: Eq {}