1 struct Example<const N: usize>;
3 macro_rules! external_macro {
5 //~^ ERROR expected type
11 trait Marker<const N: usize> {}
12 impl<const N: usize> Marker<N> for Example<N> {}
14 fn make_marker() -> impl Marker<gimme_a_const!(marker)> {
15 //~^ ERROR: type provided when a constant was expected
16 Example::<gimme_a_const!(marker)>
17 //~^ ERROR: type provided when a constant was expected
20 fn from_marker(_: impl Marker<{
22 macro_rules! inline { () => {{ 3 }} }; inline!()
28 macro_rules! gimme_a_const {
29 ($rusty: ident) => {{ let $rusty = 3; *&$rusty }}
30 //~^ ERROR expected type
31 //~| ERROR expected type
36 let _fail = Example::<external_macro!()>;
37 //~^ ERROR: type provided when a constant was expected
39 let _fail = Example::<gimme_a_const!()>;
40 //~^ ERROR: type provided when a constant was expected
41 //~| ERROR unexpected end of macro invocation