mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Fix minor parsing bug with procedure return types
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import "fmt.odin";
|
import "fmt.odin";
|
||||||
|
|
||||||
main :: proc() {
|
main :: proc() {
|
||||||
v, ok := fmt.string_to_enum_value(Allocator.Mode, "FreeAll");
|
fmt.println("Hellope!");
|
||||||
if ok do assert(v == Allocator.Mode.FreeAll);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -236,10 +236,10 @@ type_info_base_without_enum :: proc(info: ^TypeInfo) -> ^TypeInfo {
|
|||||||
|
|
||||||
|
|
||||||
foreign __llvm_core {
|
foreign __llvm_core {
|
||||||
assume :: proc(cond: bool) #link_name "llvm.assume" ---;
|
assume :: proc(cond: bool) #cc_c #link_name "llvm.assume" ---;
|
||||||
__debug_trap :: proc() #link_name "llvm.debugtrap" ---;
|
__debug_trap :: proc() #cc_c #link_name "llvm.debugtrap" ---;
|
||||||
__trap :: proc() #link_name "llvm.trap" ---;
|
__trap :: proc() #cc_c #link_name "llvm.trap" ---;
|
||||||
read_cycle_counter :: proc() -> u64 #link_name "llvm.readcyclecounter" ---;
|
read_cycle_counter :: proc() -> u64 #cc_c #link_name "llvm.readcyclecounter" ---;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -3391,6 +3391,10 @@ AstNode *parse_results(AstFile *f) {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isize prev_level = f->expr_level;
|
||||||
|
defer (f->expr_level = prev_level);
|
||||||
|
// f->expr_level = -1;
|
||||||
|
|
||||||
if (f->curr_token.kind != Token_OpenParen) {
|
if (f->curr_token.kind != Token_OpenParen) {
|
||||||
CommentGroup empty_group = {};
|
CommentGroup empty_group = {};
|
||||||
Token begin_token = f->curr_token;
|
Token begin_token = f->curr_token;
|
||||||
@@ -3790,10 +3794,13 @@ AstNode *parse_field_list(AstFile *f, isize *name_count_, u32 allowed_flags, Tok
|
|||||||
AstNode *parse_type_or_ident(AstFile *f) {
|
AstNode *parse_type_or_ident(AstFile *f) {
|
||||||
#if 1
|
#if 1
|
||||||
bool prev_allow_type = f->allow_type;
|
bool prev_allow_type = f->allow_type;
|
||||||
|
isize prev_expr_level = f->expr_level;
|
||||||
|
defer (f->allow_type = prev_allow_type);
|
||||||
|
defer (f->expr_level = prev_expr_level);
|
||||||
f->allow_type = true;
|
f->allow_type = true;
|
||||||
|
f->expr_level = -1;
|
||||||
AstNode *operand = parse_operand(f, true);
|
AstNode *operand = parse_operand(f, true);
|
||||||
AstNode *type = parse_atom_expr(f, operand, true);
|
AstNode *type = parse_atom_expr(f, operand, true);
|
||||||
f->allow_type = prev_allow_type;
|
|
||||||
return type;
|
return type;
|
||||||
#else
|
#else
|
||||||
switch (f->curr_token.kind) {
|
switch (f->curr_token.kind) {
|
||||||
|
|||||||
Reference in New Issue
Block a user