diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-12-27 18:10:24 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-12-27 18:10:24 -0700 |
| commit | fc1a5cd9e74faf19e5974c733b0bcd9444d48b7b (patch) | |
| tree | 3638e0eb93d37713bb03ed3c53b6921b9267c1a8 /src | |
| parent | 9dd4fb4130a71d2aaaaa361d8ee0b7135cb84162 (diff) | |
| download | zig-fc1a5cd9e74faf19e5974c733b0bcd9444d48b7b.tar.gz zig-fc1a5cd9e74faf19e5974c733b0bcd9444d48b7b.zip | |
Sema: implement `@tagName` for enum literals
Diffstat (limited to 'src')
| -rw-r--r-- | src/Sema.zig | 5 |
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(); |
