aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2023-01-09 17:44:41 +0200
committerVeikka Tuominen <git@vexu.eu>2023-01-11 19:08:49 +0200
commitad259736e2200e93400e4f09916551ae65ca56ad (patch)
treec76ad44be3c8e4c405179138197935f89c71935d /src
parent83673a8b5f508376c81deaa4b01815474873eb69 (diff)
downloadzig-ad259736e2200e93400e4f09916551ae65ca56ad.tar.gz
zig-ad259736e2200e93400e4f09916551ae65ca56ad.zip
Value: implement more pointer eql cases
Closes #14234
Diffstat (limited to 'src')
-rw-r--r--src/value.zig12
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;