]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_metadata/decoder.rs
Initial changes to librustc to support const trait fns.
[rust.git] / src / librustc_metadata / decoder.rs
index 77c3eed9e44d21c069b47186dd66c48279c0fe23..d991fb0f67b11350d8139bb08faac6c74b9f9fea 100644 (file)
@@ -21,7 +21,7 @@
 use rustc::middle::exported_symbols::{ExportedSymbol, SymbolExportLevel};
 use rustc::hir::def::{self, Def, CtorKind};
 use rustc::hir::def_id::{CrateNum, DefId, DefIndex,
-                         CRATE_DEF_INDEX, LOCAL_CRATE};
+                         CRATE_DEF_INDEX, LOCAL_CRATE, LocalDefId};
 use rustc::ich::Fingerprint;
 use rustc::middle::lang_items;
 use rustc::mir::{self, interpret};
@@ -273,6 +273,13 @@ fn specialized_decode(&mut self) -> Result<DefIndex, Self::Error> {
     }
 }
 
+impl<'a, 'tcx> SpecializedDecoder<LocalDefId> for DecodeContext<'a, 'tcx> {
+    #[inline]
+    fn specialized_decode(&mut self) -> Result<LocalDefId, Self::Error> {
+        self.specialized_decode().map(|i| LocalDefId::from_def_id(i))
+    }
+}
+
 impl<'a, 'tcx> SpecializedDecoder<interpret::AllocId> for DecodeContext<'a, 'tcx> {
     fn specialized_decode(&mut self) -> Result<interpret::AllocId, Self::Error> {
         const MAX1: usize = usize::max_value() - 1;