authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-03-13 18:22:29+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-03-16 09:26:10+02:00
logaf2b03de83b8ec60c967e53823496904ecc66c0d
tree980622f781ce15a3232c0d72e1f622deb283df5b
parent8a43d67c3bf878fa32ef4876897a32969a4b5d24

Type: implement ptrInfo for optional pointers


1 files changed, 30 insertions(+), 0 deletions(-)

src/type.zig+30
......@@ -486,6 +486,36 @@ pub const Type = extern union {
486486
487487 .pointer => return self.castTag(.pointer).?.*,
488488
489 .optional_single_mut_pointer => return .{ .data = .{
490 .pointee_type = self.castPointer().?.data,
491 .sentinel = null,
492 .@"align" = 0,
493 .@"addrspace" = .generic,
494 .bit_offset = 0,
495 .host_size = 0,
496 .@"allowzero" = false,
497 .mutable = true,
498 .@"volatile" = false,
499 .size = .One,
500 } },
501 .optional_single_const_pointer => return .{ .data = .{
502 .pointee_type = self.castPointer().?.data,
503 .sentinel = null,
504 .@"align" = 0,
505 .@"addrspace" = .generic,
506 .bit_offset = 0,
507 .host_size = 0,
508 .@"allowzero" = false,
509 .mutable = false,
510 .@"volatile" = false,
511 .size = .One,
512 } },
513 .optional => {
514 var buf: Payload.ElemType = undefined;
515 const child_type = self.optionalChild(&buf);
516 return child_type.ptrInfo();
517 },
518
489519 else => unreachable,
490520 }
491521 }