File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+ // run-pass
2+
3+ #![ feature( core_intrinsics) ]
4+ #![ feature( const_fn) ]
5+ #![ allow( dead_code) ]
6+
7+ const fn type_name_wrapper < T > ( _: & T ) -> & ' static str {
8+ unsafe { core:: intrinsics:: type_name :: < T > ( ) }
9+ }
10+
11+ struct Struct < TA , TB , TC > {
12+ a : TA ,
13+ b : TB ,
14+ c : TC ,
15+ }
16+
17+ type StructInstantiation = Struct < i8 , f64 , bool > ;
18+
19+ const CONST_STRUCT : StructInstantiation = StructInstantiation {
20+ a : 12 ,
21+ b : 13.7 ,
22+ c : false ,
23+ } ;
24+
25+ const CONST_STRUCT_NAME : & ' static str = type_name_wrapper ( & CONST_STRUCT ) ;
26+
27+ fn main ( ) {
28+ let non_const_struct = StructInstantiation {
29+ a : 87 ,
30+ b : 65.99 ,
31+ c : true ,
32+ } ;
33+
34+ let non_const_struct_name = type_name_wrapper ( & non_const_struct) ;
35+
36+ assert_eq ! ( CONST_STRUCT_NAME , non_const_struct_name) ;
37+ }
You can’t perform that action at this time.
0 commit comments