aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-09-23 16:55:46 +0300
committerVeikka Tuominen <git@vexu.eu>2022-09-24 14:43:03 +0300
commit3525b8778edd235d8d0ad2b55eee83eacd33d5cf (patch)
tree5c0ca92c05bae4d64f062a30ba98d335e578234d /test
parentede379848525dce72c6e903b1895ac3e4acaf3ef (diff)
downloadzig-3525b8778edd235d8d0ad2b55eee83eacd33d5cf.tar.gz
zig-3525b8778edd235d8d0ad2b55eee83eacd33d5cf.zip
Sema: properly handle generic struct as parameter type
Closes #12907
Diffstat (limited to 'test')
-rw-r--r--test/behavior/generics.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/behavior/generics.zig b/test/behavior/generics.zig
index b3c399cea8..9ec949bbf5 100644
--- a/test/behavior/generics.zig
+++ b/test/behavior/generics.zig
@@ -369,3 +369,16 @@ test "extern function used as generic parameter" {
};
try expect(S.baz(S.foo) != S.baz(S.bar));
}
+
+test "generic struct as parameter type" {
+ const S = struct {
+ fn doTheTest(comptime Int: type, thing: struct { int: Int }) !void {
+ try expect(thing.int == 123);
+ }
+ fn doTheTest2(comptime Int: type, comptime thing: struct { int: Int }) !void {
+ try expect(thing.int == 456);
+ }
+ };
+ try S.doTheTest(u32, .{ .int = 123 });
+ try S.doTheTest2(i32, .{ .int = 456 });
+}