@@ -716,6 +716,11 @@ void check_union_type(CheckerContext *ctx, Type *union_type, Ast *node, Array<Op
union_type->Union.variants = variants;
union_type->Union.no_nil = ut->no_nil;
+ if (union_type->Union.no_nil) {
+ if (variants.count < 2) {
+ error(ut->align, "A union with #no_nil must have at least 2 variants");
+ }
if (ut->align != nullptr) {
i64 custom_align = 1;