diff options
| author | Robin Voetter <robin@voetter.nl> | 2022-01-08 04:29:49 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-01-08 14:32:40 -0500 |
| commit | cc5c25d48b5331396bfa5218dc7f29dff26e20f9 (patch) | |
| tree | 08767d5933f36d6bc57cc284ed62ac9ca0d625c4 /src/AstGen.zig | |
| parent | 4931b8dc93ee4a99a415dffab03d400e95d1a90a (diff) | |
| download | zig-cc5c25d48b5331396bfa5218dc7f29dff26e20f9.tar.gz zig-cc5c25d48b5331396bfa5218dc7f29dff26e20f9.zip | |
stage2: implement @src
Diffstat (limited to 'src/AstGen.zig')
| -rw-r--r-- | src/AstGen.zig | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index 7ff3d75682..87cc07fae8 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -6918,12 +6918,25 @@ fn builtinCall( return rvalue(gz, rl, result, node); }, + .src => { + const token_starts = tree.tokens.items(.start); + const node_start = token_starts[tree.firstToken(node)]; + + astgen.advanceSourceCursor(tree.source, node_start); + + const result = try gz.addExtendedPayload(.builtin_src, Zir.Inst.LineColumn{ + .line = @intCast(u32, astgen.source_line), + .column = @intCast(u32, astgen.source_column), + }); + + return rvalue(gz, rl, result, node); + }, + .breakpoint => return simpleNoOpVoid(gz, rl, node, .breakpoint), // zig fmt: off .This => return rvalue(gz, rl, try gz.addNodeExtended(.this, node), node), .return_address => return rvalue(gz, rl, try gz.addNodeExtended(.ret_addr, node), node), - .src => return rvalue(gz, rl, try gz.addNodeExtended(.builtin_src, node), node), .error_return_trace => return rvalue(gz, rl, try gz.addNodeExtended(.error_return_trace, node), node), .frame => return rvalue(gz, rl, try gz.addNodeExtended(.frame, node), node), .frame_address => return rvalue(gz, rl, try gz.addNodeExtended(.frame_address, node), node), |
