diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-02-24 19:47:42 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-02-24 19:48:34 +0200 |
| commit | b034c45b2bcb3a28ad260037dfa34c40b6c9313b (patch) | |
| tree | ef3140c8f3d471791f9adeb7a0befc13808dce57 /src/value.zig | |
| parent | 6249a24e81b9b3df3d5ca99b57f22470b9ac486c (diff) | |
| download | zig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.tar.gz zig-b034c45b2bcb3a28ad260037dfa34c40b6c9313b.zip | |
stage2: implement fieldParentPtr
Diffstat (limited to 'src/value.zig')
| -rw-r--r-- | src/value.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/value.zig b/src/value.zig index 538c20587b..0b3ad15469 100644 --- a/src/value.zig +++ b/src/value.zig @@ -1852,7 +1852,13 @@ pub const Value = extern union { return eql(a_payload.ptr, b_payload.ptr, ptr_ty); }, .elem_ptr => @panic("TODO: Implement more pointer eql cases"), - .field_ptr => @panic("TODO: Implement more pointer eql cases"), + .field_ptr => { + const a_payload = a.castTag(.field_ptr).?.data; + const b_payload = b.castTag(.field_ptr).?.data; + if (a_payload.field_index != b_payload.field_index) return false; + + return eql(a_payload.container_ptr, b_payload.container_ptr, ty); + }, .eu_payload_ptr => @panic("TODO: Implement more pointer eql cases"), .opt_payload_ptr => @panic("TODO: Implement more pointer eql cases"), .array => { |
