lang: fn aliases dispatch like their target (fix 0121) — scan-time registration through the shared alias-chain walk
Renamed fn aliases failed for EVERY kind (the filed pack-only scope was a same-name confound: same-name re-exports already resolved through the name-keyed fn_ast_map). scanDecls now follows ident-/ns.X-RHS const alias chains (aliasedFnDecl; 0120's hop walk extracted as followAliasChain) and registers the alias name in fn_ast_map (absent-only), so every dispatch path — early pack/comptime/generic, plain lazy-lower, plan-side typing — sees the target decl unchanged. my_print :: s.print; / my_format :: s.format; now work (the std.sx re-export shape). Regression: examples/0546 (+rich). Gates: zig build test 0, suite 588/588.
This commit is contained in:
@@ -486,9 +486,10 @@ carry does not chain through a second flat hop.
|
||||
**Re-exporting through alias declarations.** Since visibility never chains,
|
||||
a facade re-exports another module's members as its OWN declarations —
|
||||
ordinary aliases, which its direct flat importers then see bare. This works
|
||||
for functions, plain types, and generic struct heads alike (the generic
|
||||
alias binds the same template, so instantiation and methods resolve
|
||||
through it):
|
||||
for functions of every kind (plain, generic, comptime-pack like `print`),
|
||||
plain types, and generic struct heads alike (the generic alias binds the
|
||||
same template, so instantiation and methods resolve through it), renamed
|
||||
or same-name:
|
||||
|
||||
```sx
|
||||
// facade.sx
|
||||
|
||||
Reference in New Issue
Block a user