mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2026-01-25 13:07:13 +00:00
function declaration & definition statements for typeclasses and inherited classes in typecheck_visitor
This commit is contained in:
parent
aab455ff1d
commit
090f638e45
3 changed files with 102 additions and 21 deletions
|
|
@ -340,7 +340,7 @@ public:
|
|||
}
|
||||
|
||||
// cache ??
|
||||
std::vector<utils::IdType> GetAnnotatedTypeTypeclasses(interpreter::tokens::AnnotatedType* node) {
|
||||
std::unordered_set<utils::IdType> GetAnnotatedTypeTypeclassesSet(interpreter::tokens::AnnotatedType* node) {
|
||||
std::unordered_set<utils::IdType> typeclasses;
|
||||
|
||||
for (auto& typeclass : node->typeclasses) {
|
||||
|
|
@ -353,13 +353,18 @@ public:
|
|||
|
||||
typeclasses.insert(graph_id);
|
||||
}
|
||||
return typeclasses;
|
||||
}
|
||||
|
||||
std::vector<utils::IdType> collected_typeclasses;
|
||||
collected_typeclasses.reserve(typeclasses.size());
|
||||
for (auto& typeclass : typeclasses) {
|
||||
collected_typeclasses.push_back(typeclass);
|
||||
std::vector<utils::IdType> GetAnnotatedTypeTypeclassesVector(interpreter::tokens::AnnotatedType* node) {
|
||||
std::unordered_set<utils::IdType> typeclasses_set = GetAnnotatedTypeTypeclassesSet(node);
|
||||
|
||||
std::vector<utils::IdType> typeclasses_vector;
|
||||
typeclasses_vector.reserve(typeclasses_vector.size());
|
||||
for (auto& typeclass : typeclasses_set) {
|
||||
typeclasses_vector.push_back(typeclass);
|
||||
}
|
||||
return collected_typeclasses;
|
||||
return typeclasses_vector;
|
||||
}
|
||||
|
||||
std::optional<utils::IdType> AddTypeclassToGraph(utils::IdType typeclass);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue