- Handle empty `cfg_attr` attribute - Reword empty `derive` attribute error - Use consistend error message: "malformed `attrname` attribute input" - Provide suggestions when possible - Move note/help to label/suggestion - Use consistent wording "ill-formed" -> "malformed" - Move diagnostic logic out of parser
26 lines
882 B
Rust
26 lines
882 B
Rust
// force-host
|
|
// no-prefer-dynamic
|
|
|
|
#![crate_type = "proc-macro"]
|
|
|
|
extern crate proc_macro;
|
|
|
|
use proc_macro::TokenStream;
|
|
|
|
#[proc_macro = "test"] //~ ERROR malformed `proc_macro` attribute
|
|
pub fn a(a: TokenStream) -> TokenStream { a }
|
|
|
|
#[proc_macro()] //~ ERROR malformed `proc_macro` attribute
|
|
pub fn c(a: TokenStream) -> TokenStream { a }
|
|
|
|
#[proc_macro(x)] //~ ERROR malformed `proc_macro` attribute
|
|
pub fn d(a: TokenStream) -> TokenStream { a }
|
|
|
|
#[proc_macro_attribute = "test"] //~ ERROR malformed `proc_macro_attribute` attribute
|
|
pub fn e(_: TokenStream, a: TokenStream) -> TokenStream { a }
|
|
|
|
#[proc_macro_attribute()] //~ ERROR malformed `proc_macro_attribute` attribute
|
|
pub fn g(_: TokenStream, a: TokenStream) -> TokenStream { a }
|
|
|
|
#[proc_macro_attribute(x)] //~ ERROR malformed `proc_macro_attribute` attribute
|
|
pub fn h(_: TokenStream, a: TokenStream) -> TokenStream { a }
|