refactor(B7.2): move pack/variadic lowering to lower/pack.zig
Verbatim relocation of the 19-method pack cluster (pack element/value projection, spread refs, pack indexing + diagnostics, pack-to-slice, variadic arg lowering/packing, pack-slice materialisation, pack-fn calls + monomorphisation, pack projection resolution, isPackFn/ isPackParam predicates) into src/ir/lower/pack.zig. 19 aliases on Lowering keep all call sites unchanged. ProjectionPosition and PackProjection move from lower/protocol.zig to lower/pack.zig (their domain home, next to resolvePackProjection); the Lowering type aliases are repointed, so external references (lower.test.zig) are unchanged. Method pub-flip: findReturnValueType. Gate: zig build OK; zig build test 426/426; run_examples 541/0; zero expected/ snapshot churn.
This commit is contained in:
1108
src/ir/lower.zig
1108
src/ir/lower.zig
File diff suppressed because it is too large
Load Diff
1136
src/ir/lower/pack.zig
Normal file
1136
src/ir/lower/pack.zig
Normal file
File diff suppressed because it is too large
Load Diff
@@ -43,7 +43,6 @@ const Function = inst_mod.Function;
|
||||
const Module = mod_mod.Module;
|
||||
const Builder = mod_mod.Builder;
|
||||
|
||||
|
||||
const lower = @import("../lower.zig");
|
||||
const Lowering = lower.Lowering;
|
||||
const Scope = lower.Scope;
|
||||
@@ -204,13 +203,6 @@ pub fn instantiateParamProtocol(self: *Lowering, pd: *const ast.ProtocolDecl, ar
|
||||
// consults type-args, value position consults methods, with NO
|
||||
// cross-namespace fallback.
|
||||
|
||||
pub const ProjectionPosition = enum { type_position, value_position };
|
||||
|
||||
pub const PackProjection = union(enum) {
|
||||
type_arg: u32, // index into the protocol's `type_params`
|
||||
method: u32, // index into the protocol's `methods`
|
||||
not_found, // `name` absent from the position-selected namespace
|
||||
};
|
||||
|
||||
/// Find `name` in `protocol_name`'s type-arg namespace (`protocol($T,...)`).
|
||||
/// Returns the `type_params` index, or null (also for unknown protocols).
|
||||
|
||||
Reference in New Issue
Block a user