feat(walk): C.8 aliasing + C.9 Outlives — #384 Tier C gap closure (retry)#458
Conversation
…int AliasingMemento for &mut formals (closes #409)
…tagged wrap, CID commitment, kebab-case, discharge gating
…s from Charon LLBC (closes #410) Core implementation: - Region extraction from Charon generics.regions table - Per-formal region tracking via formal_regions + return_region - Outlives emission from Charon regions_outlive where-clauses - Region terms use @region: prefix for name collision avoidance - Region facts injected as conjuncts into lifted pre formula - sort_translate: extract_region_name for Ref types Fixtures: region_id, region_longer (where 'b: 'a), region_two_unrelated, region_static (7 hand-crafted LLBC files mirroring Charon output) Tests: 7 passing (region extraction, Outlives emission, static regions, non-reference formals None, JCS determinism, marriage classification) Also fixed C.8 build_memento_value auto_minted_mementos argument.
After merge of #400 (which added Effect::Drop to the enum), this branch needs the Drop variant fully wired: - Effect::Drop variant definition + docs - to_value() serialization - dyn_id() content-addressing - OpacityError::DropNotDischarged variant - Discharge check in EffectSet::validate() - walk_demo summary formatting Closes #419 merge conflict.
…checks Both PR #419 (aliasing + PossibleAliasing) and main (pin-invariant + PinnedReference, drop effects) added to the Effect enum and composition logic. Semantic resolution: keep both Effect::PossibleAliasing and Effect::PinnedReference in the non_opacity_pure pattern matches, as both are opacity effects that must be discharged before composition. Conflict 1 (discharge check): HEAD added PossibleAliasing discharge, main added PinnedReference discharge — kept both branches. Conflicts 2-4 (pattern matches): HEAD's PossibleAliasing + main's PinnedReference merged into single unified list for outer_non_opacity_pure and inner_non_opacity_pure.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThis PR introduces a ChangesDemo Fixture Update
Drop Effect Implementation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Replaces #419 with a clean branch based on current main.
Closes #409 (C.8 aliasing) and #410 (C.9 Outlives). Closes C.8 and C.9 from parent issue #384.
C.8 — Aliasing
Effect::PossibleAliasing for &T formal pairs with interior mutability. Auto-mints Disjoint AliasingMementos for &mut T pairs.
C.9 — Outlives
Sort::Region terms + Outlives(r1, r2) predicates from Charon LLBC region tables.
Tests
Summary by CodeRabbit
Tests
Features