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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229
|
#![crate_type = "lib"]
#![feature(staged_api)]
#![stable(feature = "stable_test_feature", since = "1.0.0")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub trait Trait1<#[unstable(feature = "unstable_default", issue = "none")] T = ()> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
fn foo() -> T;
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub trait Trait2<#[unstable(feature = "unstable_default", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
fn foo() -> T;
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub trait Trait3<T = ()> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
fn foo() -> T;
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct1<#[unstable(feature = "unstable_default", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field: T,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct2<T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field: T,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct3<A = isize, #[unstable(feature = "unstable_default", issue = "none")] B = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field1: A,
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field2: B,
}
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct4<A = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field: A,
}
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct5<#[unstable(feature = "unstable_default", issue = "none")] A = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field: A,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Struct6<#[unstable(feature = "unstable_default6", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub field: T,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const STRUCT1: Struct1 = Struct1 { field: 1 };
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const STRUCT2: Struct2 = Struct2 { field: 1 };
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const STRUCT3: Struct3 = Struct3 { field1: 1, field2: 2 };
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const STRUCT4: Struct4 = Struct4 { field: 1 };
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const STRUCT5: Struct5 = Struct5 { field: 1 };
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum1<#[unstable(feature = "unstable_default", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Some(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
None,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum2<T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Some(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
None,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum3<T = isize, #[unstable(feature = "unstable_default", issue = "none")] E = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Ok(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Err(#[stable(feature = "stable_test_feature", since = "1.0.0")] E),
}
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum4<T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Some(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
None,
}
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum5<#[unstable(feature = "unstable_default", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Some(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
None,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub enum Enum6<#[unstable(feature = "unstable_default6", issue = "none")] T = usize> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
Some(#[stable(feature = "stable_test_feature", since = "1.0.0")] T),
#[stable(feature = "stable_test_feature", since = "1.0.0")]
None,
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM1: Enum1 = Enum1::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM2: Enum2 = Enum2::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM3: Enum3 = Enum3::Ok(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM3B: Enum3 = Enum3::Err(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM4: Enum4 = Enum4::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ENUM5: Enum5 = Enum5::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias1<#[unstable(feature = "unstable_default", issue = "none")] T = usize> = Option<T>;
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias2<T = usize> = Option<T>;
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias3<T = isize, #[unstable(feature = "unstable_default", issue = "none")] E = usize> =
Result<T, E>;
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias4<T = usize> = Option<T>;
#[deprecated(since = "1.1.0", note = "test")]
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias5<#[unstable(feature = "unstable_default", issue = "none")] T = usize> = Option<T>;
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub type Alias6<#[unstable(feature = "unstable_default6", issue = "none")] T = usize> = Option<T>;
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS1: Alias1 = Alias1::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS2: Alias2 = Alias2::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS3: Alias3 = Alias3::Ok(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS3B: Alias3 = Alias3::Err(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS4: Alias4 = Alias4::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub const ALIAS5: Alias5 = Alias5::Some(1);
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub trait Alloc {}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct System {}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
impl Alloc for System {}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Box1<T, #[unstable(feature = "box_alloc_param", issue = "none")] A: Alloc = System> {
ptr: *mut T,
alloc: A,
}
impl<T> Box1<T, System> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub fn new(mut t: T) -> Self {
unsafe { Self { ptr: &mut t, alloc: System {} } }
}
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Box2<T, A: Alloc = System> {
ptr: *mut T,
alloc: A,
}
impl<T> Box2<T, System> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub fn new(mut t: T) -> Self {
Self { ptr: &mut t, alloc: System {} }
}
}
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub struct Box3<T> {
ptr: *mut T,
}
impl<T> Box3<T> {
#[stable(feature = "stable_test_feature", since = "1.0.0")]
pub fn new(mut t: T) -> Self {
Self { ptr: &mut t }
}
}
|