blob: 100ab332a40d87cd0a377b4536ae816db6f42739 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
// check-pass
#![allow(incomplete_features)]
#![feature(adt_const_params)]
use std::marker::ConstParamTy;
#[derive(PartialEq, Eq)]
struct S<T> {
field: u8,
gen: T,
}
impl<T: ConstParamTy> ConstParamTy for S<T> {}
#[derive(PartialEq, Eq, ConstParamTy)]
struct D<T> {
field: u8,
gen: T,
}
fn check<T: ConstParamTy + ?Sized>() {}
fn main() {
check::<u8>();
check::<u16>();
check::<u32>();
check::<u64>();
check::<u128>();
check::<i8>();
check::<i16>();
check::<i32>();
check::<i64>();
check::<i128>();
check::<char>();
check::<bool>();
check::<str>();
check::<&u8>();
check::<&str>();
check::<[usize]>();
check::<[u16; 0]>();
check::<[u8; 42]>();
check::<S<u8>>();
check::<S<[&[bool]; 8]>>();
check::<D<u8>>();
check::<D<[&[bool]; 8]>>();
check::<()>();
check::<(i32,)>();
check::<(D<u8>, D<i32>)>();
}
|