`error: expected statement after outer attribute` gone?
Open
@fmease is already working on this.
Since Oct 24, 2025.
A-attributes
A-doctests
C-bug
T-rustdoc
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
Upgrading from Rust 1.86 to 1.87 causes tests that were supposed to fail not to fail anymore, but I could not find a Compatibility Note about that, so I wonder if that is intentional or a regression.
Reproduction steps
- Create a new library:
cargo new a --lib - Modify
src/lib.rs://! ```rust //! #[derive(Clone)] //! ``` - Run
cargo testwith 1.86 and expect a failure:error: expected statement after outer attribute --> src/lib.rs:2:1 | 3 | #[derive(Clone)] | - Append
,compile_failto the first line://! ```rust,compile_fail //! #[derive(Clone)] //! ``` - Run
cargo testwith 1.86 and expect success:test src/lib.rs - (line 1) - compile fail ... ok - Retry steps 1-3 with 1.87+, which does not fail anymore:
test src/lib.rs - (line 1) ... ok - Retry steps 1-5 with 1.87+, which now fails:
Test compiled successfully, but it's marked `compile_fail`.
Expected result
With 1.87+, step 3 should fail and step 5 should succeed as before, or it should be mentioned in the Compatibility Notes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.