diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index f999dd7a70..6f8241d492 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -3427,13 +3427,6 @@ fn (mut g Gen) selector_expr(node ast.SelectorExpr) { g.error('unknown generic field', node.pos) } } - } else { - // for comp-time enum value evaluation - if node.expr_type == g.enum_data_type && node.expr is ast.Ident - && (node.expr as ast.Ident).name == 'value' { - g.write(node.str()) - return - } } if node.expr_type == 0 { g.checker_bug('unexpected SelectorExpr.expr_type = 0', node.pos) diff --git a/vlib/v/tests/comptime_enum_test.v b/vlib/v/tests/comptime_enum_test.v index 6474275e04..0d42a6e582 100644 --- a/vlib/v/tests/comptime_enum_test.v +++ b/vlib/v/tests/comptime_enum_test.v @@ -3,7 +3,26 @@ enum Test { bar } -fn test_main() { +fn test_print_value_name() { + $for value in Test.values { + println(value.name) + } +} + +fn test_print_value_value() { + $for value in Test.values { + println(value.value) + } +} + +fn test_print_both() { + $for values in Test.values { + println(values.name) + println(values.value) + } +} + +fn test_comptime_for_in_enum_values() { $for item in Test.values { assert item.name in ['foo', 'bar'] match item.value {