diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-09-23 16:55:46 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-09-24 14:43:03 +0300 |
| commit | 3525b8778edd235d8d0ad2b55eee83eacd33d5cf (patch) | |
| tree | 5c0ca92c05bae4d64f062a30ba98d335e578234d /test | |
| parent | ede379848525dce72c6e903b1895ac3e4acaf3ef (diff) | |
| download | zig-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.zig | 13 |
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 }); +} |
