mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-07 16:18:52 +00:00
Disallow proc() do stmt and only allow proc() { stmt }
This commit is contained in:
@@ -45,4 +45,4 @@ ERROR_NOT_SAME_OBJECT : DWORD : 1656
|
|||||||
|
|
||||||
E_NOTIMPL :: HRESULT(-0x7fff_bfff) // 0x8000_4001
|
E_NOTIMPL :: HRESULT(-0x7fff_bfff) // 0x8000_4001
|
||||||
|
|
||||||
SUCCEEDED :: #force_inline proc(#any_int result: int) -> bool do return result >= 0
|
SUCCEEDED :: #force_inline proc(#any_int result: int) -> bool { return result >= 0 }
|
||||||
|
|||||||
+1
-5
@@ -2324,11 +2324,7 @@ Ast *parse_operand(AstFile *f, bool lhs) {
|
|||||||
body = convert_stmt_to_body(f, parse_stmt(f));
|
body = convert_stmt_to_body(f, parse_stmt(f));
|
||||||
f->curr_proc = curr_proc;
|
f->curr_proc = curr_proc;
|
||||||
|
|
||||||
if (build_context.disallow_do) {
|
syntax_error(body, "'do' for procedure bodies is not allowed, prefer {}");
|
||||||
syntax_error(body, "'do' has been disallowed");
|
|
||||||
} else if (!ast_on_same_line(type, body)) {
|
|
||||||
syntax_error(body, "The body of a 'do' must be on the same line as the signature");
|
|
||||||
}
|
|
||||||
|
|
||||||
return ast_proc_lit(f, type, body, tags, where_token, where_clauses);
|
return ast_proc_lit(f, type, body, tags, where_token, where_clauses);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user