| ... | @@ -2172,17 +2172,21 @@ pub const Type = extern union { | ... | @@ -2172,17 +2172,21 @@ pub const Type = extern union { |
| 2172 | | 2172 | |
| 2173 | .const_slice => { | 2173 | .const_slice => { |
| 2174 | const elem_type = self.castTag(.const_slice).?.data; | 2174 | const elem_type = self.castTag(.const_slice).?.data; |
| 2175 | buffer.elem_type = .{ | 2175 | buffer.* = .{ |
| 2176 | .base = .{ .tag = .many_const_pointer }, | 2176 | .elem_type = .{ |
| 2177 | .data = elem_type, | 2177 | .base = .{ .tag = .many_const_pointer }, |
| | 2178 | .data = elem_type, |
| | 2179 | }, |
| 2178 | }; | 2180 | }; |
| 2179 | return Type.initPayload(&buffer.elem_type.base); | 2181 | return Type.initPayload(&buffer.elem_type.base); |
| 2180 | }, | 2182 | }, |
| 2181 | .mut_slice => { | 2183 | .mut_slice => { |
| 2182 | const elem_type = self.castTag(.mut_slice).?.data; | 2184 | const elem_type = self.castTag(.mut_slice).?.data; |
| 2183 | buffer.elem_type = .{ | 2185 | buffer.* = .{ |
| 2184 | .base = .{ .tag = .many_mut_pointer }, | 2186 | .elem_type = .{ |
| 2185 | .data = elem_type, | 2187 | .base = .{ .tag = .many_mut_pointer }, |
| | 2188 | .data = elem_type, |
| | 2189 | }, |
| 2186 | }; | 2190 | }; |
| 2187 | return Type.initPayload(&buffer.elem_type.base); | 2191 | return Type.initPayload(&buffer.elem_type.base); |
| 2188 | }, | 2192 | }, |
| ... | @@ -2199,31 +2203,37 @@ pub const Type = extern union { | ... | @@ -2199,31 +2203,37 @@ pub const Type = extern union { |
| 2199 | payload.@"allowzero" or | 2203 | payload.@"allowzero" or |
| 2200 | payload.@"volatile") | 2204 | payload.@"volatile") |
| 2201 | { | 2205 | { |
| 2202 | buffer.pointer = .{ | 2206 | buffer.* = .{ |
| 2203 | .data = .{ | 2207 | .pointer = .{ |
| 2204 | .pointee_type = payload.pointee_type, | 2208 | .data = .{ |
| 2205 | .sentinel = payload.sentinel, | 2209 | .pointee_type = payload.pointee_type, |
| 2206 | .@"align" = payload.@"align", | 2210 | .sentinel = payload.sentinel, |
| 2207 | .@"addrspace" = payload.@"addrspace", | 2211 | .@"align" = payload.@"align", |
| 2208 | .bit_offset = payload.bit_offset, | 2212 | .@"addrspace" = payload.@"addrspace", |
| 2209 | .host_size = payload.host_size, | 2213 | .bit_offset = payload.bit_offset, |
| 2210 | .@"allowzero" = payload.@"allowzero", | 2214 | .host_size = payload.host_size, |
| 2211 | .mutable = payload.mutable, | 2215 | .@"allowzero" = payload.@"allowzero", |
| 2212 | .@"volatile" = payload.@"volatile", | 2216 | .mutable = payload.mutable, |
| 2213 | .size = .Many, | 2217 | .@"volatile" = payload.@"volatile", |
| | 2218 | .size = .Many, |
| | 2219 | }, |
| 2214 | }, | 2220 | }, |
| 2215 | }; | 2221 | }; |
| 2216 | return Type.initPayload(&buffer.pointer.base); | 2222 | return Type.initPayload(&buffer.pointer.base); |
| 2217 | } else if (payload.mutable) { | 2223 | } else if (payload.mutable) { |
| 2218 | buffer.elem_type = .{ | 2224 | buffer.* = .{ |
| 2219 | .base = .{ .tag = .many_mut_pointer }, | 2225 | .elem_type = .{ |
| 2220 | .data = payload.pointee_type, | 2226 | .base = .{ .tag = .many_mut_pointer }, |
| | 2227 | .data = payload.pointee_type, |
| | 2228 | }, |
| 2221 | }; | 2229 | }; |
| 2222 | return Type.initPayload(&buffer.elem_type.base); | 2230 | return Type.initPayload(&buffer.elem_type.base); |
| 2223 | } else { | 2231 | } else { |
| 2224 | buffer.elem_type = .{ | 2232 | buffer.* = .{ |
| 2225 | .base = .{ .tag = .many_const_pointer }, | 2233 | .elem_type = .{ |
| 2226 | .data = payload.pointee_type, | 2234 | .base = .{ .tag = .many_const_pointer }, |
| | 2235 | .data = payload.pointee_type, |
| | 2236 | }, |
| 2227 | }; | 2237 | }; |
| 2228 | return Type.initPayload(&buffer.elem_type.base); | 2238 | return Type.initPayload(&buffer.elem_type.base); |
| 2229 | } | 2239 | } |