diff --git a/core/runtime/core.odin b/core/runtime/core.odin index 3700ace28..ed6833df4 100644 --- a/core/runtime/core.odin +++ b/core/runtime/core.odin @@ -429,11 +429,11 @@ reserve_dynamic_array :: proc(array: ^$T/[dynamic]$E, capacity: int, loc := #cal } @(builtin) -incl :: proc(s: ^$B/bit_set[$T], elem: T) { +incl :: inline proc(s: ^$B/bit_set[$T], elem: T) { s^ |= {elem}; } @(builtin) -excl :: proc(s: ^$B/bit_set[$T], elem: T) { +excl :: inline proc(s: ^$B/bit_set[$T], elem: T) { s^ &~= {elem}; } diff --git a/src/check_expr.cpp b/src/check_expr.cpp index b74658b6e..de3960101 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -2579,7 +2579,7 @@ bool check_index_value(CheckerContext *c, bool open_range, Ast *index_value, i64 return false; } - if (!is_type_integer(operand.type)) { + if (!is_type_integer(operand.type) && !is_type_enum(operand.type)) { gbString expr_str = expr_to_string(operand.expr); error(operand.expr, "Index '%s' must be an integer", expr_str); gb_string_free(expr_str);