2019-07-26 21:54:25 +00:00
|
|
|
// run-pass
|
|
|
|
|
2018-09-14 10:20:28 +00:00
|
|
|
#![allow(type_alias_bounds)]
|
|
|
|
#![allow(dead_code)]
|
2014-12-24 07:05:30 +00:00
|
|
|
// Test syntax checks for `?Sized` syntax.
|
2014-04-03 00:38:45 +00:00
|
|
|
|
2015-03-31 23:58:01 +00:00
|
|
|
use std::marker::PhantomData;
|
2015-02-12 15:29:52 +00:00
|
|
|
|
2015-03-31 23:58:01 +00:00
|
|
|
trait T1 { }
|
|
|
|
pub trait T2 { }
|
|
|
|
trait T3<X: T1> : T2 { }
|
|
|
|
trait T4<X: ?Sized> { }
|
|
|
|
trait T5<X: ?Sized, Y> { }
|
|
|
|
trait T6<Y, X: ?Sized> { }
|
|
|
|
trait T7<X: ?Sized, Y: ?Sized> { }
|
|
|
|
trait T8<X: ?Sized+T2> { }
|
|
|
|
trait T9<X: T2 + ?Sized> { }
|
2015-02-12 15:29:52 +00:00
|
|
|
struct S1<X: ?Sized>(PhantomData<X>);
|
|
|
|
enum E<X: ?Sized> { E1(PhantomData<X>) }
|
2014-12-24 07:05:30 +00:00
|
|
|
impl <X: ?Sized> T1 for S1<X> {}
|
|
|
|
fn f<X: ?Sized>() {}
|
|
|
|
type TT<T: ?Sized> = T;
|
2014-04-03 00:38:45 +00:00
|
|
|
|
|
|
|
pub fn main() {
|
|
|
|
}
|