summaryrefslogtreecommitdiff
path: root/src/macro_rules/eval.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/macro_rules/eval.cpp')
-rw-r--r--src/macro_rules/eval.cpp11
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();