MCPcopy Create free account
hub / github.com/CodeSentryAI/lockbud / diagnose_doublelock

Function diagnose_doublelock

src/detector/lock/mod.rs:717–725  ·  view source on GitHub ↗

Generate doublelock diagnosis.

(
    a: &LockGuardId,
    b: &LockGuardId,
    lockguards: &LockGuardMap<'tcx>,
    callgraph: &CallGraph<'tcx>,
    tcx: TyCtxt<'tcx>,
)

Source from the content-addressed store, hash-verified

715 if lockguards[a].span == lockguards[b].span {
716 return (DeadlockPossibility::Unlikely, NotDeadlockReason::SameSpan);
717 }
718 let possibility = match a_ty.deadlock_with(b_ty) {
719 DeadlockPossibility::Probably => match alias_analysis.alias((*a).into(), (*b).into()) {
720 ApproximateAliasKind::Probably => DeadlockPossibility::Probably,
721 ApproximateAliasKind::Possibly => DeadlockPossibility::Possibly,
722 ApproximateAliasKind::Unlikely => DeadlockPossibility::Unlikely,
723 ApproximateAliasKind::Unknown => DeadlockPossibility::Unknown,
724 },
725 DeadlockPossibility::Possibly => match alias_analysis.alias((*a).into(), (*b).into()) {
726 ApproximateAliasKind::Probably => DeadlockPossibility::Possibly,
727 ApproximateAliasKind::Possibly => DeadlockPossibility::Possibly,
728 ApproximateAliasKind::Unlikely => DeadlockPossibility::Unlikely,

Callers 1

detect_deadlockMethod · 0.85

Calls 1

diagnose_one_relationFunction · 0.85

Tested by

no test coverage detected