summaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2015-03-25 14:44:21 +0800
committerJohn Hodge <tpg@mutabah.net>2015-03-25 14:44:21 +0800
commit56601285b24450168e8b1853ae9c8b65f4576cb0 (patch)
treedaf1df0ad8cefef46696d7f9b1990b959d77f198 /src/parse
parentb698207664e45b9b0bb9944b5c97084dfc593ed6 (diff)
downloadmrust-56601285b24450168e8b1853ae9c8b65f4576cb0.tar.gz
Fix pattern handling (not using Parse_Pattern for & patterns, inverted check for & pattern iterate)
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/pattern.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/parse/pattern.cpp b/src/parse/pattern.cpp
index 7113f94b..28e7ebaa 100644
--- a/src/parse/pattern.cpp
+++ b/src/parse/pattern.cpp
@@ -149,11 +149,12 @@ AST::Pattern Parse_PatternReal1(TokenStream& lex)
return AST::Pattern( AST::Pattern::TagWildcard() );
case TOK_AMP:
DEBUG("Ref");
+ // NOTE: Falls back into "Pattern" not "PatternReal" to handle MaybeBind again
if( GET_TOK(tok, lex) == TOK_RWORD_MUT )
// TODO: Actually use mutability
- return AST::Pattern( AST::Pattern::TagReference(), Parse_PatternReal(lex) );
+ return AST::Pattern( AST::Pattern::TagReference(), Parse_Pattern(lex) );
lex.putback(tok);
- return AST::Pattern( AST::Pattern::TagReference(), Parse_PatternReal(lex) );
+ return AST::Pattern( AST::Pattern::TagReference(), Parse_Pattern(lex) );
case TOK_IDENT:
lex.putback(tok);
return Parse_PatternReal_Path( lex, Parse_Path(lex, false, PATH_GENERIC_EXPR) );