aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2010-10-14 15:02:35 -0700
committerPatrick Walton <[email protected]>2010-10-14 15:08:19 -0700
commitc7ab80f743b3e2d34bb702be787507418cc794a8 (patch)
treecac4fb19306b207c7fe5397ccc3b419ff53277c7 /src/boot
parentFix crasher in rustc. (diff)
downloadrust-c7ab80f743b3e2d34bb702be787507418cc794a8.tar.xz
rust-c7ab80f743b3e2d34bb702be787507418cc794a8.zip
Typecheck tags in "alt" patterns
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/me/type.ml2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/boot/me/type.ml b/src/boot/me/type.ml
index 66dd240e..648618e7 100644
--- a/src/boot/me/type.ml
+++ b/src/boot/me/type.ml
@@ -903,8 +903,10 @@ let check_stmt (cx:Semant.ctxt) : (fn_ctx -> Ast.stmt -> unit) =
let arg_tys =
match constr_ty with
Ast.TY_fn (ty_sig, _) ->
+ demand expected (get_slot_ty ty_sig.Ast.sig_output_slot);
Array.map get_slot_ty ty_sig.Ast.sig_input_slots
| Ast.TY_tag _ ->
+ demand expected constr_ty;
[||]
| _ -> type_error "constructor function" constr_ty
in