]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_metadata/src/rmeta/decoder.rs
Handle cross-crate module `ExpnId`s consistently
[rust.git] / compiler / rustc_metadata / src / rmeta / decoder.rs
index ca9daa49aa2d2115d4e522d23ef38996af7f7a80..1e2b4aaef805f41f0939a542d33014a99d2ae533 100644 (file)
@@ -1219,10 +1219,11 @@ fn is_item_mir_available(&self, id: DefIndex) -> bool {
     }
 
     fn module_expansion(&self, id: DefIndex, sess: &Session) -> ExpnId {
-        if let EntryKind::Mod(m) = self.kind(id) {
-            m.decode((self, sess)).expansion
-        } else {
-            panic!("Expected module, found {:?}", self.local_def_id(id))
+        match self.kind(id) {
+            EntryKind::Mod(_) | EntryKind::Enum(_) | EntryKind::Trait(_) => {
+                self.get_expn_that_defined(id, sess)
+            }
+            _ => panic!("Expected module, found {:?}", self.local_def_id(id)),
         }
     }