zig/test/behavior/bugs/12794.zig
2022-09-15 00:48:47 +03:00

39 lines
1005 B
Zig

const std = @import("std");
fn NamespacedComponents(comptime modules: anytype) type {
return @Type(.{
.Struct = .{
.layout = .Auto,
.is_tuple = false,
.fields = &.{.{
.name = "components",
.field_type = @TypeOf(modules.components),
.default_value = null,
.is_comptime = false,
.alignment = @alignOf(@TypeOf(modules.components)),
}},
.decls = &[_]std.builtin.Type.Declaration{},
},
});
}
fn namespacedComponents(comptime modules: anytype) NamespacedComponents(modules) {
var x: NamespacedComponents(modules) = undefined;
x.components = modules.components;
return x;
}
pub fn World(comptime modules: anytype) type {
const all_components = namespacedComponents(modules);
_ = all_components;
return struct {};
}
test {
_ = World(.{
.components = .{
.location = struct {},
},
});
}