diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp index 3ba18153d236c6592833c76ee0fa1030ec2a19cd..20233042ef2bcc0eb38e104ecdb80fdf24ffb1f3 100644 --- a/src/language/ASTNodeDataTypeBuilder.cpp +++ b/src/language/ASTNodeDataTypeBuilder.cpp @@ -122,9 +122,13 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n) Assert(found); i_symbol->attributes().setDataType(data_type); }; -#warning This test is probably incorrect + if (parameters_domain_node.children.size() == 0) { - simple_type_allocator(parameters_domain_node, parameters_name_node); + if (parameters_name_node.is<language::name_list>()) { + simple_type_allocator(parameters_domain_node, *parameters_name_node.children[0]); + } else { + simple_type_allocator(parameters_domain_node, parameters_name_node); + } } else { for (size_t i = 0; i < function_descriptor.domainMappingNode().children.size(); ++i) { simple_type_allocator(*parameters_domain_node.children[i], *parameters_name_node.children[i]); diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index 5faacdbf3593cdc38cb8cb1922e92593fbd06860..4729bdecfe1ca55863cdaf3ff9d026d5247d2e53 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -146,8 +146,8 @@ let f : R -> R, (x) -> x; `-(language::let_declaration:void) `-(language::name:f:function) )"; -#warning finish this test - // CHECK_AST(data, result); + + CHECK_AST(data, result); } }