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:
@@ -34,7 +34,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
// function. `TypeName(val)` is not a cast (casts are `cast(T, val)`), so
|
||||
// there is no ambiguity. Rewrite the callee to an identifier so the
|
||||
// normal call machinery resolves it, symmetric to the bare-value
|
||||
// reference that already resolves via scope/globals (issue 0089).
|
||||
// reference that already resolves via scope/globals.
|
||||
//
|
||||
// Scoped to RAW provenance: only a backtick (`is_raw`) or `#import c`
|
||||
// foreign fn declaration may legally carry a reserved-name spelling
|
||||
@@ -55,7 +55,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
c = rewritten;
|
||||
};
|
||||
}
|
||||
// fix-0102 F2 / R5 §C: select the bare / value-UFCS same-name call author
|
||||
// R5 §C: select the bare / value-UFCS same-name call author
|
||||
// ONCE, via `CallResolver.selectedFreeAuthor` — the SINGLE producer of
|
||||
// this verdict, the exact same one `CallResolver.plan` consumes for typing.
|
||||
// The call-path consumers (default expansion, param typing, dispatch) all
|
||||
@@ -128,7 +128,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
// If argument is a bare function name, create a proper closure from it
|
||||
if (arg.data == .identifier) {
|
||||
const fn_name = arg.data.identifier.name;
|
||||
// fix-0102d site 2: `closure(fn)` over a genuine flat same-name
|
||||
// `closure(fn)` over a genuine flat same-name
|
||||
// collision must capture the RESOLVED author's FuncId, not the
|
||||
// first-wins winner's. Plain bare name only; `.ambiguous`
|
||||
// → loud diagnostic; `.none` → existing first-wins path.
|
||||
@@ -188,7 +188,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
}
|
||||
break :blk scoped;
|
||||
};
|
||||
// fix-0102 F2 / R5 §C: the early pack/comptime/generic dispatch reads
|
||||
// R5 §C: the early pack/comptime/generic dispatch reads
|
||||
// the SAME author the call resolver SELECTED — not the first-wins
|
||||
// winner — whenever a genuine flat same-name collision rerouted the
|
||||
// call (`sel_author != null`). The selector only ever returns a plain
|
||||
@@ -455,14 +455,14 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
}
|
||||
}
|
||||
}
|
||||
// fix-0102c / R5 §C: a genuine flat same-name collision — bind the
|
||||
// R5 §C: a genuine flat same-name collision — bind the
|
||||
// author the call resolver selected (own-author-wins, or the single
|
||||
// flat-reachable author), or reject a bare call to a name ≥2
|
||||
// imported modules author. `selectedFreeAuthor` (computed once
|
||||
// above, and the exact verdict `plan` consumes for typing) is the
|
||||
// single producer; lowering CONSUMES it rather than re-resolving
|
||||
// the name, so typing and dispatch read the SAME author and can't
|
||||
// disagree (fix-0102 F2). Reached only for an identifier callee, so
|
||||
// disagree. Reached only for an identifier callee, so
|
||||
// `sel_author` / `author_ambiguous` here are the bare verdict.
|
||||
if (author_ambiguous) {
|
||||
if (self.diagnostics) |d|
|
||||
@@ -476,7 +476,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
const params = func.params;
|
||||
// The RESOLVED author's decl drives variadic packing — not a
|
||||
// first-wins re-lookup by name, whose variadic shape may
|
||||
// differ (fix-0102c F1).
|
||||
// differ.
|
||||
self.packVariadicCallArgs(sf.decl, c, &args);
|
||||
const final_args = self.prependCtxIfNeeded(func, args.items);
|
||||
self.coerceCallArgs(final_args, params);
|
||||
@@ -956,13 +956,13 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
// Try to resolve as bare function name (free-function UFCS:
|
||||
// `recv.fn(args)` → `fn(recv, args)`). Lazily lower the body —
|
||||
// a function reached ONLY via UFCS would otherwise be declared
|
||||
// but never emitted (issue 0063: undefined symbol at link).
|
||||
// but never emitted (undefined symbol at link).
|
||||
//
|
||||
// fix-0102d site 3 / R5 §C: a free-function UFCS target with a
|
||||
// R5 §C: a free-function UFCS target with a
|
||||
// genuine flat same-name collision dispatches to the author the
|
||||
// call PLAN selected for the receiver's source — the SAME author
|
||||
// plan typed the call's result as, so dispatch and typing can't
|
||||
// disagree (fix-0102 F2; without this, a string-typed winner over
|
||||
// disagree (without this, a string-typed winner over
|
||||
// an s64 shadow boxes a raw int as a string pointer → segfault).
|
||||
// The plan is the single producer; lowering consumes its verdict
|
||||
// (`sel_author` / `cplan.ambiguous_collision`, computed once above)
|
||||
@@ -991,7 +991,7 @@ pub fn lowerCall(self: *Lowering, c_in: *const ast.Call) Ref {
|
||||
// Same implicit address-of as a struct-defined method: if the
|
||||
// free function's first param is `*T` and the receiver is a
|
||||
// value `T`, pass its address instead of a by-value copy
|
||||
// (issue 0063).
|
||||
|
||||
self.fixupMethodReceiver(&method_args, func, effective_obj_node, obj_ty);
|
||||
const final_args = self.prependCtxIfNeeded(func, method_args.items);
|
||||
self.coerceCallArgs(final_args, params);
|
||||
@@ -1517,7 +1517,7 @@ pub fn tryLowerReflectionCall(self: *Lowering, name: []const u8, c: *const ast.C
|
||||
// Strict `$T: Type` guard for the type-introspection builtins. A
|
||||
// value argument (`6`, `true`, `5.2`, a struct) is rejected with a
|
||||
// diagnostic instead of being silently reinterpreted as a TypeId
|
||||
// index / sized via its `typeof` (issue 0090). One shared
|
||||
// index / sized via its `typeof`. One shared
|
||||
// classification covers all 7; it runs before dispatch.
|
||||
if (self.reflectionTypeArgGuard(name, c)) |sentinel| return sentinel;
|
||||
|
||||
@@ -1776,7 +1776,7 @@ pub fn reflectionArgIsType(self: *Lowering, arg: *const Node) bool {
|
||||
/// `field_count`, `type_name`, `type_eq`, `type_is_unsigned`,
|
||||
/// `is_flags`): every argument must denote a type. A value argument is
|
||||
/// rejected with a diagnostic rather than silently reinterpreted as a
|
||||
/// TypeId index or sized via its `typeof` (issue 0090).
|
||||
/// TypeId index or sized via its `typeof`.
|
||||
///
|
||||
/// Returns null when `name` is not a guarded builtin OR every argument
|
||||
/// is a type (→ fall through to normal dispatch). Returns a harmless
|
||||
@@ -1866,7 +1866,7 @@ pub fn expandCallDefaults(self: *Lowering, c: *const ast.Call, sel_author: ?*con
|
||||
}
|
||||
break :blk2 scoped;
|
||||
};
|
||||
// fix-0102d site 1 / R5 §C: for a genuine flat same-name
|
||||
// R5 §C: for a genuine flat same-name
|
||||
// collision the omitted trailing args are filled from the
|
||||
// author the call resolver selected — its `*FnDecl` defaults —
|
||||
// not the first-wins winner's. lowering consumes the ONE author
|
||||
@@ -2097,7 +2097,7 @@ pub fn resolveCallParamTypes(self: *Lowering, c: *const ast.Call, sel_author: ?*
|
||||
break :blk scoped;
|
||||
};
|
||||
|
||||
// fix-0102c F2 / R5 §C: a genuine flat same-name collision must type this
|
||||
// R5 §C: a genuine flat same-name collision must type this
|
||||
// call's args against the author the call resolver selected, not the
|
||||
// first-wins winner's params. lowering consumes the ONE author verdict
|
||||
// (`selectedFreeAuthor`, computed once in `lowerCall`) rather than
|
||||
|
||||
Reference in New Issue
Block a user