Function refAllDeclsRecursive [src]
Given a type, recursively references all the declarations inside, so that the semantic analyzer sees them.
For deep types, you may use @setEvalBranchQuota.
Prototype
pub fn refAllDeclsRecursive(comptime T: type) void
Parameters
T: type
Source
pub fn refAllDeclsRecursive(comptime T: type) void {
if (!builtin.is_test) return;
inline for (comptime std.meta.declarations(T)) |decl| {
if (@TypeOf(@field(T, decl.name)) == type) {
switch (@typeInfo(@field(T, decl.name))) {
.@"struct", .@"enum", .@"union", .@"opaque" => refAllDeclsRecursive(@field(T, decl.name)),
else => {},
}
}
_ = &@field(T, decl.name);
}
}