mirror of
https://github.com/ziglang/zig.git
synced 2024-11-26 23:22:44 +00:00
0fe3fd01dd
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
10 lines
301 B
Zig
10 lines
301 B
Zig
fn isFieldOptional(comptime T: type, field_index: usize) !bool {
|
|
const fields = @typeInfo(T).@"struct".fields;
|
|
return switch (field_index) {
|
|
inline 0...fields.len - 1 => |idx| @typeInfo(fields[idx].type) == .optional,
|
|
else => return error.IndexOutOfBounds,
|
|
};
|
|
}
|
|
|
|
// syntax
|