zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit ba55e32ef2d8ed5875bff8524fbbb05c6d8afd40 (tree)
parent 1f56ff8343ef07d2d04d4a596b3f03f61230a753
Author: Loris Cro <kappaloris@gmail.com>
Date:   Fri, 21 Jan 2022 18:52:42 +0100

add function param doc comment info in zir

Diffstat:
Msrc/AstGen.zig | 4++++
Msrc/Zir.zig | 2++
Msrc/print_zir.zig | 6++++++
3 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/AstGen.zig b/src/AstGen.zig @@ -9721,8 +9721,12 @@ const GenZir = struct { try gz.astgen.extra.ensureUnusedCapacity(gpa, @typeInfo(Zir.Inst.Param).Struct.fields.len + param_body.len); + const doc_comment_index = try gz.astgen.docCommentAsString(abs_tok_index - + @boolToInt(tag == .param_comptime)); + const payload_index = gz.astgen.addExtraAssumeCapacity(Zir.Inst.Param{ .name = name, + .doc_comment = doc_comment_index, .body_len = @intCast(u32, param_body.len), }); gz.astgen.extra.appendSliceAssumeCapacity(param_body); diff --git a/src/Zir.zig b/src/Zir.zig @@ -2906,6 +2906,8 @@ pub const Inst = struct { pub const Param = struct { /// Null-terminated string index. name: u32, + /// 0 if no doc comment + doc_comment: u32, /// The body contains the type of the parameter. body_len: u32, }; diff --git a/src/print_zir.zig b/src/print_zir.zig @@ -785,6 +785,12 @@ const Writer = struct { try stream.print("\"{}\", ", .{ std.zig.fmtEscapes(self.code.nullTerminatedString(extra.data.name)), }); + + if (extra.data.doc_comment != 0) { + try stream.writeAll("\n"); + try self.writeDocComment(stream, extra.data.doc_comment); + try stream.writeByteNTimes(' ', self.indent); + } try self.writeBracedBody(stream, body); try stream.writeAll(") "); try self.writeSrc(stream, inst_data.src());