Skip to content

Commit f4eede8

Browse files
authored
cgen: fix using custom enum static from_string() (#19171)
1 parent 56644b2 commit f4eede8

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

vlib/v/gen/c/fn.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1720,7 +1720,7 @@ fn (mut g Gen) fn_call(node ast.CallExpr) {
17201720
g.write('panic_debug(${paline}, tos3("${pafile}"), tos3("${pamod}"), tos3("${pafn}"), ')
17211721
g.call_args(node)
17221722
g.write(')')
1723-
} else if node.name.ends_with('__static__from_string') {
1723+
} else if node.name.ends_with('__static__from_string') && !g.table.known_fn(node.name) {
17241724
if node.name !in g.str_fn_names {
17251725
g.gen_enum_static_from_string(node.name)
17261726
g.str_fn_names << node.name
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
enum Color {
2+
red
3+
green
4+
blue
5+
}
6+
7+
fn Color.from_string(x string) Color {
8+
return Color.red
9+
}
10+
11+
fn test_enum_custom_static_from_string() {
12+
ret := Color.from_string('abc')
13+
assert ret == Color.red
14+
}

0 commit comments

Comments
 (0)