struct Example; macro_rules! external_macro { () => {{ //~^ ERROR expected type const X: usize = 1337; X }} } trait Marker {} impl Marker for Example {} fn make_marker() -> impl Marker { //~^ ERROR: type provided when a constant was expected //~| ERROR: type provided when a constant was expected Example:: //~^ ERROR: type provided when a constant was expected } fn from_marker(_: impl Marker<{ #[macro_export] macro_rules! inline { () => {{ 3 }} }; inline!() }>) {} fn main() { let _ok = Example::<{ #[macro_export] macro_rules! gimme_a_const { ($rusty: ident) => {{ let $rusty = 3; *&$rusty }} //~^ ERROR expected type //~| ERROR expected type }; gimme_a_const!(run) }>; let _fail = Example::; //~^ ERROR: type provided when a constant let _fail = Example::; //~^ ERROR unexpected end of macro invocation //~| ERROR: type provided when a constant was expected }