summaryrefslogtreecommitdiff
path: root/src/ast/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/ast.h')
-rw-r--r--src/ast/ast.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ast/ast.h b/src/ast/ast.h
index b272cae..a868bf0 100644
--- a/src/ast/ast.h
+++ b/src/ast/ast.h
@@ -58,6 +58,7 @@ typedef enum
TYPE_ARRAY, ///< Fixed size array [N].
TYPE_FUNCTION, ///< Function pointer or reference.
TYPE_GENERIC, ///< Generic type parameter (T).
+ TYPE_ALIAS, ///< Opaque type alias.
TYPE_UNKNOWN ///< Unknown/unresolved type.
} TypeKind;
@@ -84,6 +85,11 @@ typedef struct Type
int has_drop; ///< 1 if type implements Drop trait (RAII).
int has_iterable; ///< 1 if type implements Iterable trait.
} traits;
+ struct
+ {
+ int is_opaque_alias;
+ char *alias_defined_in_file;
+ } alias;
};
} Type;
@@ -263,6 +269,8 @@ struct ASTNode
{
char *alias;
char *original_type;
+ int is_opaque;
+ char *defined_in_file;
} type_alias;
struct
@@ -436,6 +444,8 @@ struct ASTNode
Attribute *attributes; // Custom attributes
char **used_structs; // Names of structs used/mixed-in
int used_struct_count;
+ int is_opaque;
+ char *defined_in_file; // File where the struct is defined (for privacy check)
} strct;
struct