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:
@@ -304,7 +304,7 @@ pub const ResolvedModule = struct {
|
||||
// A cross-module name collision: drop from the global list
|
||||
// (first-wins) UNLESS this is a per-source decl (a type, alias,
|
||||
// or non-function const), which must reach registration as a
|
||||
// distinct author of its own module (issues 0104/0105).
|
||||
// distinct author of its own module.
|
||||
append_to_global = isPerSourceDecl(decl);
|
||||
} else {
|
||||
try seen_list.put(name, {});
|
||||
@@ -343,8 +343,8 @@ pub const ResolvedModule = struct {
|
||||
// per-source decl (a named type, or any non-function const:
|
||||
// type alias + value const), each of which must reach
|
||||
// registration as a distinct same-name author of its own
|
||||
// module (issues 0104/0105 types, step E5 value consts). Only
|
||||
// FUNCTIONS keep first-wins (issue 0102 — the shadowed author
|
||||
// module (types and aliases; step E5 value consts). Only
|
||||
// FUNCTIONS keep first-wins (the shadowed author
|
||||
// stays reachable via its qualified name / SelectedFunc).
|
||||
// Node identity (above) still de-dups a diamond import of the
|
||||
// SAME decl.
|
||||
@@ -362,9 +362,9 @@ pub const ResolvedModule = struct {
|
||||
/// registers against its OWN module rather than collapsing to a single
|
||||
/// first-wins winner. NAMED types and every non-function `const_decl` (type
|
||||
/// aliases + inline type decls + VALUE consts, source-keyed via the alias /
|
||||
/// const caches) are per-source — that is what closes issues 0104/0105 for
|
||||
/// const caches) are per-source — that is what prevents same-name collapse for
|
||||
/// types/aliases and supports same-name value consts (step E5). Everything
|
||||
/// else keeps the first-wins name-merge: FUNCTIONS (issue 0102 — the shadowed
|
||||
/// else keeps the first-wins name-merge: FUNCTIONS (the shadowed
|
||||
/// author stays reachable via its qualified name / SelectedFunc), and crucially
|
||||
/// `var_decl`s, including a `#foreign` extern global declared in two files
|
||||
/// (e.g. `__stdinp : *void #foreign;`) that MUST resolve to the ONE libSystem
|
||||
@@ -406,7 +406,7 @@ pub const ResolvedModule = struct {
|
||||
.name = name,
|
||||
.decls = other.decls,
|
||||
// The module's OWN authored decls — what `ns.fn` should bind
|
||||
// to (issue 0100). `decls` stays the full transitive list so
|
||||
// to. `decls` stays the full transitive list so
|
||||
// the lowering pass can still resolve transitive callees.
|
||||
.own_decls = other.own_decls,
|
||||
// The aliased module's resolved path (== the `resolved_path`
|
||||
@@ -414,7 +414,7 @@ pub const ResolvedModule = struct {
|
||||
.target_module_path = other.path,
|
||||
// Carry the backtick raw escape from the `name :: #import …`
|
||||
// form so a reserved-name namespace is exempt from the decl
|
||||
// check, symmetric to every other decl site (issue 0089).
|
||||
// check, symmetric to every other decl site.
|
||||
.is_raw = is_raw,
|
||||
} },
|
||||
};
|
||||
@@ -796,7 +796,7 @@ fn reportDuplicateName(diagnostics: ?*errors.DiagnosticList, added: bool, name:
|
||||
/// Stamp the DEFINING module path onto a function body node, so a later
|
||||
/// pack/comptime monomorphization can pin `current_source_file` to the body's
|
||||
/// own module and resolve its bare names in that module's visibility context
|
||||
/// (issue 0106) — mirroring how a normally-declared function carries
|
||||
/// — mirroring how a normally-declared function carries
|
||||
/// `Function.source_file`. Only top-level decl Nodes are otherwise stamped, so
|
||||
/// the body Node would carry no source; a null body source after this means a
|
||||
/// synthesized/sourceless decl (the monomorphizer then keeps its caller's
|
||||
@@ -820,7 +820,7 @@ fn stampFnBodySource(decl: *Node, file_path: []const u8) void {
|
||||
.fn_decl => |fd| fd.body.source_file = file_path,
|
||||
// `List :: struct { … append :: (…) { … } }` — the methods of a
|
||||
// (possibly generic) struct are monomorphized in their template's
|
||||
// OWN module (issue 0106 + the E4 instantiation source-pin), so their
|
||||
// OWN module (the E4 instantiation source-pin), so their
|
||||
// bodies need the defining path stamped just like a top-level fn.
|
||||
.struct_decl => |sd| stampStructMethodSources(sd, file_path),
|
||||
.protocol_decl => cd.value.data.protocol_decl.source_file = file_path,
|
||||
@@ -892,7 +892,7 @@ pub fn resolveImports(
|
||||
}
|
||||
// FLAT-only edge set: identical to `import_graph` but records ONLY bare
|
||||
// `#import "…"` edges (`imp.name == null`), never a namespaced
|
||||
// `ns :: #import "…"`. fix-0102c's bare-name disambiguation walks this to
|
||||
// `ns :: #import "…"`. The bare-name disambiguation walks this to
|
||||
// decide which same-name authors a flat importer can actually reach.
|
||||
if (flat_import_graph) |g| {
|
||||
if (!g.contains(file_path)) {
|
||||
@@ -983,7 +983,7 @@ pub fn resolveImports(
|
||||
.name = ns_name,
|
||||
.decls = ns_slice,
|
||||
// A C-import namespace authors exactly the wrapped fn
|
||||
// decls — they ARE its own decls (issue 0100).
|
||||
// decls — they ARE its own decls.
|
||||
.own_decls = ns_slice,
|
||||
// No separate sx module: the synthesized members are
|
||||
// authored in THIS file. Record the importer's path.
|
||||
|
||||
Reference in New Issue
Block a user