pub struct ReExportCycle {
pub files: Vec<PathBuf>,
pub kind: ReExportCycleKind,
}Expand description
A cycle or self-loop in the re-export edge subgraph.
Detected by Tarjan SCC over (barrel, source) re-export edges in
crates/graph/src/graph/re_exports/. A multi-node cycle is a strongly
connected component of size >= 2; a self-loop is a barrel that re-exports
from itself (often a rename leftover or accidental export * from './').
Both are structural bugs because chain propagation through the loop is a
no-op: any symbol consumers think they are re-exporting through the cycle
silently fails to resolve.
Fields§
§files: Vec<PathBuf>Files participating in the cycle, sorted lexicographically. For a self-loop, exactly one entry.
kind: ReExportCycleKindWhich structural shape this finding describes.
Trait Implementations§
Source§impl Clone for ReExportCycle
impl Clone for ReExportCycle
Source§impl Debug for ReExportCycle
impl Debug for ReExportCycle
Source§impl<'de> Deserialize<'de> for ReExportCycle
impl<'de> Deserialize<'de> for ReExportCycle
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ReExportCycle
impl RefUnwindSafe for ReExportCycle
impl Send for ReExportCycle
impl Sync for ReExportCycle
impl Unpin for ReExportCycle
impl UnsafeUnpin for ReExportCycle
impl UnwindSafe for ReExportCycle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more