diff options
-rw-r--r-- | src/parsers/decl/function_decl.cpp | 10 | ||||
-rw-r--r-- | src/parsers/type/method_type.cpp | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/parsers/decl/function_decl.cpp b/src/parsers/decl/function_decl.cpp index c619d86..91eb15b 100644 --- a/src/parsers/decl/function_decl.cpp +++ b/src/parsers/decl/function_decl.cpp @@ -47,14 +47,16 @@ void parseFunctionDeclNode(FunctionDeclNode *node) setPrintField(node, DECL_EXTERNAL, isExternal); setPrintField(node, TREE_PUBLIC, isPublic); - if (!node->parseChilds) - return; - fillDeclAttributes(node); node->functionType = static_cast<TypeNode*>(createParseNode( node, TREE_TYPE(node->gccNode), - "function type")); + "function type", + node->parseChilds)); + + if (!node->parseChilds) + return; + node->result = static_cast<ResultDeclNode*>(createParseNode( node, DECL_RESULT(node->gccNode), diff --git a/src/parsers/type/method_type.cpp b/src/parsers/type/method_type.cpp index 264d539..e8a7119 100644 --- a/src/parsers/type/method_type.cpp +++ b/src/parsers/type/method_type.cpp @@ -33,7 +33,11 @@ void parseMethodTypeNode(MethodTypeNode *node) fillType(node); Log::dump(node); + if (!node->parseChilds) + return; + fillTypeName(node); + node->returnType = static_cast<TypeNode*>(createParseNode( node, TREE_TYPE(node->gccNode), |