annotated types added to typeclass graph, fixes

This commit is contained in:
ProgramSnail 2023-05-19 15:05:12 +03:00
parent d841e2754b
commit 0b53b2f218
8 changed files with 131 additions and 124 deletions

View file

@ -294,7 +294,7 @@ struct AliasDefinitionStatement {
std::vector<AbstractTypeIdentifier> parameters;
std::unique_ptr<TypeExpression> value;
utils::IdType type_id_;
utils::IdType type_id_ = 0;
};
struct VariableDefinitionStatement {
@ -314,7 +314,7 @@ struct FunctionDeclaration {
std::vector<std::unique_ptr<AnnotatedAbstractType>> parameters;
std::unique_ptr<FunctionType> type;
utils::IdType function_id_;
utils::IdType function_id_ = 0;
};
struct FunctionDefinitionStatement {
@ -323,7 +323,7 @@ struct FunctionDefinitionStatement {
std::unique_ptr<FunctionDefinition> definition;
SuperExpression value;
utils::IdType function_id_;
utils::IdType function_id_ = 0;
};
struct TypeDefinitionStatement {
@ -334,7 +334,7 @@ struct TypeDefinitionStatement {
std::unique_ptr<TypeDefinition> definition;
AnyType value;
utils::IdType type_id_;
utils::IdType type_id_ = 0;
};
struct AbstractTypeDefinitionStatement {
@ -343,8 +343,7 @@ struct AbstractTypeDefinitionStatement {
utils::AbstractTypeModifier modifier;
std::unique_ptr<AnnotatedType> type;
utils::IdType type_graph_id_;
utils::IdType type_id_;
utils::IdType type_id_ = 0;
};
struct TypeclassDefinitionStatement {
@ -354,7 +353,7 @@ struct TypeclassDefinitionStatement {
std::vector<std::pair<utils::ClassInternalsModifier,
std::unique_ptr<FunctionDeclaration>>> requirements;
utils::IdType typeclass_id_;
utils::IdType typeclass_id_ = 0;
};
struct PartitionStatement {
@ -364,7 +363,7 @@ struct PartitionStatement {
PartitionName name;
SuperExpression value;
utils::IdType executable_id_;
utils::IdType executable_id_ = 0;
};
// Definition parts -----------------
@ -388,6 +387,8 @@ struct AnyAnnotatedType {
AnyTypeIdentifier type;
std::vector<std::unique_ptr<ParametrizedTypeclass>> typeclasses;
utils::IdType graph_id_ = 0; // for types
};
// ----------------- Flow control -----------------
@ -566,7 +567,7 @@ struct LambdaFunction {
Expression expression;
std::vector<utils::IdType> argument_graph_ids_;
utils::IdType return_type_graph_id_;
utils::IdType return_type_graph_id_ = 0;
};
struct ArrayExpression {
@ -662,7 +663,7 @@ struct ParametrizedTypeclass {
TypeclassIdentifier typeclass;
std::vector<std::unique_ptr<TypeExpression>> parameters;
utils::IdType typeclass_id_;
utils::IdType typeclass_id_ = 0;
};
// ----------------- Comments [IGNORE] -----------------