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: expected identifier
  --> $DIR/invalid.rs:91:31
   |
91 |     #[pin_project(UnsafeUnpin,,)] //~ ERROR expected identifier
   |                               ^

error: unexpected argument: Foo
  --> $DIR/invalid.rs:94:19
   |
94 |     #[pin_project(Foo)] //~ ERROR unexpected argument
   |                   ^^^

error: expected identifier
  --> $DIR/invalid.rs:97:19
   |
97 |     #[pin_project(,UnsafeUnpin)] //~ ERROR expected identifier
   |                   ^

error: duplicate `PinnedDrop` argument
   --> $DIR/invalid.rs:103:31
    |
103 |     #[pin_project(PinnedDrop, PinnedDrop)] //~ ERROR duplicate `PinnedDrop` argument
    |                               ^^^^^^^^^^

error: duplicate `Replace` argument
   --> $DIR/invalid.rs:106:28
    |
106 |     #[pin_project(Replace, Replace)] //~ ERROR duplicate `Replace` argument
    |                            ^^^^^^^

error: duplicate `UnsafeUnpin` argument
   --> $DIR/invalid.rs:109:32
    |
109 |     #[pin_project(UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
    |                                ^^^^^^^^^^^

error: duplicate `!Unpin` argument
   --> $DIR/invalid.rs:112:27
    |
112 |     #[pin_project(!Unpin, !Unpin)] //~ ERROR duplicate `!Unpin` argument
    |                           ^^^^^^

error: duplicate `UnsafeUnpin` argument
   --> $DIR/invalid.rs:115:44
    |
115 |     #[pin_project(PinnedDrop, UnsafeUnpin, UnsafeUnpin)] //~ ERROR duplicate `UnsafeUnpin` argument
    |                                            ^^^^^^^^^^^

error: duplicate `PinnedDrop` argument
   --> $DIR/invalid.rs:118:44
    |
118 |     #[pin_project(PinnedDrop, UnsafeUnpin, PinnedDrop, UnsafeUnpin)] //~ ERROR duplicate `PinnedDrop` argument
    |                                            ^^^^^^^^^^

error: arguments `PinnedDrop` and `Replace` are mutually exclusive
   --> $DIR/invalid.rs:121:19
    |
121 |     #[pin_project(PinnedDrop, Replace)] //~ ERROR arguments `PinnedDrop` and `Replace` are mutually exclusive
    |                   ^^^^^^^^^^

error: arguments `PinnedDrop` and `Replace` are mutually exclusive
   --> $DIR/invalid.rs:124:41
    |
124 |     #[pin_project(Replace, UnsafeUnpin, PinnedDrop)] //~ ERROR arguments `PinnedDrop` and `Replace` are mutually exclusive
    |                                         ^^^^^^^^^^

error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
   --> $DIR/invalid.rs:127:19
    |
127 |     #[pin_project(UnsafeUnpin, !Unpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
    |                   ^^^^^^^^^^^

error: arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
   --> $DIR/invalid.rs:130:39
    |
130 |     #[pin_project(!Unpin, PinnedDrop, UnsafeUnpin)] //~ ERROR arguments `UnsafeUnpin` and `!Unpin` are mutually exclusive
    |                                       ^^^^^^^^^^^

error: unexpected end of input, expected `Unpin`
   --> $DIR/invalid.rs:133:5
    |
133 |     #[pin_project(!)] //~ ERROR unexpected end of input, expected `Unpin`
    |     ^^^^^^^^^^^^^^^^^
    |
    = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: unexpected argument: Unpin
   --> $DIR/invalid.rs:136:19
    |
136 |     #[pin_project(Unpin)] //~ ERROR unexpected argument
    |                   ^^^^^

error: duplicate #[pin_project] attribute
   --> $DIR/invalid.rs:144:5
    |
144 |     #[pin_project] //~ ERROR duplicate #[pin_project] attribute
    |     ^^^^^^^^^^^^^^

error: #[pin_project] attribute may not be used on structs with zero fields
   --> $DIR/invalid.rs:152:19
    |
152 |     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:155:23
    |
155 |     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:158:12
    |
158 |     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:161:20
    |
161 |     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:165:13
    |
165 |         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:170:9
    |
170 | /         Unit, //~ ERROR may not be used on enums with zero fields
171 | |         Tuple(),
172 | |         Struct {},
    | |__________________^

error: #[pin_project] attribute may only be used on structs or enums
   --> $DIR/invalid.rs:176:5
    |
176 | /     union Union {
177 | |         //~^ ERROR may only be used on structs or enums
178 | |         f: (),
179 | |     }
    | |_____^

error: #[pin_project] attribute may not be used on #[repr(packed)] types
   --> $DIR/invalid.rs:187:12
    |
187 |     #[repr(packed)]
    |            ^^^^^^

error: #[pin_project] attribute may not be used on #[repr(packed)] types
   --> $DIR/invalid.rs:191:12
    |
191 |     #[repr(packed)]
    |            ^^^^^^

error: #[pin_project] attribute may not be used on #[repr(packed)] types
   --> $DIR/invalid.rs:195:12
    |
195 |     #[repr(packed)]
    |            ^^^^^^
