feat(opy): complete compiler directives and replacements - #341
Conversation
Teakowa
left a comment
There was a problem hiding this comment.
Blocking findings are inline. Also, #332 explicitly requires independent ablation of each substantive implementation change; the PR's Verification section currently lists only normal test/Clippy/differential runs. After fixing the blockers, record the requested ablation result so that acceptance criterion can be verified in the same follow-up review.
Implement source-visible debug and warning directives, align empty print lowering with the pinned oracle, and record the review regressions with focused coverage. Fixes #332
|
Review fixes are pushed in commit 2dba4a7. The pinned OverPy 9.7.10 differential now reports 65 match, 10 known-gap, 0 regression. Independent ablations recorded in the PR body show each substantive fix is necessary. Ready for re-review; hosted checks and reviewer approval remain separate. |
Teakowa
left a comment
There was a problem hiding this comment.
Follow-up review: the replacement regression is fixed, the compatibility gate is green, #!suppressWarnings is implemented, and the requested ablation results are now recorded. One blocker remains from the original debugElementCount finding.
Match pinned source-visible debug output by annotating conditions and sorting the rule summary. Add a pinned regression fixture and make the compatibility parser ignore upstream comments. Fixes #332
|
Follow-up fixes are pushed in commit 0878f9a. debugElementCount now annotates conditions and sorts the summary by count; the pinned regression fixture covers two differently-sized rules. The compatibility-only parser now ignores upstream comments so the fixture runs through semantic-WIR comparison. Full differential is 66 match, 10 known-gap, 0 regression across 76 fixtures. Ready for re-review. |
Teakowa
left a comment
There was a problem hiding this comment.
Follow-up review: the implementation now covers condition/action comments and count-sorted summaries, and CI is green. One verification blocker remains: the new pinned fixture does not currently make the source-visible debug output part of the compiler gate.
Compare the debugElementCount source-visible projection against the pinned oracle in the compiler differential gate and align the emitted element counts. Fixes #332
|
Review fix pushed in commit 6bb149a. The pinned debugElementCount source-visible projection is now wired into the semantic-WIR fixture comparison, with semantic WIR retained as the secondary check. Full differential: 66 match, 10 known-gap, 0 regression across 76 fixtures; the new source-visible stage is 1 match. The numeric-count ablation produced a source-visible regression as expected. Local Rust tests, clippy, Python tests, and the pinned oracle fixture all pass; hosted CI and reviewer reapproval remain separate. |
Summary
Review fixes
print("")now lowers the empty HUD header and color asNull, matching the pinned OverPy 9.7.10 semantic-WIR contract.#!debugElementCountnow emits pinned-compatible counts: total 50, rules 32/18, conditions 3, and actions 14.synthetic/debug-element-countfixture remains a semantic-WIR comparison and now also declares the CI-enforceddebug-element-countsource-visible projection from pinnedworkshopExactoutput; semantic WIR remains the secondary check.#!suppressWarningsfilters matching preprocessing warning codes from tooling diagnostics.Verification
cargo fmt --all -- --checkcargo test --locked -p opy-rs --all-targets --all-features— 414 passed, 1 ignoredcargo clippy --locked -p opy-rs --all-targets --all-features -- -D warningscargo clippy --locked -p opy-cli --features compatibility --all-targets -- -D warningspython3 -m unittest discover -s tools/overpy/tests— 28 passedsynthetic/debug-element-countoracle snapshot: passIndependent ablation
synthetic/directive-replacementssemantic-WIR: 64 match, 10 known-gap, 1 regression.backend-directive-unsupported.suppressWarningstest with a visible warning.malformed: expected a top-level section.synthetic/debug-element-count: source-visibleregression (65 match, 1 regression).Fixes #332