summaryrefslogtreecommitdiff
path: root/src/parse/expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/expr.cpp')
-rw-r--r--src/parse/expr.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp
index d0d5bc7f..a8a16c7d 100644
--- a/src/parse/expr.cpp
+++ b/src/parse/expr.cpp
@@ -698,7 +698,12 @@ ExprNodeP Parse_Expr12(TokenStream& lex)
case TOK_RWORD_BOX:
return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::BOX, Parse_Expr12(lex) );
case TOK_AMP:
- return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::REF, Parse_Expr12(lex) );
+ if( GET_TOK(tok, lex) == TOK_RWORD_MUT )
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::REFMUT, Parse_Expr12(lex) );
+ else {
+ lex.putback(tok);
+ return NEWNODE( AST::ExprNode_UniOp, AST::ExprNode_UniOp::REF, Parse_Expr12(lex) );
+ }
default:
lex.putback(tok);
return Parse_ExprFC(lex);