From ffc4f014707783b1d690a1b5a38796324a470e2f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Fri, 17 Aug 2018 19:38:15 +0100 Subject: [PATCH] All enums in array indices --- core/runtime/core.odin | 4 ++-- src/check_expr.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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);