mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-07 14:24:43 +00:00
feat(std.testing.refAllDeclsRecursive): allow for opaque extern declarations
This commit is contained in:
parent
95f93a0b28
commit
d323c6a47e
1 changed files with 2 additions and 2 deletions
|
|
@ -1197,13 +1197,13 @@ pub fn refAllDecls(comptime T: type) void {
|
||||||
pub fn refAllDeclsRecursive(comptime T: type) void {
|
pub fn refAllDeclsRecursive(comptime T: type) void {
|
||||||
if (!builtin.is_test) return;
|
if (!builtin.is_test) return;
|
||||||
inline for (comptime std.meta.declarations(T)) |decl| {
|
inline for (comptime std.meta.declarations(T)) |decl| {
|
||||||
if (@TypeOf(@field(T, decl.name)) == type) {
|
const decl_ref = &@field(T, decl.name);
|
||||||
|
if (@typeInfo(@TypeOf(decl_ref)).pointer.child == type) {
|
||||||
switch (@typeInfo(@field(T, decl.name))) {
|
switch (@typeInfo(@field(T, decl.name))) {
|
||||||
.@"struct", .@"enum", .@"union", .@"opaque" => refAllDeclsRecursive(@field(T, decl.name)),
|
.@"struct", .@"enum", .@"union", .@"opaque" => refAllDeclsRecursive(@field(T, decl.name)),
|
||||||
else => {},
|
else => {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ = &@field(T, decl.name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue