pub enum TransferKind {
IndirectBranch,
IndirectCall,
}Expand description
The kind of control transfer an obligation stands for.
Part of the key, not just a payload: the same address cannot host both, but
keeping the kind in the identity means a record carries what it is without a
lookup, and it matches DiscoveryKind’s
precedent of typing the work item.
Variants§
IndirectBranch
An indirect branch — Mnemonic::BranchInd. Resolvable today by
handle_jump_tables.
IndirectCall
An indirect call — Mnemonic::CallInd. No resolver exists yet; these
obligations stay pending until candidate-target analysis lands.
Implementations§
Source§impl TransferKind
impl TransferKind
Sourcepub fn has_resolver(self) -> bool
pub fn has_resolver(self) -> bool
Whether any pass can currently attempt to resolve this kind of transfer.
IndirectCall obligations are recorded for completeness and reporting
but are inert: nothing attempts them, so a permanently-pending indirect
call is expected, not a bug. Reporting uses this to avoid presenting
inert obligations as reconstruction failures.
Trait Implementations§
Source§impl Clone for TransferKind
impl Clone for TransferKind
Source§fn clone(&self) -> TransferKind
fn clone(&self) -> TransferKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more