// Impl visibility — an `impl Into(...) for ...` is registered into // the global impl table when its module is imported anywhere in the // program, but is only **visible** from files that themselves // transitively import the impl's defining module. // // Setup: // - 179-impl-visibility-impl.sx declares an `impl Into(Wrap) for s64`. // - 179-impl-visibility-user.sx tries `xx 7 : Wrap` but only // imports the shared types — NOT the impl module. // - The xx at the user-file site must produce a "no visible xx // conversion" diagnostic, not silently fall through to whatever // was registered in another module. // // The diagnostic is the success criterion — the compile error is the // expected output. Tests/expected/.txt captures it; .exit is 1. #import "modules/std.sx"; #import "./0410-protocols-impl-visibility-impl.sx"; #import "./0410-protocols-impl-visibility-user.sx"; main :: () -> s32 { run_user() }