diff --git a/debuginfo/src/object.rs b/debuginfo/src/object.rs index ac194ae4a..7de19d1d1 100644 --- a/debuginfo/src/object.rs +++ b/debuginfo/src/object.rs @@ -346,7 +346,7 @@ impl<'d> ObjectLike for Object<'d> { } fn symbols(&self) -> DynIterator<'_, Symbol<'_>> { - Box::new(self.symbols()) + unsafe { std::mem::transmute(Box::new(self.symbols()) as DynIterator<'_, _>) } } fn has_debug_info(&self) -> bool { diff --git a/debuginfo/src/pdb.rs b/debuginfo/src/pdb.rs index 4316d291b..2b57cd4e9 100644 --- a/debuginfo/src/pdb.rs +++ b/debuginfo/src/pdb.rs @@ -292,7 +292,8 @@ impl<'d> ObjectLike for PdbObject<'d> { } fn symbols(&self) -> DynIterator<'_, Symbol<'_>> { - Box::new(self.symbols()) + // TODO: Avoid this transmute by introducing explicit lifetimes on the trait. + unsafe { std::mem::transmute(Box::new(self.symbols()) as DynIterator<'_, _>) } } fn symbol_map(&self) -> SymbolMap<'_> {