1 // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
13 use std::any::{Any, TypeId};
16 pub struct B(Option<A>);
17 pub struct C(Option<isize>);
18 pub struct D(Option<&'static str>);
19 pub struct E(Result<&'static str, isize>);
21 pub type F = Option<isize>;
23 pub type H = &'static str;
25 pub unsafe fn id_A() -> TypeId { TypeId::of::<A>() }
26 pub unsafe fn id_B() -> TypeId { TypeId::of::<B>() }
27 pub unsafe fn id_C() -> TypeId { TypeId::of::<C>() }
28 pub unsafe fn id_D() -> TypeId { TypeId::of::<D>() }
29 pub unsafe fn id_E() -> TypeId { TypeId::of::<E>() }
30 pub unsafe fn id_F() -> TypeId { TypeId::of::<F>() }
31 pub unsafe fn id_G() -> TypeId { TypeId::of::<G>() }
32 pub unsafe fn id_H() -> TypeId { TypeId::of::<H>() }
34 pub unsafe fn foo<T: Any>() -> TypeId { TypeId::of::<T>() }