diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-05-31 02:32:09 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-06-10 20:47:58 -0700 |
| commit | b2391a7d4425418a29598523dcbdf2bfc9325ecd (patch) | |
| tree | 4c0fb2197e1d5f02fe3cab697aa08d703cc1a4c0 /src/type.zig | |
| parent | 71c4077c359096d0706a251a10eeae6c41f299ca (diff) | |
| download | zig-b2391a7d4425418a29598523dcbdf2bfc9325ecd.tar.gz zig-b2391a7d4425418a29598523dcbdf2bfc9325ecd.zip | |
Sema: remove opv status from arrays with sentinels
Being able to create a pointer to the non-opv sentinel means that these
types have to actually be stored.
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/type.zig b/src/type.zig index 0c4dfb7e7e..bbc2a2ce60 100644 --- a/src/type.zig +++ b/src/type.zig @@ -2479,8 +2479,9 @@ pub const Type = struct { .inferred_error_set_type, => return null, - inline .array_type, .vector_type => |seq_type| { - if (seq_type.len == 0) return (try mod.intern(.{ .aggregate = .{ + inline .array_type, .vector_type => |seq_type, seq_tag| { + const has_sentinel = seq_tag == .array_type and seq_type.sentinel != .none; + if (seq_type.len + @boolToInt(has_sentinel) == 0) return (try mod.intern(.{ .aggregate = .{ .ty = ty.toIntern(), .storage = .{ .elems = &.{} }, } })).toValue(); |
