// neg_mcase — `match (r) { case let shadowmod: i64 => ... }` where // the per-arm binder shadows the imported module. N_MCASE wires // check_module_shadow before scope_define on cs->str, so the rule // fires at the case line. package paramshadowmod; import shadowmod; fn parse(n: i64) (i64 | i32) = { if (n < 0i64) { return 1i32; }; return n; }; export fn main() i32 = { let r: (i64 | i32) = parse(42i64); let out: i64 = 0i64; match (r) { case let shadowmod: i64 => out = shadowmod; case let e: i32 => return e; }; return out: i32; };