From ad25e0e276564373b7c44d219f0885d9e1fc4e24 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Fri, 23 Aug 2024 15:09:20 +0300 Subject: [PATCH] generate interface methods --- fn_decl.v | 13 +++++++++++-- main.v | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/fn_decl.v b/fn_decl.v index 184c8ec..d7806f5 100644 --- a/fn_decl.v +++ b/fn_decl.v @@ -37,9 +37,19 @@ fn (mut app App) func_decl(decl Decl) { } app.gen(method_name) app.func_params(decl.typ.params) + app.func_return_type(decl.typ.results) + app.block_stmt(decl.body) +} + +fn (mut app App) func_type(t FuncType) { + app.func_params(t.params) + app.func_return_type(t.results) +} + +fn (mut app App) func_return_type(results FieldList) { // app.genln(results) // Return types - return_types := decl.typ.results.list + return_types := results.list if return_types.len > 1 { app.gen('(') } @@ -53,7 +63,6 @@ fn (mut app App) func_decl(decl Decl) { if return_types.len > 1 { app.gen(')') } - app.block_stmt(decl.body) } fn (mut app App) func_params(params FieldList) { diff --git a/main.v b/main.v index 5ac9f67..755223f 100644 --- a/main.v +++ b/main.v @@ -78,7 +78,8 @@ fn (mut app App) typ(t Type) { app.gen('INTERFACE TYPE') } FuncType { - app.gen('FUNC TYPE') + app.func_type(t) + // app.gen('FUNC TYPE') } } app.force_upper = false