| ... | ... | @@ -2249,7 +2249,40 @@ fn walkInstruction( |
| 2249 | 2249 | |
| 2250 | 2250 | return result; |
| 2251 | 2251 | }, |
| 2252 | | .opaque_decl => return self.cteTodo("opaque {...}"), |
| 2252 | .opaque_decl => { |
| 2253 | const small = @bitCast(Zir.Inst.OpaqueDecl.Small, extended.small); |
| 2254 | var extra_index: usize = extended.operand; |
| 2255 | const src_node: ?i32 = if (small.has_src_node) blk: { |
| 2256 | const src_node = @bitCast(i32, file.zir.extra[extra_index]); |
| 2257 | extra_index += 1; |
| 2258 | break :blk src_node; |
| 2259 | } else null; |
| 2260 | _ = src_node; |
| 2261 | |
| 2262 | const decls_len = if (small.has_decls_len) blk: { |
| 2263 | const decls_len = file.zir.extra[extra_index]; |
| 2264 | extra_index += 1; |
| 2265 | break :blk decls_len; |
| 2266 | } else 0; |
| 2267 | _ = decls_len; |
| 2268 | |
| 2269 | const decls_bits = file.zir.extra[extra_index]; |
| 2270 | _ = decls_bits; |
| 2271 | |
| 2272 | // const sep = "=" ** 200; |
| 2273 | // std.debug.print("{s}\n", .{sep}); |
| 2274 | // std.debug.print("small = {any}\n", .{small}); |
| 2275 | // std.debug.print("src_node = {}\n", .{src_node}); |
| 2276 | // std.debug.print("decls_len = {}\n", .{decls_len}); |
| 2277 | // std.debug.print("decls_bit = {}\n", .{decls_bits}); |
| 2278 | // std.debug.print("{s}\n", .{sep}); |
| 2279 | const type_slot_index = self.types.items.len - 1; |
| 2280 | try self.types.append(self.arena, .{ .Opaque = .{ .name = "TODO" } }); |
| 2281 | return DocData.WalkResult{ |
| 2282 | .typeRef = .{ .type = @enumToInt(Ref.anyopaque_type) }, |
| 2283 | .expr = .{ .type = type_slot_index }, |
| 2284 | }; |
| 2285 | }, |
| 2253 | 2286 | .variable => { |
| 2254 | 2287 | const small = @bitCast(Zir.Inst.ExtendedVar.Small, extended.small); |
| 2255 | 2288 | var extra_index: usize = extended.operand; |