diff options
| author | Veikka Tuominen <git@vexu.eu> | 2023-01-09 17:44:41 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2023-01-11 19:08:49 +0200 |
| commit | ad259736e2200e93400e4f09916551ae65ca56ad (patch) | |
| tree | c76ad44be3c8e4c405179138197935f89c71935d /src | |
| parent | 83673a8b5f508376c81deaa4b01815474873eb69 (diff) | |
| download | zig-ad259736e2200e93400e4f09916551ae65ca56ad.tar.gz zig-ad259736e2200e93400e4f09916551ae65ca56ad.zip | |
Value: implement more pointer eql cases
Closes #14234
Diffstat (limited to 'src')
| -rw-r--r-- | src/value.zig | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/value.zig b/src/value.zig index 45b2bfd341..5d38bcb7a9 100644 --- a/src/value.zig +++ b/src/value.zig @@ -2193,8 +2193,16 @@ pub const Value = extern union { const payload_ty = ty.errorUnionPayload(); return eqlAdvanced(a_payload, payload_ty, b_payload, payload_ty, mod, opt_sema); }, - .eu_payload_ptr => @panic("TODO: Implement more pointer eql cases"), - .opt_payload_ptr => @panic("TODO: Implement more pointer eql cases"), + .eu_payload_ptr => { + const a_payload = a.castTag(.eu_payload_ptr).?.data; + const b_payload = b.castTag(.eu_payload_ptr).?.data; + return eqlAdvanced(a_payload.container_ptr, ty, b_payload.container_ptr, ty, mod, opt_sema); + }, + .opt_payload_ptr => { + const a_payload = a.castTag(.opt_payload_ptr).?.data; + const b_payload = b.castTag(.opt_payload_ptr).?.data; + return eqlAdvanced(a_payload.container_ptr, ty, b_payload.container_ptr, ty, mod, opt_sema); + }, .function => { const a_payload = a.castTag(.function).?.data; const b_payload = b.castTag(.function).?.data; |
