type_check_visitor fixes, function_call_expression for typeclasses

This commit is contained in:
ProgramSnail 2023-05-17 15:08:18 +03:00
parent 8e74b3082e
commit 584bdfa54d
6 changed files with 192 additions and 73 deletions

View file

@ -476,10 +476,10 @@ std::vector<utils::IdType>
return typeclasses_vector;
}
std::unordered_map<std::string, utils::ClassInternalsModifier>
std::unordered_map<std::string, TypeclassGraph::FunctionInfo*>
GlobalInfo::GetAnnotatedTypeFunctionsMap(interpreter::tokens::AnnotatedType* node) {
std::unordered_map<std::string, utils::ClassInternalsModifier> functions;
std::unordered_map<std::string, TypeclassGraph::FunctionInfo*> functions;
for (auto& typeclass : node->typeclasses) {
utils::IdType graph_id = typeclasses_[typeclass->typeclass_id_].graph_id_;
@ -492,12 +492,12 @@ std::unordered_map<std::string, utils::ClassInternalsModifier>
return functions;
}
std::vector<std::pair<std::string, utils::ClassInternalsModifier>>
std::vector<std::pair<std::string, TypeclassGraph::FunctionInfo*>>
GlobalInfo::GetAnnotatedTypeFunctionsVector(interpreter::tokens::AnnotatedType* node) {
std::unordered_map<std::string, utils::ClassInternalsModifier> functions_set = GetAnnotatedTypeFunctionsMap(node);
std::unordered_map<std::string, TypeclassGraph::FunctionInfo*> functions_set = GetAnnotatedTypeFunctionsMap(node);
std::vector<std::pair<std::string, utils::ClassInternalsModifier>> functions_vector;
std::vector<std::pair<std::string, TypeclassGraph::FunctionInfo*>> functions_vector;
functions_vector.reserve(functions_vector.size());
for (auto& typeclass : functions_set) {
functions_vector.push_back(typeclass);