Fix DuplicateBinding reparse soundness#696
Conversation
📝 WalkthroughWalkthrough
ChangesDuplicateBinding: fresh names and block indentation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
lambda-editor | 9398bd1 | Commit Preview URL Branch Preview URL |
Jun 17 2026, 10:43 AM |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4086540c02
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Benchmark Comparison ReportComparing PR branch against Main Module BenchmarksBase branch: PR branch: event-graph-walker BenchmarksBase branch: PR branch: Benchmarks run with |
4086540 to
9398bd1
Compare
Summary
x1,x2, …) instead of_copy_copy); needs a proper fresh-name mechanism #649/Block-local binding span ops (move/delete/duplicate) produce malformed indentation #650Fixes #649.
Addresses the DuplicateBinding portion of #650; move/delete indentation remains tracked by #650.
Reuse check
@scope.enclosing_envto avoid names visible at the duplicated binding.binding_rewrite_source,renamed_text) to preserve original source syntax.@scope.declaration_for_name_at/@scope.scope_for_node; not used directly for fresh-name generation because duplicate needs a scope-wide collision set, not a single name lookup.Validation
Targeted tests passed:
Total tests: 226, passed: 226, failed: 0.Note:
git submodule update --init --recursivecould not clone nestedrabbita/templates/rabbita-templateover SSH in this environment, but the submodules required for the targeted MoonBit validation initialized successfully.Summary by CodeRabbit
Bug Fixes
Improvements