aboutsummaryrefslogtreecommitdiff
path: root/include/ek/ast.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2025-01-21 20:32:39 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2025-01-21 20:32:39 +0200
commite8f78907830c525dccf1f4a5e6f97a15780c54ef (patch)
tree616bf72243e22cfb034cf2fab4bb99a927db61da /include/ek/ast.h
parent284be00c81407735cc8ddec1f1353b867b2deffd (diff)
downloadek-e8f78907830c525dccf1f4a5e6f97a15780c54ef.tar.gz
ek-e8f78907830c525dccf1f4a5e6f97a15780c54ef.zip
add type visibility checks
+ Essentially require that each type used in a public symbol only use types that are exported out of the file as well
Diffstat (limited to 'include/ek/ast.h')
-rw-r--r--include/ek/ast.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/ek/ast.h b/include/ek/ast.h
index 5c1c6e6..37e644d 100644
--- a/include/ek/ast.h
+++ b/include/ek/ast.h
@@ -197,6 +197,7 @@ enum ast_flags {
AST_FLAG_UFCS_SIMPLE = (1 << 17),
AST_FLAG_UFCS_REF = (1 << 18),
AST_FLAG_UFCS_TRIVIAL = (1 << 19),
+ AST_FLAG_INSTANCE = (1 << 20),
};
struct ast;
@@ -691,6 +692,7 @@ struct ast *ast_prepend(struct ast *list, struct ast *elem);
struct type *type_prepend(struct type *list, struct type *elem);
void ast_set_flags(struct ast *node, enum ast_flags flags);
+void ast_set_flags_recurse(struct ast *node, enum ast_flags flags);
void ast_clear_flags(struct ast *node, enum ast_flags flags);
unsigned ast_flags(struct ast *node, enum ast_flags flags);