diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-01-16 21:19:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-16 21:19:48 -0500 |
| commit | e646becd04c37fbaaa654f6419dd9f5e85d9f210 (patch) | |
| tree | 01e5a1535ebec3ab5d2476396efb9469d75f29ce /src/type.zig | |
| parent | 37424fd11a79801e18a121ee7e86730012b0c55e (diff) | |
| parent | b2c85464bef931c8263b50b40697a584600ee69e (diff) | |
| download | zig-e646becd04c37fbaaa654f6419dd9f5e85d9f210.tar.gz zig-e646becd04c37fbaaa654f6419dd9f5e85d9f210.zip | |
Merge pull request #14336 from Vexu/field-reorder
Sema: automatically optimize order of struct fields
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/type.zig b/src/type.zig index 4c56a7e167..65391aabfc 100644 --- a/src/type.zig +++ b/src/type.zig @@ -5741,10 +5741,14 @@ pub const Type = extern union { target: Target, pub fn next(it: *StructOffsetIterator) ?FieldOffset { - const i = it.field; + var i = it.field; if (it.struct_obj.fields.count() <= i) return null; + if (it.struct_obj.optimized_order) |some| { + i = some[i]; + if (i == Module.Struct.omitted_field) return null; + } const field = it.struct_obj.fields.values()[i]; it.field += 1; |
