|  | #![feature(fn_traits)] | 
|  | #![feature(adt_const_params, unsized_const_params)] | 
|  | //~^ WARNING the feature `unsized_const_params` is incomplete | 
|  |  | 
|  | #[derive(PartialEq, Eq)] | 
|  | struct CompileTimeSettings { | 
|  | hooks: &'static [fn()], | 
|  | } | 
|  |  | 
|  | struct Foo<const T: CompileTimeSettings>; | 
|  | //~^ ERROR `CompileTimeSettings` must implement `ConstParamTy` to be used as the type of a const generic parameter | 
|  |  | 
|  | impl<const T: CompileTimeSettings> Foo<T> { | 
|  | //~^ ERROR `CompileTimeSettings` must implement `ConstParamTy` to be used as the type of a const generic parameter | 
|  | fn call_hooks() {} | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | const SETTINGS: CompileTimeSettings = CompileTimeSettings { hooks: &[] }; | 
|  |  | 
|  | Foo::<SETTINGS>::call_hooks(); | 
|  | } |