#![feature(generic_const_exprs)] #![allow(incomplete_features, const_evaluatable_unchecked)] use std::marker::PhantomData; struct DataHolder { item: T, } impl DataHolder { const ITEM_IS_COPY: [(); 1 - { //~ ERROR unconstrained generic constant trait NotCopy { const VALUE: bool = false; } impl<__Type: ?Sized> NotCopy for __Type {} struct IsCopy<__Type: ?Sized>(PhantomData<__Type>); impl<__Type> IsCopy<__Type> where __Type: Sized + Copy, { const VALUE: bool = true; } >::VALUE } as usize] = []; } fn main() {}