All six produce their target outputs cleanly today; renamed out of the `issue-*` namespace per CLAUDE.md "Resolving an open issue": | Old | New | |----------------------|-------------------------------------------| | issue-0032 | 181-impl-duplicate-same-file | | issue-0041 | 182-compound-type-in-expression | | issue-0042 | 183-type-alias-size-align | | issue-0044 | 184-objc-defined-class-method-self | | issue-0045 | 185-pack-fn-comptime-return | | issue-0046 | 186-nested-comptime-return | Comment headers tightened to feature-focused (drop the issue-NNNN provenance — that's in git history now). Missing expected `.txt` / `.exit` files captured for 0041 + 0042 (they were untracked because the bugs were fixed silently in adjacent work). `examples/issue-*` after this commit: just `issue-0030.sx` — a feature request (`extern G : T;` cross-file globals) that's never been implemented. Staying in the issue namespace as a parked proposal until the feature lands or gets formally rejected. 220/220 example tests + `zig build test` green.
20 lines
549 B
Plaintext
20 lines
549 B
Plaintext
// Duplicate impl detection (same-file) — two `impl Into(MyA) for s64`
|
|
// declarations in the same file produce a "duplicate impl" diagnostic
|
|
// at registration time, not silently shadow one with the other. Sibling
|
|
// case to `examples/180-impl-duplicate.sx` which covers the
|
|
// cross-module variant.
|
|
|
|
#import "modules/std.sx";
|
|
|
|
MyA :: struct { v: s64 = 0; }
|
|
|
|
impl Into(MyA) for s64 {
|
|
convert :: (self: s64) -> MyA { .{ v = self }; }
|
|
}
|
|
|
|
impl Into(MyA) for s64 {
|
|
convert :: (self: s64) -> MyA { .{ v = self * 2 }; }
|
|
}
|
|
|
|
main :: () -> s32 { 0; }
|