cleanup: drop resolved-issue citations from src comments

Sweep all src/**.zig comments that cite resolved issues (issue NNNN /
fix-NNNN / KB-N): the invariant or mechanism each comment states is
kept; the historical citation is dropped, per the no-conclusion-comments
rule. Pure-history parentheticals are removed outright. References to
the 16 still-open issues (0030, 0041-0056) are untouched, as are test
NAMES carrying regression provenance (matching the sanctioned
"Regression (issue NNNN)" example-header convention).

Also removes the issues/0019-import-non-transitive-c-scope/ fixture dir
— the issue is superseded and its behavior is covered by
examples/0706-modules-import-non-transitive.sx (the .md writeup stays).
issues/0030's repro .sx stays: that issue is an open feature request.

Gate: zig build OK; zig build test 426/426; run_examples 541/0; zero
expected/ snapshot churn.
This commit is contained in:
agra
2026-06-10 16:34:17 +03:00
parent 8b2a6598a9
commit 2b8041a828
40 changed files with 254 additions and 301 deletions

View File

@@ -392,7 +392,7 @@ test "moduleConstInt gates the fold on the declared type, not the initializer no
// An `int_literal` value node folds to an integer ONLY when the declared
// type is numeric. A `string`/`bool`-typed const carrying an integer-looking
// initializer must never be folded into a count (issue 0088): the count path
// initializer must never be folded into a count: the count path
// consults `ModuleConstInfo.ty`, not just the node shape.
var int_val = nLit(4);
try map.put("OK", .{ .value = &int_val, .ty = .s64 });
@@ -405,8 +405,8 @@ test "moduleConstInt gates the fold on the declared type, not the initializer no
// The same gate holds for a const-EXPRESSION value node (`M + 2`), not just
// a bare literal: a `string`-typed const whose initializer is a foldable
// integer expression must still never fold as a count (issue 0088 attempt 2 —
// the const-expression leak). `KEXPR : s64 : M + 2` (numeric type) folds; the
// integer expression must still never fold as a count (the
// const-expression leak). `KEXPR : s64 : M + 2` (numeric type) folds; the
// same expression declared `string` does not.
var m_lit = nLit(2);
var add2 = nLit(2);
@@ -471,7 +471,7 @@ test "evalConstFloatExpr folds comptime float expressions, halts on runtime leav
// an expression like `F + 0.25` (= 2.75) is now recognised as a compile-time
// float and rejected by the narrowing rule instead of silently truncating;
// `F + 1.5` (= 4.0) is integral and folds. This completes the evaluator for
// float-const-leaf expressions (issue 0095, attempt 3).
// float-const-leaf expressions.
var f = nIdent("F");
var quarter = nFloat(0.25);
var three_half = nFloat(1.5);
@@ -486,7 +486,7 @@ test "evalConstFloatExpr folds comptime float expressions, halts on runtime leav
// `type_resolver.floatLimitFor`. It folds as a direct leaf AND inside an
// expression: `f64.max - f64.max` = 0.0 (integral → folds), `f64.true_min +
// 0.5` = 0.5 (non-integral → the narrowing rule rejects it). A non-limit
// field on a float type is not a leaf → null (issue 0095, attempt 5 parity).
// field on a float type is not a leaf → null.
var f64ty = nIdent("f64");
var f32ty = nIdent("f32");
var fmax = nField(&f64ty, "max");
@@ -542,7 +542,7 @@ test "a backtick raw-shadow receiver is a field read, not a numeric-limit fold (
// field access is an ordinary runtime field READ, so it is NOT a compile-time
// leaf in either evaluator (→ null), exactly as the sibling `isFloatValuedExpr`
// already treats it. The whole point: a value-shadow can never be misread as
// the builtin limit (issue 0095 / F0.11-7).
// the builtin limit.
var f64raw = nIdentRaw("f64");
var s8raw = nIdentRaw("s8");
var raw_feps = nField(&f64raw, "epsilon");
@@ -594,7 +594,7 @@ test "foldCountI64 / foldDimU32 fold an integral float count, reject a non-integ
try std.testing.expectEqual(pi.DimU32{ .below_min = -4 }, pi.foldDimU32(&negf, ctx, 0));
}
test "the int folder refuses a FLOAT division (issue 0095 / F0.11-6)" {
test "the int folder refuses a FLOAT division" {
const eval = pi.evalConstIntExpr;
const ctx = DimCtx{}; // K : f64 : 4.0 (integral float const), M = 4 (int const)