A function macro in expression position requires further consideration in regard to syntax.
A solution would be to expand to {compile_error!{ "error"} dummy + expr}
this is not valid in item/stmt position though, as it creates a new scope
Solution idea
Add expr(ssion) as a flag in the manyhow attribute, this will produce the extra wrapping in {}