diff --git a/core/odin/ast/ast.odin b/core/odin/ast/ast.odin index 075a669de..9088da0ea 100644 --- a/core/odin/ast/ast.odin +++ b/core/odin/ast/ast.odin @@ -27,6 +27,8 @@ Proc_Calling_Convention :: union { Node_State_Flag :: enum { Bounds_Check, No_Bounds_Check, + Type_Assert, + No_Type_Assert, } Node_State_Flags :: distinct bit_set[Node_State_Flag] diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index 991b05398..aab59c29d 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -1438,6 +1438,15 @@ parse_stmt :: proc(p: ^Parser) -> ^ast.Stmt { stmt.state_flags += {.No_Bounds_Check} } return stmt + case "type_assert", "no_type_assert": + stmt := parse_stmt(p) + switch name { + case "type_assert": + stmt.state_flags += {.Type_Assert} + case "no_type_assert": + stmt.state_flags += {.No_Type_Assert} + } + return stmt case "partial": stmt := parse_stmt(p) #partial switch s in stmt.derived_stmt {