Core: Misc
This commit is contained in:
@@ -1,25 +1,3 @@
|
||||
/*@language_todo: labeled block :LabeledBlock
|
||||
|
||||
It acts just like a scope in C.
|
||||
BUT it can be turned into a goto label by adding another semicolon
|
||||
at the end.
|
||||
|
||||
:block
|
||||
thing := 1
|
||||
thing2 := thing
|
||||
|
||||
:label_without_block
|
||||
thing := 1
|
||||
|
||||
|
||||
:goto_block:
|
||||
thing := 1
|
||||
thing2 := thing
|
||||
|
||||
:goto_block: for
|
||||
|
||||
*/
|
||||
|
||||
#import "raylib.core"
|
||||
A :: #load "array.core"
|
||||
MAP :: #load "map.core"
|
||||
|
||||
@@ -630,12 +630,13 @@ struct Ast_Decl : Ast {
|
||||
uint64_t operator_overload_arguments_hash;
|
||||
Ast_Operator_Info *overload_op_info;
|
||||
|
||||
// @todo: move this to Ast_Poly
|
||||
// @todo: move this to Ast_Poly, perhaps this change needs to be combined with
|
||||
// the change to lambda where they stop being expressions
|
||||
uint64_t polymorph_hash;
|
||||
Array<Ast_Type *> polymorph_resolved_parameter_types;
|
||||
Array<Ast_Decl *> polymorph_parameters;
|
||||
Array<Ast_Decl *> polymorphs; // instantiated polymorphs
|
||||
|
||||
|
||||
Ast_Scope *scope;
|
||||
Ast_Expr *typespec;
|
||||
union {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/*
|
||||
|
||||
Features
|
||||
- Labeled blocks / gotos :LabeledBlock
|
||||
- Add := for default arguments in lambda. (a := false, b := false)
|
||||
- Add struct default values.
|
||||
- Add for loop:
|
||||
|
||||
@@ -338,7 +338,7 @@ Ast *ast_copy(Ast *ast, Ast_Scope *parent_scope, Array<Poly_Replacement> *repl)
|
||||
case AST_UNION:
|
||||
case AST_ENUM:
|
||||
case AST_LAMBDA:
|
||||
case AST_TYPE: // @cleanup: what is this used for?
|
||||
case AST_TYPE:
|
||||
case AST_CONST:
|
||||
case AST_VAR: {
|
||||
Ast_Decl *src = (Ast_Decl *)ast;
|
||||
|
||||
@@ -1167,7 +1167,7 @@ resolve_expr(Ast_Expr *ast, Resolve_Flag flags, Ast_Type *compound_and_const_str
|
||||
|
||||
// @consider: Maybe instead of using AST_IDENT another case should be
|
||||
// added like AST_RESOLVED or something because currently the identifier
|
||||
// is a bit bogus.
|
||||
// can already be resolved and stuff like that
|
||||
|
||||
// if (node->intern_val == pctx->intern("MAP"_s)) {
|
||||
// __debugbreak();
|
||||
|
||||
Reference in New Issue
Block a user