diff --git a/src/librustc_metadata/rmeta/decoder.rs b/src/librustc_metadata/rmeta/decoder.rs index d09e68e34a6..2576514735b 100644 --- a/src/librustc_metadata/rmeta/decoder.rs +++ b/src/librustc_metadata/rmeta/decoder.rs @@ -1392,7 +1392,7 @@ impl<'a, 'tcx> CrateMetadata { fn generator_kind(&self, id: DefIndex) -> Option { match self.kind(id) { - EntryKind::Generator(data) => Some(data.decode(self)), + EntryKind::Generator(data) => Some(data), _ => None, } } diff --git a/src/librustc_metadata/rmeta/encoder.rs b/src/librustc_metadata/rmeta/encoder.rs index e985ec5fcdf..ee54f40ece5 100644 --- a/src/librustc_metadata/rmeta/encoder.rs +++ b/src/librustc_metadata/rmeta/encoder.rs @@ -1268,7 +1268,7 @@ impl EncodeContext<'tcx> { record!(self.per_def.kind[def_id] <- match ty.kind { ty::Generator(..) => { let data = self.tcx.generator_kind(def_id).unwrap(); - EntryKind::Generator(self.lazy(data)) + EntryKind::Generator(data) } ty::Closure(..) => EntryKind::Closure, diff --git a/src/librustc_metadata/rmeta/mod.rs b/src/librustc_metadata/rmeta/mod.rs index a3e3165f31e..01a3f6c560f 100644 --- a/src/librustc_metadata/rmeta/mod.rs +++ b/src/librustc_metadata/rmeta/mod.rs @@ -302,7 +302,7 @@ enum EntryKind { Mod(Lazy), MacroDef(Lazy), Closure, - Generator(Lazy), + Generator(hir::GeneratorKind), Trait(Lazy), Impl(Lazy), Method(Lazy),