From cfabc0e61f2c3dc00fd367e3f9bf1a89461971ef Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 28 Nov 2017 22:12:33 +0000 Subject: Remove `using` in arrays; Remove `_` non-exported struct fields Start determining slow parts of the compiler --- src/types.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/types.cpp') diff --git a/src/types.cpp b/src/types.cpp index 8dae03451..225f01bd8 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -950,7 +950,18 @@ bool is_type_valid_for_keys(Type *t) { bool is_type_indexable(Type *t) { - return is_type_array(t) || is_type_slice(t) || is_type_vector(t) || is_type_string(t); + Type *bt = base_type(t); + switch (bt->kind) { + case Type_Basic: + return is_type_string(bt); + case Type_Array: + case Type_Slice: + case Type_Vector: + case Type_DynamicArray: + case Type_Map: + return true; + } + return false; } bool is_type_polymorphic_struct(Type *t) { -- cgit v1.2.3