Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
felipensp committed Jun 1, 2024
1 parent f7837b2 commit 2a7a6b3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 2 additions & 2 deletions vlib/v/parser/parser.v
Original file line number Diff line number Diff line change
Expand Up @@ -4161,8 +4161,8 @@ fn (mut p Parser) enum_decl() ast.EnumDecl {
isb.write_string(' val := unsafe{ ${enum_name}(input) }\n')
if is_flag {
isb.write_string(' if input == 0 { return val }\n')
all_flags := fields.map('${enum_name}.${it.source_name}').join('|')
isb.write_string(' if input & ~int(${all_flags}) == 0 { return val }\n')
all_bits_set_value := '0b' + '1'.repeat(fields.len)
isb.write_string(' if input & ~${all_bits_set_value} == 0 { return val }\n')
} else {
isb.write_string(' match val {\n')
for f in fields {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@ pub enum Flag as u8 {
flag7
}

fn test_main() {
fn test_ok() {
a := Flag.from(0b10101110) or { panic(err) }
assert a == Flag.flag1 | .flag2 | .flag3 | .flag5 | .flag7
}

fn test_fail() {
a := Flag.from(0b110101110) or { Flag(Flag.flag0) }
assert a == Flag.flag0
}

0 comments on commit 2a7a6b3

Please sign in to comment.