fix(stdlib): rename total var to tot (#135 slice 4)#168
Merged
Conversation
#135 slice 4 — the triage hypothesised a block/statement LR ambiguity for testing.affine:302 / math.affine:354. Precise isolation disproved that: every minimal block/stmt shape parses. The real cause is keyword-as-identifier (slice-6 class): `total` is the `TOTAL` reserved keyword (totality marker, `total fn`), so `let total = …` fails to parse. `let total = 0.0; …` fails; `let tot = 0.0; …` parses. Rename the `total` *variable* -> `tot` in math.affine `mean`/ `sum_float` (also `let mut`, they reassign in a loop) and testing.affine `bench`. The `total_time` record field is a different identifier (`total` only when bare) and is left unchanged; string-literal "total" text untouched. Pure stdlib rename — zero grammar/compiler risk. Effect: math.affine PARSE 354 -> RESOLVE; testing.affine PARSE 302 -> TYPECHECK (both clear the parse wall, advance to distinct deeper defects). traits.affine:124 is unrelated (`while let` pattern binding) — a genuine separate construct, still tracked. Suite unaffected (stdlib-only). Advances #135. Refs #128, #135. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 44 issues detected
View findings[
{
"reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
"type": "banned",
"file": "AI.a2ml",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Superseded by 0-AI-MANIFEST.a2ml",
"type": "banned",
"file": "AI.djot",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Issue in quality.yml",
"type": "missing_workflow",
"file": "quality.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in security-policy.yml",
"type": "missing_workflow",
"file": "security-policy.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/lib/compile.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/lib/runner.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
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.
#135 slice 4. The triage hypothesised a block/statement LR ambiguity for testing.affine:302 / math.affine:354. Precise isolation disproved that — every minimal block/stmt shape parses. Real cause: keyword-as-identifier (slice-6 class) — total is the TOTAL reserved keyword (totality marker). "let total = 0.0;" fails to parse; "let tot = 0.0;" parses.
Renamed the total variable to tot in math.affine (mean/sum_float; also let mut — they reassign in a loop) and testing.affine (bench). The total_time record field is a distinct identifier (left unchanged); string-literal text untouched. Pure stdlib rename — zero grammar/compiler risk.
Verification: math.affine PARSE 354 to RESOLVE (trunc undefined — distinct); testing.affine PARSE 302 to TYPECHECK (distinct deeper defect). Both clear the parse wall. traits.affine:124 is unrelated (while-let pattern binding — genuine separate construct, still tracked). Full suite green (233 tests), stdlib-only, no regression.
Advances #135 (does not close). Refs #128, #135.
🤖 Generated with Claude Code