diff options
Diffstat (limited to 'src/macro_rules/eval.cpp')
-rw-r--r-- | src/macro_rules/eval.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/macro_rules/eval.cpp b/src/macro_rules/eval.cpp index 24adac3e..9372fa6e 100644 --- a/src/macro_rules/eval.cpp +++ b/src/macro_rules/eval.cpp @@ -1074,7 +1074,16 @@ namespace case TOK_DOUBLE_COLON: case TOK_INTERPOLATED_IDENT: case TOK_INTERPOLATED_PATH: - return consume_path(lex, true); + if( !consume_path(lex, true) ) + return false; + if( lex.consume_if(TOK_EXCLAM) ) + { + if( lex.next() != TOK_PAREN_OPEN && lex.next() != TOK_SQUARE_OPEN && lex.next() != TOK_BRACE_OPEN ) + return false; + if( !consume_tt(lex) ) + return false; + } + return true; case TOK_AMP: case TOK_DOUBLE_AMP: lex.consume(); |