aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-12-27 18:10:24 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-12-27 18:10:24 -0700
commitfc1a5cd9e74faf19e5974c733b0bcd9444d48b7b (patch)
tree3638e0eb93d37713bb03ed3c53b6921b9267c1a8 /src
parent9dd4fb4130a71d2aaaaa361d8ee0b7135cb84162 (diff)
downloadzig-fc1a5cd9e74faf19e5974c733b0bcd9444d48b7b.tar.gz
zig-fc1a5cd9e74faf19e5974c733b0bcd9444d48b7b.zip
Sema: implement `@tagName` for enum literals
Diffstat (limited to 'src')
-rw-r--r--src/Sema.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index f1431272db..8d27553f94 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -10054,6 +10054,11 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air
const operand_ty = sema.typeOf(operand);
const enum_ty = switch (operand_ty.zigTypeTag()) {
+ .EnumLiteral => {
+ const val = try sema.resolveConstValue(block, operand_src, operand);
+ const bytes = val.castTag(.enum_literal).?.data;
+ return sema.addStrLit(block, bytes);
+ },
.Enum => operand_ty,
.Union => operand_ty.unionTagType() orelse {
const decl = operand_ty.getOwnerDecl();