When encountering an attribute in a body, we try to recover from an attribute on an expression (as opposed to a statement). We need to properly clean up when the attribute is at the end of the body where a tail expression would be. Fix #118164.
28 lines
944 B
Plaintext
28 lines
944 B
Plaintext
error: expected `;`, found `#`
|
|
--> $DIR/properly-recover-from-trailing-outer-attribute-in-body.rs:4:47
|
|
|
|
|
LL | #[cfg(feature = )]
|
|
| ------------------ only `;` terminated statements or tail expressions are allowed after this attribute
|
|
LL | [1, 2, 3].iter().map().collect::<String>()
|
|
| ^ expected `;` here
|
|
LL | #[attr]
|
|
| - unexpected token
|
|
|
|
|
help: add `;` here
|
|
|
|
|
LL | [1, 2, 3].iter().map().collect::<String>();
|
|
| +
|
|
help: alternatively, consider surrounding the expression with a block
|
|
|
|
|
LL | { [1, 2, 3].iter().map().collect::<String>() }
|
|
| + +
|
|
|
|
error: expected statement after outer attribute
|
|
--> $DIR/properly-recover-from-trailing-outer-attribute-in-body.rs:5:5
|
|
|
|
|
LL | #[attr]
|
|
| ^^^^^^^
|
|
|
|
error: aborting due to 2 previous errors
|
|
|