That playground link doesn't have any code; you have to click the Share button to store the code.
Based on your original message, the problem is probably that you used $SOME_FLAG:expr in impl_something. :expr makes the matched expression opaque such that it cannot be further matched by passing it to other macros. Use :tt instead.
this will never work. there are certain positions where a macros invocation can appear, the list of valid macro invocations:
"type" is valid, but "incomplete generic type" (or, "type constructor", if you will) is not valid.
what's more, $SOME_FLAG is captured as an expr metavariable, which cannot be matched against literal tokens. only tt, ident and lifetime metavariables can be forwarded and examined again. see: