type_check_visitor FindSubExpressionMethodAndUpdate fixes, fixes

This commit is contained in:
ProgramSnail 2023-05-17 11:51:14 +03:00
parent a90bcb5d92
commit 868d514bcc
6 changed files with 79 additions and 49 deletions

View file

@ -392,15 +392,17 @@ void ExecuteVisitor::Visit(FunctionCallExpression* node) {
}
}
auto function_declaration = namespace_visitor_.GetGlobalInfo()->GetFunctionInfo(node->function_id_).declaration.value(); // checked in type_check_visitor
// TODO: typeclass functions
auto function_declaration = namespace_visitor_.GetGlobalInfo()->GetFunctionInfo(node->function_id_.value()).declaration.value(); // checked in type_check_visitor
for (size_t i = 0; i < node->parameters.size(); ++i) {
// TODO: local bastract types, absract types, etc.
// TODO: local abstract types, absract types, etc.
context_manager_.DefineLocalType(function_declaration.parameters[i].type, node->parameters[i]->type_id_.value()); // TODO: check
}
auto maybe_function_definition = namespace_visitor_.GetGlobalInfo()->GetFunctionInfo(node->function_id_).definition;
// TODO: typeclass functions
auto maybe_function_definition = namespace_visitor_.GetGlobalInfo()->GetFunctionInfo(node->function_id_.value()).definition;
if (maybe_function_definition.has_value()) {
for (size_t i = 0; i < node->arguments.size(); ++i) {