mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
parent
70890b27a5
commit
c5a290ffc6
@ -4052,7 +4052,7 @@ fn (mut g Gen) return_stmt(node ast.Return) {
|
|||||||
|
|
||||||
if node.exprs.len > 0 {
|
if node.exprs.len > 0 {
|
||||||
// skip `return $vweb.html()`
|
// skip `return $vweb.html()`
|
||||||
if node.exprs[0] is ast.ComptimeCall {
|
if node.exprs[0] is ast.ComptimeCall && (node.exprs[0] as ast.ComptimeCall).is_vweb {
|
||||||
g.expr(node.exprs[0])
|
g.expr(node.exprs[0])
|
||||||
g.writeln(';')
|
g.writeln(';')
|
||||||
return
|
return
|
||||||
|
25
vlib/v/tests/return_comptime_call.v
Normal file
25
vlib/v/tests/return_comptime_call.v
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
struct App {}
|
||||||
|
|
||||||
|
fn (mut app App) method_one() string {
|
||||||
|
return '1'
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut app App) method_two() string {
|
||||||
|
return '2'
|
||||||
|
}
|
||||||
|
|
||||||
|
fn reflect_call(method_name string) string {
|
||||||
|
a := App{}
|
||||||
|
$for method in App.methods {
|
||||||
|
if method.name == method_name {
|
||||||
|
return a.$method()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panic('Method not supported: $method_name')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
result := reflect_call('method_one')
|
||||||
|
println(result)
|
||||||
|
assert result == '1'
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user