Ast_Kind_For,
Ast_Kind_While,
Ast_Kind_Jump,
- // Ast_Kind_Use,
Ast_Kind_Defer,
Ast_Kind_Switch,
Ast_Kind_Switch_Case,
struct AstReturn { AstNode_base; AstTyped* expr; u32 count; }; // Note: This count is one less than it should be, because internal codegen with macros would have to know about this and that is error prone.
struct AstJump { AstNode_base; JumpType jump; u32 count; };
-// typedef struct QualifiedUse {
-// OnyxToken* symbol_name;
-// OnyxToken* as_name;
-// } QualifiedUse;
-// struct AstUse {
-// AstNode_base;
-//
-// AstTyped* expr;
-// bh_arr(QualifiedUse) only;
-// };
-
// Structure Nodes
struct AstBlock {
AstNode_base;
shput(context.packages, pac_name, package);
- // if (!charset_contains(pac_name, '.')) {
- // AstPackage* package_node = onyx_ast_node_new(alloc, sizeof(AstPackage), Ast_Kind_Package);
- // package_node->package_name = package->name;
- // package_node->package = package;
- // package_node->type_node = builtin_package_id_type;
- // package_node->flags |= Ast_Flag_Comptime;
-
- // symbol_raw_introduce(context.global_scope, pac_name, pos, (AstNode *) package_node);
- // }
-
+ // The builtin package is special. The 'builtin' symbol will be
+ // accessible even if you do not `use builtin`.
if (!strcmp(pac_name, "builtin")) {
AstPackage* package_node = onyx_ast_node_new(alloc, sizeof(AstPackage), Ast_Kind_Package);
package_node->package_name = package->name;