diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-06-29 20:56:18 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-06-29 20:56:18 +0100 |
| commit | 69f7382eec47cf5c60ba013c49bcc2a5f7f6a279 (patch) | |
| tree | c7fa91f6500c48ac4b65c856878b700d7c6a183f /src/parser.cpp | |
| parent | 7e3293fc20592bf978b3cb9ceeeb0d88590b2909 (diff) | |
Implicit parametric polymorphic procedures
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index 7368b81e8..69b77bf2f 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -632,6 +632,10 @@ AstNode *clone_ast_node(gbAllocator a, AstNode *node) { case AstNode_Undef: break; case AstNode_BasicLit: break; case AstNode_BasicDirective: break; + + case AstNode_PolyType: + n->PolyType.type = clone_ast_node(a, n->PolyType.type); + break; case AstNode_Ellipsis: n->Ellipsis.expr = clone_ast_node(a, n->Ellipsis.expr); break; @@ -3259,8 +3263,10 @@ u32 check_field_prefixes(AstFile *f, isize name_count, u32 allowed_flags, u32 se syntax_error(f->curr_token, "`#c_vararg` is not allowed within this field list"); set_flags &= ~FieldFlag_c_vararg; } - if ((allowed_flags&FieldFlag_dollar) == 0 && (set_flags&FieldFlag_dollar)) { - syntax_error(f->curr_token, "`$` is only allowed within procedures"); + // if ((allowed_flags&FieldFlag_dollar) == 0 && (set_flags&FieldFlag_dollar)) { + if ((set_flags&FieldFlag_dollar)) { + // syntax_error(f->curr_token, "`$` is only allowed within procedures"); + syntax_error(f->curr_token, "`$` is not yet supported"); set_flags &= ~FieldFlag_dollar; } return set_flags; |