diff --git a/src/rustc/middle/trans/alt.rs b/src/rustc/middle/trans/alt.rs index d79fb51e804f80acd58df93abe21c0b598461158..5b0f620661c2f9d8d813c1d995b796b800046b16 100644 --- a/src/rustc/middle/trans/alt.rs +++ b/src/rustc/middle/trans/alt.rs @@ -164,7 +164,8 @@ fn enter_opt(tcx: ty::ctxt, m: match, opt: opt, col: uint, alt p.node { ast::pat_enum(_, subpats) { if opt_eq(tcx, variant_opt(tcx, p.id), opt) { - some(option::get_or_default(subpats, [])) } + some(option::get_or_default(subpats, + vec::from_elem(variant_size, dummy))) } else { none } } ast::pat_ident(_, none) if pat_is_variant(tcx.def_map, p) {