// REJECT probe — argument kind is checked where the parameter's declared // type resolves at file scope: a `type` parameter wants a type argument, a // concretely typed one wants a value, and the kind resolves through a // file-scope alias of `type` itself. fn Box(comptime T type) type { return T } fn Ring(comptime n usize) type { return [n]u8 } const MyT = type fn Tagged(comptime T MyT) type { return T } const A = Box(5) // expect-error: argument 1 to generic 'Box' expects a type, found a value const B = Ring(u8) // expect-error: argument 1 to generic 'Ring' expects a value, found a type const C = Tagged(7) // expect-error: argument 1 to generic 'Tagged' expects a type, found a value