Skip to content

Commit ba8e61e

Browse files
authored
cgen: fix return typeof[T]() in generic functions (#16626)
1 parent 6c0f224 commit ba8e61e

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

vlib/v/gen/c/cgen.v

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3525,9 +3525,7 @@ fn (mut g Gen) typeof_expr(node ast.TypeOf) {
35253525
varg_elem_type_sym := g.table.sym(g.table.value_type(typ))
35263526
g.write('_SLIT("...${util.strip_main_name(varg_elem_type_sym.name)}")')
35273527
} else {
3528-
x := g.table.type_to_str(typ)
3529-
y := util.strip_main_name(x)
3530-
g.write('_SLIT("${y}")')
3528+
g.type_name(typ)
35313529
}
35323530
}
35333531

vlib/v/tests/fn_return_typeof_test.v

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
fn foo[T]() string {
2+
return typeof[T]().name
3+
}
4+
5+
fn bar[T]() string {
6+
return typeof[T]()
7+
}
8+
9+
fn test_main() {
10+
assert foo[int]() == 'int'
11+
assert bar[int]() == 'int'
12+
}

0 commit comments

Comments
 (0)