add function param doc comment info in zir

This commit is contained in:
Loris Cro 2022-01-21 18:52:42 +01:00
parent 1f56ff8343
commit ba55e32ef2
3 changed files with 12 additions and 0 deletions

View File

@ -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);

View File

@ -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,
};

View File

@ -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());