From 4990ac0f76fb67422761376b9d1dc35e260a5c2a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 15 Sep 2023 22:08:14 -0700 Subject: [PATCH] assert the number of args passed to a custom function matches what it expects --- src/lib.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib.zig b/src/lib.zig index 09f6fcf5dbac1e90c61f5a3d7b7cea7e74a59993..b5100e8743f9030d2c7375c6d27468ad8dda498e 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -232,6 +232,7 @@ inline fn do(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.V var list = std.ArrayList(u8).init(arena.allocator()); errdefer list.deinit(); var args: std.meta.ArgsTuple(@TypeOf(func)) = undefined; + comptime std.debug.assert(args.len - 2 == v.args.len); args.@"0" = alloc; args.@"1" = list.writer(); inline for (v.args, 0..) |arg, i| { @@ -249,6 +250,7 @@ inline fn do(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.V errdefer list.deinit(); const AT = std.meta.ArgsTuple(@TypeOf(func)); const ATT = std.meta.fieldInfo(AT, .@"3").type; + comptime std.debug.assert(std.meta.fields(ATT).len == v.args.len); var tupargs = @as(ATT, undefined); var args = .{ alloc, -- 2.54.0