diff options
| author | Loris Cro <kappaloris@gmail.com> | 2022-01-21 18:52:42 +0100 |
|---|---|---|
| committer | Loris Cro <kappaloris@gmail.com> | 2022-01-21 22:00:57 +0100 |
| commit | ba55e32ef2d8ed5875bff8524fbbb05c6d8afd40 (patch) | |
| tree | 69ebd7c14a837c3d3d2e148df4a6037429140054 /src | |
| parent | 1f56ff8343ef07d2d04d4a596b3f03f61230a753 (diff) | |
| download | zig-ba55e32ef2d8ed5875bff8524fbbb05c6d8afd40.tar.gz zig-ba55e32ef2d8ed5875bff8524fbbb05c6d8afd40.zip | |
add function param doc comment info in zir
Diffstat (limited to 'src')
| -rw-r--r-- | src/AstGen.zig | 4 | ||||
| -rw-r--r-- | src/Zir.zig | 2 | ||||
| -rw-r--r-- | src/print_zir.zig | 6 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index c6b4e6e866..5a05209f4c 100644 --- 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 index b50a63163f..05c4f2c5fb 100644 --- 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 index 9fd6b61231..7ce459568b 100644 --- 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()); |
