| error: unexpected token: () |
| --> $DIR/invalid.rs:6:14 |
| | |
| 6 | #[pin()] //~ ERROR unexpected token |
| | ^^ |
| |
| error: unexpected token: (foo) |
| --> $DIR/invalid.rs:11:29 |
| | |
| 11 | struct TupleStruct(#[pin(foo)] ()); //~ ERROR unexpected token |
| | ^^^^^ |
| |
| error: unexpected token: (foo) |
| --> $DIR/invalid.rs:15:16 |
| | |
| 15 | V(#[pin(foo)] ()), //~ ERROR unexpected token |
| | ^^^^^ |
| |
| error: unexpected token: (foo) |
| --> $DIR/invalid.rs:21:18 |
| | |
| 21 | #[pin(foo)] //~ ERROR unexpected token |
| | ^^^^^ |
| |
| error: duplicate #[pin] attribute |
| --> $DIR/invalid.rs:33:9 |
| | |
| 33 | #[pin] //~ ERROR duplicate #[pin] attribute |
| | ^^^^^^ |
| |
| error: duplicate #[pin] attribute |
| --> $DIR/invalid.rs:40:9 |
| | |
| 40 | #[pin] |
| | ^^^^^^ |
| |
| error: duplicate #[pin] attribute |
| --> $DIR/invalid.rs:49:13 |
| | |
| 49 | #[pin] |
| | ^^^^^^ |
| |
| error: duplicate #[pin] attribute |
| --> $DIR/invalid.rs:59:13 |
| | |
| 59 | #[pin] //~ ERROR duplicate #[pin] attribute |
| | ^^^^^^ |
| |
| error: #[pin] attribute may only be used on fields of structs or variants |
| --> $DIR/invalid.rs:69:5 |
| | |
| 69 | #[pin] //~ ERROR may only be used on fields of structs or variants |
| | ^^^^^^ |
| |
| error: #[pin] attribute may only be used on fields of structs or variants |
| --> $DIR/invalid.rs:77:9 |
| | |
| 77 | #[pin] //~ ERROR may only be used on fields of structs or variants |
| | ^^^^^^ |
| |
| error: #[pin] attribute may only be used on fields of structs or variants |
| --> $DIR/invalid.rs:82:5 |
| | |
| 82 | #[pin] //~ ERROR may only be used on fields of structs or variants |
| | ^^^^^^ |
| |
| error: `Replace` argument was removed, use `project_replace` argument instead |
| --> $DIR/invalid.rs:91:19 |
| | |
| 91 | #[pin_project(Replace)] //~ ERROR `Replace` argument was removed, use `project_replace` argument instead |
| | ^^^^^^^ |
| |
| error: expected identifier |
| --> $DIR/invalid.rs:94:31 |
| | |
| 94 | #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier |
| | ^ |
| |
| error: unexpected argument: Foo |
| --> $DIR/invalid.rs:97:19 |
| | |
| 97 | #[pin_project(Foo)] //~ ERROR unexpected argument |
| | ^^^ |
| |
| error: expected identifier |
| --> $DIR/invalid.rs:100:19 |
| | |
| 100 | #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier |
| | ^ |
| |
| error: expected `,` |
| --> $DIR/invalid.rs:106:30 |
| | |
| 106 | #[pin_project(PinnedDrop PinnedDrop)] //~ ERROR expected `,` |
| | ^^^^^^^^^^ |
| |
| error: duplicate `PinnedDrop` argument |
| --> $DIR/invalid.rs:109:31 |
| | |
| 109 | #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument |
| | ^^^^^^^^^^ |
| |
| error: duplicate `UnsafeUnpin` argument |
| --> $DIR/invalid.rs:112:32 |
| | |
| 112 | #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument |
| | ^^^^^^^^^^^ |
| |
| error: duplicate `!Unpin` argument |
| --> $DIR/invalid.rs:115:27 |
| | |
| 115 | #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument |
| | ^^^^^^ |
| |
| error: duplicate `UnsafeUnpin` argument |
| --> $DIR/invalid.rs:118:44 |
| | |
| 118 | #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument |
| | ^^^^^^^^^^^ |
| |
| error: duplicate `PinnedDrop` argument |
| --> $DIR/invalid.rs:121:44 |
| | |
| 121 | #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument |
| | ^^^^^^^^^^ |
| |
| error: duplicate `project` argument |
| --> $DIR/invalid.rs:124:32 |
| | |
| 124 | #[pin_project(project = A, project = B)] //~ ERROR duplicate `project` argument |
| | ^^^^^^^^^^^ |
| |
| error: duplicate `project` argument |
| --> $DIR/invalid.rs:127:49 |
| | |
| 127 | #[pin_project(project = A, project_ref = A, project = B)] //~ ERROR duplicate `project` argument |
| | ^^^^^^^^^^^ |
| |
| error: duplicate `project_ref` argument |
| --> $DIR/invalid.rs:130:36 |
| | |
| 130 | #[pin_project(project_ref = A, project_ref = B)] //~ ERROR duplicate `project_ref` argument |
| | ^^^^^^^^^^^^^^^ |
| |
| error: duplicate `project_replace` argument |
| --> $DIR/invalid.rs:133:40 |
| | |
| 133 | #[pin_project(project_replace = A, project_replace = B)] //~ ERROR duplicate `project_replace` argument |
| | ^^^^^^^^^^^^^^^^^^^ |
| |
| error: duplicate `project_replace` argument |
| --> $DIR/invalid.rs:136:36 |
| | |
| 136 | #[pin_project(project_replace, project_replace = B)] //~ ERROR duplicate `project_replace` argument |
| | ^^^^^^^^^^^^^^^^^^^ |
| |
| error: duplicate `project_replace` argument |
| --> $DIR/invalid.rs:139:40 |
| | |
| 139 | #[pin_project(project_replace = A, project_replace)] //~ ERROR duplicate `project_replace` argument |
| | ^^^^^^^^^^^^^^^ |
| |
| error: arguments `PinnedDrop` and `project_replace` are mutually exclusive |
| --> $DIR/invalid.rs:145:19 |
| | |
| 145 | #[pin_project(PinnedDrop, project_replace)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive |
| | ^^^^^^^^^^ |
| |
| error: arguments `PinnedDrop` and `project_replace` are mutually exclusive |
| --> $DIR/invalid.rs:148:49 |
| | |
| 148 | #[pin_project(project_replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `project_replace` are mutually exclusive |
| | ^^^^^^^^^^ |
| |
| error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive |
| --> $DIR/invalid.rs:151:19 |
| | |
| 151 | #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive |
| | ^^^^^^^^^^^ |
| |
| error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive |
| --> $DIR/invalid.rs:154:39 |
| | |
| 154 | #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive |
| | ^^^^^^^^^^^ |
| |
| error: expected `!Unpin`, found `!` |
| --> $DIR/invalid.rs:157:19 |
| | |
| 157 | #[pin_project(!)] //~ ERROR expected `!Unpin`, found `!` |
| | ^ |
| |
| error: unexpected argument: Unpin |
| --> $DIR/invalid.rs:160:19 |
| | |
| 160 | #[pin_project(Unpin)] //~ ERROR unexpected argument |
| | ^^^^^ |
| |
| error: expected `project = <identifier>`, found `project` |
| --> $DIR/invalid.rs:163:19 |
| | |
| 163 | #[pin_project(project)] //~ ERROR expected `project = <identifier>`, found `project` |
| | ^^^^^^^ |
| |
| error: expected `project = <identifier>`, found `project =` |
| --> $DIR/invalid.rs:166:19 |
| | |
| 166 | #[pin_project(project = )] //~ ERROR expected `project = <identifier>`, found `project =` |
| | ^^^^^^^^^ |
| |
| error: expected identifier |
| --> $DIR/invalid.rs:169:29 |
| | |
| 169 | #[pin_project(project = !)] //~ ERROR expected identifier |
| | ^ |
| |
| error: expected `project_ref = <identifier>`, found `project_ref` |
| --> $DIR/invalid.rs:172:19 |
| | |
| 172 | #[pin_project(project_ref)] //~ ERROR expected `project_ref = <identifier>`, found `project_ref` |
| | ^^^^^^^^^^^ |
| |
| error: expected `project_ref = <identifier>`, found `project_ref =` |
| --> $DIR/invalid.rs:175:19 |
| | |
| 175 | #[pin_project(project_ref = )] //~ ERROR expected `project_ref = <identifier>`, found `project_ref =` |
| | ^^^^^^^^^^^^^ |
| |
| error: expected identifier |
| --> $DIR/invalid.rs:178:33 |
| | |
| 178 | #[pin_project(project_ref = !)] //~ ERROR expected identifier |
| | ^ |
| |
| error: expected `project_replace = <identifier>`, found `project_replace =` |
| --> $DIR/invalid.rs:184:19 |
| | |
| 184 | #[pin_project(project_replace = )] //~ ERROR expected `project_replace = <identifier>`, found `project_replace =` |
| | ^^^^^^^^^^^^^^^^^ |
| |
| error: expected identifier |
| --> $DIR/invalid.rs:187:37 |
| | |
| 187 | #[pin_project(project_replace = !)] //~ ERROR expected identifier |
| | ^ |
| |
| error: `project_replace` argument requires a value when used on enums |
| --> $DIR/invalid.rs:190:19 |
| | |
| 190 | #[pin_project(project_replace)] //~ ERROR `project_replace` argument requires a value when used on enums |
| | ^^^^^^^^^^^^^^^ |
| |
| error: name `OrigAndProj` is the same as the original type name |
| --> $DIR/invalid.rs:199:29 |
| | |
| 199 | #[pin_project(project = OrigAndProj)] //~ ERROR name `OrigAndProj` is the same as the original type name |
| | ^^^^^^^^^^^ |
| |
| error: name `OrigAndProjRef` is the same as the original type name |
| --> $DIR/invalid.rs:202:33 |
| | |
| 202 | #[pin_project(project_ref = OrigAndProjRef)] //~ ERROR name `OrigAndProjRef` is the same as the original type name |
| | ^^^^^^^^^^^^^^ |
| |
| error: name `OrigAndProjOwn` is the same as the original type name |
| --> $DIR/invalid.rs:205:37 |
| | |
| 205 | #[pin_project(project_replace = OrigAndProjOwn)] //~ ERROR name `OrigAndProjOwn` is the same as the original type name |
| | ^^^^^^^^^^^^^^ |
| |
| error: name `A` is already specified by `project` argument |
| --> $DIR/invalid.rs:208:46 |
| | |
| 208 | #[pin_project(project = A, project_ref = A)] //~ ERROR name `A` is already specified by `project` argument |
| | ^ |
| |
| error: name `A` is already specified by `project` argument |
| --> $DIR/invalid.rs:211:50 |
| | |
| 211 | #[pin_project(project = A, project_replace = A)] //~ ERROR name `A` is already specified by `project` argument |
| | ^ |
| |
| error: name `A` is already specified by `project_ref` argument |
| --> $DIR/invalid.rs:214:54 |
| | |
| 214 | #[pin_project(project_ref = A, project_replace = A)] //~ ERROR name `A` is already specified by `project_ref` argument |
| | ^ |
| |
| error: duplicate #[pin_project] attribute |
| --> $DIR/invalid.rs:222:5 |
| | |
| 222 | #[pin_project] //~ ERROR duplicate #[pin_project] attribute |
| | ^^^^^^^^^^^^^^ |
| |
| error: #[pin_project] attribute may not be used on structs with zero fields |
| --> $DIR/invalid.rs:230:19 |
| | |
| 230 | struct Struct {} //~ ERROR may not be used on structs with zero fields |
| | ^^ |
| |
| error: #[pin_project] attribute may not be used on structs with zero fields |
| --> $DIR/invalid.rs:233:23 |
| | |
| 233 | struct TupleStruct(); //~ ERROR may not be used on structs with zero fields |
| | ^^ |
| |
| error: #[pin_project] attribute may not be used on structs with zero fields |
| --> $DIR/invalid.rs:236:12 |
| | |
| 236 | struct UnitStruct; //~ ERROR may not be used on structs with zero fields |
| | ^^^^^^^^^^ |
| |
| error: #[pin_project] attribute may not be used on enums without variants |
| --> $DIR/invalid.rs:239:20 |
| | |
| 239 | enum EnumEmpty {} //~ ERROR may not be used on enums without variants |
| | ^^ |
| |
| error: #[pin_project] attribute may not be used on enums with discriminants |
| --> $DIR/invalid.rs:243:13 |
| | |
| 243 | V = 2, //~ ERROR may not be used on enums with discriminants |
| | ^ |
| |
| error: #[pin_project] attribute may not be used on enums with zero fields |
| --> $DIR/invalid.rs:248:9 |
| | |
| 248 | / Unit, //~ ERROR may not be used on enums with zero fields |
| 249 | | Tuple(), |
| 250 | | Struct {}, |
| | |__________________^ |
| |
| error: #[pin_project] attribute may only be used on structs or enums |
| --> $DIR/invalid.rs:254:5 |
| | |
| 254 | / union Union { |
| 255 | | //~^ ERROR may only be used on structs or enums |
| 256 | | f: (), |
| 257 | | } |
| | |_____^ |
| |
| error: #[pin_project] attribute may only be used on structs or enums |
| --> $DIR/invalid.rs:260:5 |
| | |
| 260 | impl Impl {} //~ ERROR may only be used on structs or enums |
| | ^^^^^^^^^^^^ |
| |
| error: #[pin_project] attribute may not be used on #[repr(packed)] types |
| --> $DIR/invalid.rs:268:12 |
| | |
| 268 | #[repr(packed)] |
| | ^^^^^^ |
| |
| error: #[pin_project] attribute may not be used on #[repr(packed)] types |
| --> $DIR/invalid.rs:272:12 |
| | |
| 272 | #[repr(packed)] |
| | ^^^^^^ |
| |
| error: #[pin_project] attribute may not be used on #[repr(packed)] types |
| --> $DIR/invalid.rs:276:12 |
| | |
| 276 | #[repr(packed)] |
| | ^^^^^^ |