| ... | @@ -21664,14 +21664,17 @@ fn fieldPtr( | ... | @@ -21664,14 +21664,17 @@ fn fieldPtr( |
| 21664 | else | 21664 | else |
| 21665 | object_ptr; | 21665 | object_ptr; |
| 21666 | | 21666 | |
| | 21667 | const attr_ptr_ty = if (is_pointer_to) object_ty else object_ptr_ty; |
| | 21668 | |
| 21667 | if (mem.eql(u8, field_name, "ptr")) { | 21669 | if (mem.eql(u8, field_name, "ptr")) { |
| 21668 | const buf = try sema.arena.create(Type.SlicePtrFieldTypeBuffer); | 21670 | const buf = try sema.arena.create(Type.SlicePtrFieldTypeBuffer); |
| 21669 | const slice_ptr_ty = inner_ty.slicePtrFieldType(buf); | 21671 | const slice_ptr_ty = inner_ty.slicePtrFieldType(buf); |
| 21670 | | 21672 | |
| 21671 | const result_ty = try Type.ptr(sema.arena, sema.mod, .{ | 21673 | const result_ty = try Type.ptr(sema.arena, sema.mod, .{ |
| 21672 | .pointee_type = slice_ptr_ty, | 21674 | .pointee_type = slice_ptr_ty, |
| 21673 | .mutable = object_ptr_ty.ptrIsMutable(), | 21675 | .mutable = attr_ptr_ty.ptrIsMutable(), |
| 21674 | .@"addrspace" = object_ptr_ty.ptrAddressSpace(), | 21676 | .@"volatile" = attr_ptr_ty.isVolatilePtr(), |
| | 21677 | .@"addrspace" = attr_ptr_ty.ptrAddressSpace(), |
| 21675 | }); | 21678 | }); |
| 21676 | | 21679 | |
| 21677 | if (try sema.resolveDefinedValue(block, object_ptr_src, inner_ptr)) |val| { | 21680 | if (try sema.resolveDefinedValue(block, object_ptr_src, inner_ptr)) |val| { |
| ... | @@ -21690,8 +21693,9 @@ fn fieldPtr( | ... | @@ -21690,8 +21693,9 @@ fn fieldPtr( |
| 21690 | } else if (mem.eql(u8, field_name, "len")) { | 21693 | } else if (mem.eql(u8, field_name, "len")) { |
| 21691 | const result_ty = try Type.ptr(sema.arena, sema.mod, .{ | 21694 | const result_ty = try Type.ptr(sema.arena, sema.mod, .{ |
| 21692 | .pointee_type = Type.usize, | 21695 | .pointee_type = Type.usize, |
| 21693 | .mutable = object_ptr_ty.ptrIsMutable(), | 21696 | .mutable = attr_ptr_ty.ptrIsMutable(), |
| 21694 | .@"addrspace" = object_ptr_ty.ptrAddressSpace(), | 21697 | .@"volatile" = attr_ptr_ty.isVolatilePtr(), |
| | 21698 | .@"addrspace" = attr_ptr_ty.ptrAddressSpace(), |
| 21695 | }); | 21699 | }); |
| 21696 | | 21700 | |
| 21697 | if (try sema.resolveDefinedValue(block, object_ptr_src, inner_ptr)) |val| { | 21701 | if (try sema.resolveDefinedValue(block, object_ptr_src, inner_ptr)) |val| { |