Large diffs are not rendered by default.

@@ -307,7 +307,7 @@ fn resolve_names(&@env e, &ast::crate c) {
}
case (_) {
e.sess.span_err(p.span, "not a tag variant: " +
str::connect(p.node.idents, "::"));
ast::path_name(p));
}
}
for (@ast::pat child in children) {
@@ -0,0 +1,15 @@
// error-pattern:invalidate alias x

fn whoknows(@mutable int x) {
*x = 10;
}

fn main() {
auto box = @mutable 1;
alt (*box) {
case (?x) {
whoknows(box);
log_err x;
}
}
}
@@ -1,10 +1,14 @@
// error-pattern:can not create alias
// error-pattern:may alias with argument

fn foo(&int x) {
fn foo(&int x, fn() f) {
log x;
}

fn whoknows(@mutable int x) {
*x = 10;
}

fn main() {
auto box = @mutable 1;
foo(*box);
foo(*box, bind whoknows(box));
}
@@ -1,4 +1,4 @@
// error-pattern:x is being aliased
// error-pattern:invalidate alias i

tag foo {
left(int);
@@ -10,6 +10,7 @@ fn main() {
alt (x) {
case (left(?i)) {
x = right(false);
log i;
}
case (_) {}
}