Fix decoding of unboxed closure kinds

Closes #18378.  Note that cross-crate unboxed closures are
still unimplemented and will fail to work currently.
This commit is contained in:
Brian Koropoff 2014-11-02 00:16:38 -07:00
parent 3327ecca42
commit 28f70d3440

View File

@ -1756,12 +1756,14 @@ impl<'a> rbml_decoder_decoder_helpers for reader::Decoder<'a> {
"FnMutUnboxedClosureKind", "FnMutUnboxedClosureKind",
"FnOnceUnboxedClosureKind" "FnOnceUnboxedClosureKind"
]; ];
let kind = self.read_enum_variant(variants, |_, i| { let kind = self.read_enum("UnboxedClosureKind", |this| {
Ok(match i { this.read_enum_variant(variants, |_, i| {
0 => ty::FnUnboxedClosureKind, Ok(match i {
1 => ty::FnMutUnboxedClosureKind, 0 => ty::FnUnboxedClosureKind,
2 => ty::FnOnceUnboxedClosureKind, 1 => ty::FnMutUnboxedClosureKind,
_ => panic!("bad enum variant for ty::UnboxedClosureKind"), 2 => ty::FnOnceUnboxedClosureKind,
_ => panic!("bad enum variant for ty::UnboxedClosureKind"),
})
}) })
}).unwrap(); }).unwrap();
ty::UnboxedClosure { ty::UnboxedClosure {