// Regression (issue 0056): a parameterised-protocol (`Into`) impl living in a // module reached through more than one import path must register exactly once. // // main ─┬─ issue-0056/mid_a ─┐ // └─ issue-0056/mid_b ─┴─ issue-0056/common (holds `impl Into(Wrapped) for s64`) // // Impl blocks are anonymous (no `declName`), so before the fix the diamond // dedup in imports.zig appended the cached node once per path and the second // registration tripped: `duplicate impl 'Into' for source 's64'`. Now the flat // decl list also dedups by node identity, so this builds and prints 7. #import "modules/std.sx"; #import "0709-modules-issue-0056/mid_a.sx"; #import "0709-modules-issue-0056/mid_b.sx"; main :: () -> s32 { w : Wrapped = xx 7; print("{}\n", w.v); 0 }