#![feature(adt_const_params, unsized_const_params)] | |
#![allow(incomplete_features)] | |
use std::marker::UnsizedConstParamTy; | |
#[derive(Debug, PartialEq, Eq, UnsizedConstParamTy)] | |
struct Foo { | |
value: i32, | |
nested: &'static Bar<i32>, | |
} | |
#[derive(Debug, PartialEq, Eq, UnsizedConstParamTy)] | |
struct Bar<T>(T); | |
struct Test<const F: Foo>; | |
fn main() { | |
let x: Test<{ Foo { value: 3, nested: &Bar(4) } }> = Test; | |
let y: Test<{ Foo { value: 3, nested: &Bar(5) } }> = x; //~ ERROR mismatched types | |
} |