enum Star
Gemini,
- Orion,
+ Orion
endenum
assert_equal(3, test_refcount(Star))
assert_equal(2, test_refcount(Star.Gemini))
v9.CheckSourceSuccess(lines)
enddef
+" Test for using "values" in an enum class variable
+def Test_use_enum_values_in_class_variable()
+ var lines =<< trim END
+ vim9script
+ enum Dir
+ North, South
+ static const dirs: list<Dir> = Dir.values
+ endenum
+ assert_equal([Dir.North, Dir.South], Dir.dirs)
+ END
+ v9.CheckSourceSuccess(lines)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
if (enum_parse_values(eap, cl, line, &classmembers,
&num_enum_values, &enum_end) == FAIL)
break;
+
+ if (enum_end)
+ // Add the enum "values" class variable.
+ enum_add_values_member(cl, &classmembers, num_enum_values,
+ &type_list);
continue;
}
vim_free(theline);
- if (success && is_enum)
- // Add the enum "values" class variable.
- enum_add_values_member(cl, &classmembers, num_enum_values, &type_list);
+ if (success && is_enum && num_enum_values == 0)
+ // Empty enum statement. Add an empty "values" class variable
+ enum_add_values_member(cl, &classmembers, 0, &type_list);
/*
* Check a few things