Repository navigation
docs(tasks): split 0038 lexical scoping into 0165-0167, file 0168/0169, add the approved plan - #491
Merged
Merged
Conversation
…ved plan The approved lexical-scoping plan and its advisor review go to docs/design/. 0038 becomes the umbrella: 0165 (bodies run where defined), 0166 (defaults per call), 0167 (modules own their context). Its divergence lines now name the phase that removes them. 0168 (idtracking frame-entry binding) and 0169 (caller() without a call block) are pinned with new corpus cases. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Krh9zQy8ifSut6nW1jwRZf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Ruslan · project thread
Before: 0038 (lexical scoping for macros) was one open task with no plan. Its six divergence lines named 0038, and the task's touches held render_context.h and the macro code in every
task_batches.pywave.After: the plan Ruslan approved is in
docs/design/0038-lexical-scoping-plan.md, with its advisor review next to it. 0038 is now an umbrella task over three phase tasks, each owning the divergence lines it removes:loop()andsuper()run where they were defined. It owns 5 lines and can run in wave 2.macro_default_reassigned_global.Two out-of-scope findings are filed and pinned with new corpus cases:
statements.idtracking_inner_read_before_outer_set: Python renders'', we render33.caller()without a call block should raise "No caller defined". The new cases areerrors.caller_without_call_blockanderrors.call_body_reads_own_missing_caller.How: this PR adds task files and corpus rows only, with no
src/changes.expected/*.jsonwas regenerated with jinja2 3.1.6. I left out an unrelatedoperators.jsonmessage change that comes from the local Python version.ctest -R paritypasses locally (2941 tests).docs/tasks/README.mdis not edited; the steward runstask_index.py.Roles: architect (plan), advisor (review). Verifier not run because there is no code change. Pushes red in CI: none so far.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Krh9zQy8ifSut6nW1jwRZf
Generated by Claude Code