Skip to content

Commit

Permalink
test: add test for inner attribute followed by outer attribute causin…
Browse files Browse the repository at this point in the history
…g ICE
  • Loading branch information
EliseZeroTwo committed Oct 27, 2021
1 parent 7402eb0 commit 7f0d43a
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// force-host
// no-prefer-dynamic

#![crate_type = "proc-macro"]

extern crate proc_macro;

use proc_macro::TokenStream;

#[proc_macro_derive(ICE)]
pub fn derive(_: TokenStream) -> TokenStream {
r#"#[allow(missing_docs)] struct X { }"#.parse().unwrap()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// aux-build:issue-89971-outer-attr-following-inner-attr-ice.rs

#[macro_use]
extern crate issue_89971_outer_attr_following_inner_attr_ice;

fn main() {
Mew();
X {};
}

#![deny(missing_docs)]
//~^ ERROR an inner attribute is not permitted in this context
#[derive(ICE)]
#[deny(missing_docs)]
struct Mew();
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
error: an inner attribute is not permitted in this context
--> $DIR/issue-89971-outer-attr-following-inner-attr-ice.rs:11:1
|
LL | #![deny(missing_docs)]
| ^^^^^^^^^^^^^^^^^^^^^^
...
LL | struct Mew();
| ------------- the inner attribute doesn't annotate this struct
|
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files
help: to annotate the struct, change the attribute from inner to outer style
|
LL - #![deny(missing_docs)]
LL + #[deny(missing_docs)]
|

error: aborting due to previous error

0 comments on commit 7f0d43a

Please sign in to comment.