@@ -2046,7 +2046,7 @@ fn universally_quantify_before_call(fcx: @fn_ctxt,
2046
2046
}
2047
2047
2048
2048
fn check_pat_variant ( pcx : pat_ctxt , pat : @ast:: pat , path : @ast:: path ,
2049
- subpats : [ @ast:: pat ] , expected : ty:: t ) {
2049
+ subpats : option < [ @ast:: pat ] > , expected : ty:: t ) {
2050
2050
2051
2051
// Typecheck the path.
2052
2052
let fcx = pcx. fcx ;
@@ -2075,8 +2075,9 @@ fn check_pat_variant(pcx: pat_ctxt, pat: @ast::pat, path: @ast::path,
2075
2075
tcx, v_def_ids. enm , v_def_ids. var ) ;
2076
2076
vinfo. args . map { |t| ty:: subst ( tcx, expected_substs, t) }
2077
2077
} ;
2078
-
2079
- let subpats_len = subpats. len ( ) , arg_len = arg_types. len ( ) ;
2078
+ let arg_len = arg_types. len ( ) , subpats_len = alt subpats {
2079
+ none { arg_len }
2080
+ some ( ps) { ps. len ( ) } } ;
2080
2081
if arg_len > 0 u {
2081
2082
// N-ary variant.
2082
2083
if arg_len != subpats_len {
@@ -2089,9 +2090,11 @@ fn check_pat_variant(pcx: pat_ctxt, pat: @ast::pat, path: @ast::path,
2089
2090
tcx. sess . span_fatal ( pat. span , s) ;
2090
2091
}
2091
2092
2092
- vec:: iter2 ( subpats, arg_types) { |subpat, arg_ty|
2093
- check_pat ( pcx, subpat, arg_ty) ;
2094
- }
2093
+ option:: iter ( subpats) { |pats|
2094
+ vec:: iter2 ( pats, arg_types) { |subpat, arg_ty|
2095
+ check_pat ( pcx, subpat, arg_ty) ;
2096
+ }
2097
+ } ;
2095
2098
} else if subpats_len > 0 u {
2096
2099
tcx. sess . span_fatal
2097
2100
( pat. span , #fmt[ "this pattern has %u field%s, \
@@ -2159,8 +2162,8 @@ fn check_pat(pcx: pat_ctxt, pat: @ast::pat, expected: ty::t) {
2159
2162
_ { }
2160
2163
}
2161
2164
}
2162
- ast:: pat_ident ( path, _ ) {
2163
- check_pat_variant ( pcx, pat, path, [ ] , expected) ;
2165
+ ast:: pat_ident ( path, c ) {
2166
+ check_pat_variant ( pcx, pat, path, some ( [ ] ) , expected) ;
2164
2167
}
2165
2168
ast:: pat_enum ( path, subpats) {
2166
2169
check_pat_variant ( pcx, pat, path, subpats, expected) ;
@@ -3885,7 +3888,7 @@ fn check_enum_variants(ccx: @crate_ctxt,
3885
3888
} ) {
3886
3889
ccx. tcx . sess . span_err ( sp, "illegal recursive enum type. \
3887
3890
wrap the inner value in a box to \
3888
- make it represenable ") ;
3891
+ make it representable ") ;
3889
3892
}
3890
3893
3891
3894
// Check that it is possible to instantiate this enum:
0 commit comments