aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/front')
-rw-r--r--src/comp/front/ast.rs7
-rw-r--r--src/comp/front/parser.rs3
2 files changed, 7 insertions, 3 deletions
diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs
index 46666a34..61450a1b 100644
--- a/src/comp/front/ast.rs
+++ b/src/comp/front/ast.rs
@@ -188,7 +188,7 @@ fn binop_to_str(binop op) -> str {
tag unop {
- box;
+ box(mutability);
deref;
bitnot;
not;
@@ -197,7 +197,10 @@ tag unop {
fn unop_to_str(unop op) -> str {
alt (op) {
- case (box) {ret "@";}
+ case (box(?mt)) {
+ if (mt == mut) { ret "@mutable"; }
+ ret "@";
+ }
case (deref) {ret "*";}
case (bitnot) {ret "~";}
case (not) {ret "!";}
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs
index 4c3e6cf0..1e0a9042 100644
--- a/src/comp/front/parser.rs
+++ b/src/comp/front/parser.rs
@@ -1074,9 +1074,10 @@ impure fn parse_prefix_expr(parser p) -> @ast.expr {
case (token.AT) {
p.bump();
+ auto m = parse_mutability(p);
auto e = parse_prefix_expr(p);
hi = e.span;
- ex = ast.expr_unary(ast.box, e, ast.ann_none);
+ ex = ast.expr_unary(ast.box(m), e, ast.ann_none);
}
case (_) {