2025-08-09 15:16:19 -07:00
|
|
|
#![crate_type = "lib"]
|
|
|
|
|
#![feature(macro_derive)]
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_incomplete_1 { derive }
|
|
|
|
|
//~^ ERROR macro definition ended unexpectedly
|
|
|
|
|
//~| NOTE expected `()` after `derive`
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_incomplete_2 { derive() }
|
|
|
|
|
//~^ ERROR macro definition ended unexpectedly
|
|
|
|
|
//~| NOTE expected macro derive body
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_incomplete_3 { derive() {} }
|
|
|
|
|
//~^ ERROR expected `=>`
|
|
|
|
|
//~| NOTE expected `=>`
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_incomplete_4 { derive() {} => }
|
|
|
|
|
//~^ ERROR macro definition ended unexpectedly
|
|
|
|
|
//~| NOTE expected right-hand side of macro rule
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_noparens_1 { derive{} {} => {} }
|
|
|
|
|
//~^ ERROR `derive` rule argument matchers require parentheses
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_noparens_2 { derive[] {} => {} }
|
|
|
|
|
//~^ ERROR `derive` rule argument matchers require parentheses
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_noparens_3 { derive _ {} => {} }
|
|
|
|
|
//~^ ERROR `derive` must be followed by `()`
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_args_1 { derive($x:ident) ($y:ident) => {} }
|
|
|
|
|
//~^ ERROR `derive` rules do not accept arguments
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_args_2 { derive() => {} }
|
|
|
|
|
//~^ ERROR expected macro derive body, got `=>`
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_args_3 { derive($x:ident) => {} }
|
|
|
|
|
//~^ ERROR `derive` rules do not accept arguments
|
|
|
|
|
//~| ERROR expected macro derive body, got `=>`
|
|
|
|
|
//~| NOTE need `()` after this `derive`
|
|
|
|
|
|
|
|
|
|
macro_rules! derive_dup_matcher { derive() {$x:ident $x:ident} => {} }
|
|
|
|
|
//~^ ERROR duplicate matcher binding
|
|
|
|
|
//~| NOTE duplicate binding
|
|
|
|
|
//~| NOTE previous binding
|
2025-09-14 16:23:39 +08:00
|
|
|
|
|
|
|
|
macro_rules! derive_unsafe { unsafe derive() {} => {} }
|
|
|
|
|
//~^ ERROR `unsafe` is only supported on `attr` rules
|