diff options
| author | Loris Cro <kappaloris@gmail.com> | 2025-02-13 20:05:00 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-02-26 14:41:33 -0500 |
| commit | fff8eff2bd0cc36b192d0ab43b522161227c3c2d (patch) | |
| tree | 13980a602ac4a993da81002010ef6e6fa65a2eea /src/Sema.zig | |
| parent | 8957b2707464a4dc7f0572bfc08fd104408bc8a3 (diff) | |
| download | zig-fff8eff2bd0cc36b192d0ab43b522161227c3c2d.tar.gz zig-fff8eff2bd0cc36b192d0ab43b522161227c3c2d.zip | |
initial implementation of `@deprecated`
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 9e729a17ea..e68177433d 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -1091,6 +1091,7 @@ fn analyzeBodyInner( const map = &sema.inst_map; const tags = sema.code.instructions.items(.tag); const datas = sema.code.instructions.items(.data); + const mod = block.ownerModule(); var crash_info = crash_report.prepAnalyzeBody(sema, block, body); crash_info.push(); @@ -1341,6 +1342,15 @@ fn analyzeBodyInner( .extended => ext: { const extended = datas[@intFromEnum(inst)].extended; break :ext switch (extended.opcode) { + .deprecated => { + if (!mod.allow_deprecated) { + const src_node: i32 = @bitCast(extended.operand); + const src = block.nodeOffset(src_node); + return sema.fail(block, src, "found deprecated code", .{}); + } + + break :ext .void_value; + }, // zig fmt: off .struct_decl => try sema.zirStructDecl( block, extended, inst), .enum_decl => try sema.zirEnumDecl( block, extended, inst), |
