better global_info API, better const/var/static handling, const typeclass requirements, fixes

This commit is contained in:
ProgramSnail 2023-05-14 11:28:37 +03:00
parent 047ead6fa3
commit 4f54bb4bd7
15 changed files with 381 additions and 213 deletions

View file

@ -240,7 +240,6 @@ struct ParametrizedTypeclass;
struct ParametrizedType;
// Comments [IGNORE] -----------------
// Identifiers, constants, etc. -----------------
using Pattern = std::variant<
@ -272,7 +271,7 @@ struct NamespaceSources {
struct Namespace {
BaseNode base;
std::optional<utils::IsConstModifier> modifier; // modifier => variable namespace
utils::ClassInternalsModifier modifier;
TypeIdentifier type;
NamespaceSources scope;
@ -355,8 +354,8 @@ struct TypeclassDefinitionStatement {
BaseNode base;
std::unique_ptr<TypeDefinition> definition;
std::vector<std::unique_ptr<FunctionDeclaration>> method_requirements;
std::vector<std::unique_ptr<FunctionDeclaration>> function_requirements;
std::vector<std::pair<utils::ClassInternalsModifier,
std::unique_ptr<FunctionDeclaration>>> requirements;
utils::IdType typeclass_id_;
};