// Phase 2 verification: two impls for the same parameterised-protocol
// (Source, Target) pair declared in the same file MUST produce a clean
// "duplicate impl" diagnostic at registration time.

#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; }
