mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
parent
c87a576cb5
commit
ffb3b1576b
@ -5490,7 +5490,7 @@ static LLVMValueRef gen_const_val(CodeGen *g, ConstExprValue *const_val, const c
|
||||
LLVMTypeRef union_type_ref = type_entry->data.unionation.union_type_ref;
|
||||
|
||||
if (type_entry->data.unionation.gen_field_count == 0) {
|
||||
if (type_entry->data.unionation.gen_tag_index == SIZE_MAX) {
|
||||
if (type_entry->data.unionation.tag_type == nullptr) {
|
||||
return nullptr;
|
||||
} else {
|
||||
return bigint_to_llvm_const(type_entry->data.unionation.tag_type->type_ref,
|
||||
|
||||
@ -311,3 +311,16 @@ fn testTaggedUnionInit(x: var) bool {
|
||||
const y = TaggedUnionWithAVoid{ .A = x };
|
||||
return @TagType(TaggedUnionWithAVoid)(y) == TaggedUnionWithAVoid.A;
|
||||
}
|
||||
|
||||
pub const UnionEnumNoPayloads = union(enum) {
|
||||
A,
|
||||
B,
|
||||
};
|
||||
|
||||
test "tagged union with no payloads" {
|
||||
const a = UnionEnumNoPayloads{ .B = {} };
|
||||
switch (a) {
|
||||
@TagType(UnionEnumNoPayloads).A => @panic("wrong"),
|
||||
@TagType(UnionEnumNoPayloads).B => {},
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user