ci: fix sanitize job failures after 02b889d
parent
02b889dac3
commit
c05634ebd1
|
@ -183,6 +183,7 @@ fn (mut g Gen) match_expr_sumtype(node ast.MatchExpr, is_expr bool, cond_var str
|
|||
}
|
||||
|
||||
fn (mut g Gen) match_expr_switch(node ast.MatchExpr, is_expr bool, cond_var string, tmp_var string, enum_typ ast.TypeSymbol) {
|
||||
cname := '${enum_typ.cname}__'
|
||||
mut covered_enum := []string{cap: (enum_typ.info as ast.Enum).vals.len} // collects missing enum variant branches to avoid cstrict errors
|
||||
mut range_branches := []ast.MatchBranch{cap: node.branches.len} // branches have RangeExpr cannot emit as switch case branch, we handle it in default branch
|
||||
mut default_generated := false
|
||||
|
@ -191,6 +192,11 @@ fn (mut g Gen) match_expr_switch(node ast.MatchExpr, is_expr bool, cond_var stri
|
|||
g.indent++
|
||||
for branch in node.branches {
|
||||
if branch.is_else {
|
||||
for val in (enum_typ.info as ast.Enum).vals {
|
||||
if val !in covered_enum {
|
||||
g.writeln('case $cname$val:')
|
||||
}
|
||||
}
|
||||
g.writeln('default:')
|
||||
default_generated = true
|
||||
if range_branches.len > 0 {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
case main__Enum__e1:
|
||||
case main__Enum__e4:
|
||||
case main__Enum__e6:
|
||||
default:
|
||||
(e >= 4 && e <= 5)
|
||||
(e >= 4 && e <= 5)
|
Loading…
Reference in New Issue