aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-04-28 16:37:18 -0700
committerGraydon Hoare <[email protected]>2011-04-28 16:37:18 -0700
commite300b8047f57920f518ab32eadef12d8e6047c5d (patch)
tree714496a08f7814a8738fc6f1bb0256db7bf62054 /src
parentrustc: Add a testcase for vector push (mutable aliases with *, really) (diff)
downloadrust-e300b8047f57920f518ab32eadef12d8e6047c5d.tar.xz
rust-e300b8047f57920f518ab32eadef12d8e6047c5d.zip
Consider unop deref as an lval. Un-XFAIL vec-push.
Diffstat (limited to 'src')
-rw-r--r--src/comp/middle/ty.rs1
-rw-r--r--src/test/run-pass/vec-push.rs4
2 files changed, 2 insertions, 3 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 47442f2b..b99ae33a 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -1958,6 +1958,7 @@ fn is_lval(@ast.expr expr) -> bool {
case (ast.expr_field(_,_,_)) { ret true; }
case (ast.expr_index(_,_,_)) { ret true; }
case (ast.expr_path(_,_,_)) { ret true; }
+ case (ast.expr_unary(ast.deref,_,_)) { ret true; }
case (_) { ret false; }
}
}
diff --git a/src/test/run-pass/vec-push.rs b/src/test/run-pass/vec-push.rs
index 93b93687..fc4f19ea 100644
--- a/src/test/run-pass/vec-push.rs
+++ b/src/test/run-pass/vec-push.rs
@@ -1,11 +1,9 @@
-// xfail-stage0
-
fn push[T](&mutable vec[mutable? T] v, &T t) {
v += vec(t);
}
fn main() {
auto v = @vec(1, 2, 3);
- push(*v, 1);
+ push[int](*v, 1);
}