1error: unexpected token: () 2 --> $DIR/invalid.rs:6:14 3 | 46 | #[pin()] //~ ERROR unexpected token 5 | ^^ 6 7error: unexpected token: (foo) 8 --> $DIR/invalid.rs:11:29 9 | 1011 | struct TupleStruct(#[pin(foo)] ()); //~ ERROR unexpected token 11 | ^^^^^ 12 13error: unexpected token: (foo) 14 --> $DIR/invalid.rs:15:16 15 | 1615 | V(#[pin(foo)] ()), //~ ERROR unexpected token 17 | ^^^^^ 18 19error: unexpected token: (foo) 20 --> $DIR/invalid.rs:21:18 21 | 2221 | #[pin(foo)] //~ ERROR unexpected token 23 | ^^^^^ 24 25error: duplicate #[pin] attribute 26 --> $DIR/invalid.rs:33:9 27 | 2833 | #[pin] //~ ERROR duplicate #[pin] attribute 29 | ^^^^^^ 30 31error: duplicate #[pin] attribute 32 --> $DIR/invalid.rs:40:9 33 | 3440 | #[pin] 35 | ^^^^^^ 36 37error: duplicate #[pin] attribute 38 --> $DIR/invalid.rs:49:13 39 | 4049 | #[pin] 41 | ^^^^^^ 42 43error: duplicate #[pin] attribute 44 --> $DIR/invalid.rs:59:13 45 | 4659 | #[pin] //~ ERROR duplicate #[pin] attribute 47 | ^^^^^^ 48 49error: #[pin] attribute may only be used on fields of structs or variants 50 --> $DIR/invalid.rs:69:5 51 | 5269 | #[pin] //~ ERROR may only be used on fields of structs or variants 53 | ^^^^^^ 54 55error: #[pin] attribute may only be used on fields of structs or variants 56 --> $DIR/invalid.rs:77:9 57 | 5877 | #[pin] //~ ERROR may only be used on fields of structs or variants 59 | ^^^^^^ 60 61error: #[pin] attribute may only be used on fields of structs or variants 62 --> $DIR/invalid.rs:82:5 63 | 6482 | #[pin] //~ ERROR may only be used on fields of structs or variants 65 | ^^^^^^ 66 67error: `Replace` argument was removed, use `project_replace` argument instead 68 --> $DIR/invalid.rs:91:19 69 | 7091 | #[pin_project(Replace)] //~ ERROR `Replace` argument was removed, use `project_replace` argument instead 71 | ^^^^^^^ 72 73error: expected identifier 74 --> $DIR/invalid.rs:94:31 75 | 7694 | #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier 77 | ^ 78 79error: unexpected argument: Foo 80 --> $DIR/invalid.rs:97:19 81 | 8297 | #[pin_project(Foo)] //~ ERROR unexpected argument 83 | ^^^ 84 85error: expected identifier 86 --> $DIR/invalid.rs:100:19 87 | 88100 | #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier 89 | ^ 90 91error: expected `,` 92 --> $DIR/invalid.rs:106:30 93 | 94106 | #[pin_project(PinnedDrop PinnedDrop)] //~ ERROR expected `,` 95 | ^^^^^^^^^^ 96 97error: duplicate `PinnedDrop` argument 98 --> $DIR/invalid.rs:109:31 99 | 100109 | #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument 101 | ^^^^^^^^^^ 102 103error: duplicate `UnsafeUnpin` argument 104 --> $DIR/invalid.rs:112:32 105 | 106112 | #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument 107 | ^^^^^^^^^^^ 108 109error: duplicate `!Unpin` argument 110 --> $DIR/invalid.rs:115:27 111 | 112115 | #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument 113 | ^^^^^^ 114 115error: duplicate `UnsafeUnpin` argument 116 --> $DIR/invalid.rs:118:44 117 | 118118 | #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument 119 | ^^^^^^^^^^^ 120 121error: duplicate `PinnedDrop` argument 122 --> $DIR/invalid.rs:121:44 123 | 124121 | #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument 125 | ^^^^^^^^^^ 126 127error: duplicate `project` argument 128 --> $DIR/invalid.rs:124:32 129 | 130124 | #[pin_project(project = A, project = B)] //~ ERROR duplicate `project` argument 131 | ^^^^^^^^^^^ 132 133error: duplicate `project` argument 134 --> $DIR/invalid.rs:127:49 135 | 136127 | #[pin_project(project = A, project_ref = A, project = B)] //~ ERROR duplicate `project` argument 137 | ^^^^^^^^^^^ 138 139error: duplicate `project_ref` argument 140 --> $DIR/invalid.rs:130:36 141 | 142130 | #[pin_project(project_ref = A, project_ref = B)] //~ ERROR duplicate `project_ref` argument 143 | ^^^^^^^^^^^^^^^ 144 145error: duplicate `project_replace` argument 146 --> $DIR/invalid.rs:133:40 147 | 148133 | #[pin_project(project_replace = A, project_replace = B)] //~ ERROR duplicate `project_replace` argument 149 | ^^^^^^^^^^^^^^^^^^^ 150 151error: duplicate `project_replace` argument 152 --> $DIR/invalid.rs:136:36 153 | 154136 | #[pin_project(project_replace, project_replace = B)] //~ ERROR duplicate `project_replace` argument 155 | ^^^^^^^^^^^^^^^^^^^ 156 157error: duplicate `project_replace` argument 158 --> $DIR/invalid.rs:139:40 159 | 160139 | #[pin_project(project_replace = A, project_replace)] //~ ERROR duplicate `project_replace` argument 161 | ^^^^^^^^^^^^^^^ 162 163error: arguments `PinnedDrop` and `project_replace` are mutually exclusive 164 --> $DIR/invalid.rs:145:19 165 | 166145 | #[pin_project(PinnedDrop, project_replace)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive 167 | ^^^^^^^^^^ 168 169error: arguments `PinnedDrop` and `project_replace` are mutually exclusive 170 --> $DIR/invalid.rs:148:49 171 | 172148 | #[pin_project(project_replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive 173 | ^^^^^^^^^^ 174 175error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive 176 --> $DIR/invalid.rs:151:19 177 | 178151 | #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive 179 | ^^^^^^^^^^^ 180 181error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive 182 --> $DIR/invalid.rs:154:39 183 | 184154 | #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive 185 | ^^^^^^^^^^^ 186 187error: expected `!Unpin`, found `!` 188 --> $DIR/invalid.rs:157:19 189 | 190157 | #[pin_project(!)] //~ ERROR expected `!Unpin`, found `!` 191 | ^ 192 193error: unexpected argument: Unpin 194 --> $DIR/invalid.rs:160:19 195 | 196160 | #[pin_project(Unpin)] //~ ERROR unexpected argument 197 | ^^^^^ 198 199error: expected `project = <identifier>`, found `project` 200 --> $DIR/invalid.rs:163:19 201 | 202163 | #[pin_project(project)] //~ ERROR expected `project = <identifier>`, found `project` 203 | ^^^^^^^ 204 205error: expected `project = <identifier>`, found `project =` 206 --> $DIR/invalid.rs:166:19 207 | 208166 | #[pin_project(project = )] //~ ERROR expected `project = <identifier>`, found `project =` 209 | ^^^^^^^^^ 210 211error: expected identifier 212 --> $DIR/invalid.rs:169:29 213 | 214169 | #[pin_project(project = !)] //~ ERROR expected identifier 215 | ^ 216 217error: expected `project_ref = <identifier>`, found `project_ref` 218 --> $DIR/invalid.rs:172:19 219 | 220172 | #[pin_project(project_ref)] //~ ERROR expected `project_ref = <identifier>`, found `project_ref` 221 | ^^^^^^^^^^^ 222 223error: expected `project_ref = <identifier>`, found `project_ref =` 224 --> $DIR/invalid.rs:175:19 225 | 226175 | #[pin_project(project_ref = )] //~ ERROR expected `project_ref = <identifier>`, found `project_ref =` 227 | ^^^^^^^^^^^^^ 228 229error: expected identifier 230 --> $DIR/invalid.rs:178:33 231 | 232178 | #[pin_project(project_ref = !)] //~ ERROR expected identifier 233 | ^ 234 235error: expected `project_replace = <identifier>`, found `project_replace =` 236 --> $DIR/invalid.rs:184:19 237 | 238184 | #[pin_project(project_replace = )] //~ ERROR expected `project_replace = <identifier>`, found `project_replace =` 239 | ^^^^^^^^^^^^^^^^^ 240 241error: expected identifier 242 --> $DIR/invalid.rs:187:37 243 | 244187 | #[pin_project(project_replace = !)] //~ ERROR expected identifier 245 | ^ 246 247error: `project_replace` argument requires a value when used on enums 248 --> $DIR/invalid.rs:190:19 249 | 250190 | #[pin_project(project_replace)] //~ ERROR `project_replace` argument requires a value when used on enums 251 | ^^^^^^^^^^^^^^^ 252 253error: name `OrigAndProj` is the same as the original type name 254 --> $DIR/invalid.rs:199:29 255 | 256199 | #[pin_project(project = OrigAndProj)] //~ ERROR name `OrigAndProj` is the same as the original type name 257 | ^^^^^^^^^^^ 258 259error: name `OrigAndProjRef` is the same as the original type name 260 --> $DIR/invalid.rs:202:33 261 | 262202 | #[pin_project(project_ref = OrigAndProjRef)] //~ ERROR name `OrigAndProjRef` is the same as the original type name 263 | ^^^^^^^^^^^^^^ 264 265error: name `OrigAndProjOwn` is the same as the original type name 266 --> $DIR/invalid.rs:205:37 267 | 268205 | #[pin_project(project_replace = OrigAndProjOwn)] //~ ERROR name `OrigAndProjOwn` is the same as the original type name 269 | ^^^^^^^^^^^^^^ 270 271error: name `A` is already specified by `project` argument 272 --> $DIR/invalid.rs:208:46 273 | 274208 | #[pin_project(project = A, project_ref = A)] //~ ERROR name `A` is already specified by `project` argument 275 | ^ 276 277error: name `A` is already specified by `project` argument 278 --> $DIR/invalid.rs:211:50 279 | 280211 | #[pin_project(project = A, project_replace = A)] //~ ERROR name `A` is already specified by `project` argument 281 | ^ 282 283error: name `A` is already specified by `project_ref` argument 284 --> $DIR/invalid.rs:214:54 285 | 286214 | #[pin_project(project_ref = A, project_replace = A)] //~ ERROR name `A` is already specified by `project_ref` argument 287 | ^ 288 289error: duplicate #[pin_project] attribute 290 --> $DIR/invalid.rs:222:5 291 | 292222 | #[pin_project] //~ ERROR duplicate #[pin_project] attribute 293 | ^^^^^^^^^^^^^^ 294 295error: #[pin_project] attribute may not be used on structs with zero fields 296 --> $DIR/invalid.rs:230:19 297 | 298230 | struct Struct {} //~ ERROR may not be used on structs with zero fields 299 | ^^ 300 301error: #[pin_project] attribute may not be used on structs with zero fields 302 --> $DIR/invalid.rs:233:23 303 | 304233 | struct TupleStruct(); //~ ERROR may not be used on structs with zero fields 305 | ^^ 306 307error: #[pin_project] attribute may not be used on structs with zero fields 308 --> $DIR/invalid.rs:236:12 309 | 310236 | struct UnitStruct; //~ ERROR may not be used on structs with zero fields 311 | ^^^^^^^^^^ 312 313error: #[pin_project] attribute may not be used on enums without variants 314 --> $DIR/invalid.rs:239:20 315 | 316239 | enum EnumEmpty {} //~ ERROR may not be used on enums without variants 317 | ^^ 318 319error: #[pin_project] attribute may not be used on enums with discriminants 320 --> $DIR/invalid.rs:243:13 321 | 322243 | V = 2, //~ ERROR may not be used on enums with discriminants 323 | ^ 324 325error: #[pin_project] attribute may not be used on enums with zero fields 326 --> $DIR/invalid.rs:248:9 327 | 328248 | / Unit, //~ ERROR may not be used on enums with zero fields 329249 | | Tuple(), 330250 | | Struct {}, 331 | |__________________^ 332 333error: #[pin_project] attribute may only be used on structs or enums 334 --> $DIR/invalid.rs:254:5 335 | 336254 | / union Union { 337255 | | //~^ ERROR may only be used on structs or enums 338256 | | f: (), 339257 | | } 340 | |_____^ 341 342error: #[pin_project] attribute may only be used on structs or enums 343 --> $DIR/invalid.rs:260:5 344 | 345260 | impl Impl {} //~ ERROR may only be used on structs or enums 346 | ^^^^^^^^^^^^ 347 348error: #[pin_project] attribute may not be used on #[repr(packed)] types 349 --> $DIR/invalid.rs:268:12 350 | 351268 | #[repr(packed)] 352 | ^^^^^^ 353 354error: #[pin_project] attribute may not be used on #[repr(packed)] types 355 --> $DIR/invalid.rs:272:12 356 | 357272 | #[repr(packed)] 358 | ^^^^^^ 359 360error: #[pin_project] attribute may not be used on #[repr(packed)] types 361 --> $DIR/invalid.rs:276:12 362 | 363276 | #[repr(packed)] 364 | ^^^^^^ 365