We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fn ArrayList(comptime T: type) type { return struct { x: T, fn foo(self: @This()) void { const a = self; const b = T; } }; }
[nix-shell:~/dev/zig/build-release]$ ./zig-out/bin/zig astgen test.zig # Source bytes: 182B # Tokens: 43 (239B) # AST Nodes: 19 (367B) # Total ZIR bytes: 571B # Instructions: 22 (198B) # String Table Bytes: 29B # Extra Data Items: 70 (280B) %21 = extended(struct_decl(parent, Auto, { [63] ArrayList line(0) hash(4d7f75c961c3193e0dc2fa1aafb225e1): %0 = block_inline({ %19 = func([@Ref.type_type], @Ref.type_type, { %1 = arg("T") token_offset:1:23 %2 = dbg_stmt(1, 4) %3 = extended(ret_type()) node_offset:2:5 %15 = extended(struct_decl(anon, Auto, { [31] foo line(4) hash(3c92c018eb12595917908fd6fd000f2b): %5 = block_inline({ %6 = extended(this()) node_offset:5:22 %7 = as_node(@Ref.type_type, %6) node_offset:5:22 %13 = func([%7], @Ref.void_type, { %8 = arg("self") token_offset:5:16 %9 = dbg_stmt(1, 12) %10 = dbg_stmt(2, 12) %11 = decl_val("T") token_offset:7:23 %12 = ret_coerce(@Ref.void_value) token_offset:8:9 }) (lbrace=0:27,rbrace=3:8) node_offset:5:9 %14 = break_inline(%5, %13) }) node_offset:5:9 }, { %4 = as_node(@Ref.type_type, %1) thread 2088 panic: index out of bounds /home/andy/dev/zig/src/Module.zig:1500:46: 0x489598 in Module.SrcLoc.byteOffset (zig) const tok_index = main_tokens[node]; ^ /home/andy/dev/zig/src/Zir.zig:4448:48: 0x581d8a in Zir.Writer.writeSrc (zig) const abs_byte_off = src_loc.byteOffset(self.gpa) catch unreachable; ^ /home/andy/dev/zig/src/Zir.zig:4176:26: 0x4ba727 in Zir.Writer.writeAs (zig) try self.writeSrc(stream, inst_data.src()); ^ /home/andy/dev/zig/src/Zir.zig:3039:41: 0x4b1ea2 in Zir.Writer.writeInstToStream (zig) .as_node => try self.writeAs(stream, inst), ^ /home/andy/dev/zig/src/Zir.zig:4466:39: 0x581ffd in Zir.Writer.writeBody (zig) try self.writeInstToStream(stream, inst); ^ /home/andy/dev/zig/src/Zir.zig:3549:35: 0x58e105 in Zir.Writer.writeStructDecl (zig) try self.writeBody(stream, body); ^ /home/andy/dev/zig/src/Zir.zig:3105:53: 0x4bb691 in Zir.Writer.writeExtended (zig) .struct_decl => try self.writeStructDecl(stream, extended), ^ /home/andy/dev/zig/src/Zir.zig:3073:48: 0x4b2213 in Zir.Writer.writeInstToStream (zig) .extended => try self.writeExtended(stream, inst), ^ /home/andy/dev/zig/src/Zir.zig:4466:39: 0x581ffd in Zir.Writer.writeBody (zig) try self.writeInstToStream(stream, inst); ^ /home/andy/dev/zig/src/Zir.zig:4379:31: 0x58adc2 in Zir.Writer.writeFuncCommon (zig) try self.writeBody(stream, body); ^ /home/andy/dev/zig/src/Zir.zig:4217:36: 0x4bac5e in Zir.Writer.writeFunc (zig) return self.writeFuncCommon( ^ /home/andy/dev/zig/src/Zir.zig:3058:40: 0x4b1fec in Zir.Writer.writeInstToStream (zig) .func => try self.writeFunc(stream, inst, false), ^ /home/andy/dev/zig/src/Zir.zig:4466:39: 0x581ffd in Zir.Writer.writeBody (zig) try self.writeInstToStream(stream, inst); ^ /home/andy/dev/zig/src/Zir.zig:3467:27: 0x5869c5 in Zir.Writer.writePlNodeBlockWithoutSrc (zig) try self.writeBody(stream, body); ^ /home/andy/dev/zig/src/Zir.zig:3826:48: 0x5880c8 in Zir.Writer.writeDecls (zig) try self.writePlNodeBlockWithoutSrc(stream, decl_index); ^ /home/andy/dev/zig/src/Zir.zig:3531:46: 0x58eaac in Zir.Writer.writeStructDecl (zig) extra_index = try self.writeDecls(stream, decls_len, extra_index); ^ /home/andy/dev/zig/src/Zir.zig:3105:53: 0x4bb691 in Zir.Writer.writeExtended (zig) .struct_decl => try self.writeStructDecl(stream, extended), ^ /home/andy/dev/zig/src/Zir.zig:3073:48: 0x4b2213 in Zir.Writer.writeInstToStream (zig) .extended => try self.writeExtended(stream, inst), ^ /home/andy/dev/zig/src/Zir.zig:136:33: 0x3bf8ba in Zir.renderAsTextToFile (zig) try writer.writeInstToStream(fs_file.writer(), main_struct_inst); ^ /home/andy/dev/zig/src/main.zig:3662:34: 0x39b269 in cmdAstgen (zig) return Zir.renderAsTextToFile(gpa, &file, io.getStdOut()); ^ /home/andy/dev/zig/src/main.zig:234:25: 0x33e266 in mainArgs (zig) return cmdAstgen(gpa, arena, cmd_args); ^ /home/andy/dev/zig/src/main.zig:141:20: 0x335860 in main (zig) return mainArgs(gpa, arena, args); ^ /home/andy/dev/zig/lib/std/start.zig:458:37: 0x32e0fa in std.start.callMain (zig) const result = root.main() catch |err| { ^ /home/andy/dev/zig/lib/std/start.zig:400:12: 0x31225e in std.start.callMainWithArgs (zig) return @call(.{ .modifier = .always_inline }, callMain, .{}); ^ /home/andy/dev/zig/lib/std/start.zig:318:17: 0x311245 in std.start.posixCallMainAndExit (zig) std.os.exit(@call(.{ .modifier = .always_inline }, callMainWithArgs, .{ argc, argv, envp })); ^ /home/andy/dev/zig/lib/std/start.zig:244:5: 0x310fa2 in std.start._start (zig) @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{}); ^ Aborted (core dumped)
The text was updated successfully, but these errors were encountered:
Reduced test case:
fn a() type { return struct { b: *i32 }; }
Sorry, something went wrong.
AstGen: fix crash in debug printing ZIR field types
302fa64
The printing code did not properly set the parent Decl node field, so the source location calculations were wrong. closes ziglang#8825
4f900e6
No branches or pull requests
The text was updated successfully, but these errors were encountered: