aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/types.cpp b/src/types.cpp
index 7f22d0202..5f6fdbb34 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -1262,6 +1262,20 @@ bool is_type_rune_array(Type *t) {
}
+bool is_type_array_like(Type *t) {
+ return is_type_array(t) || is_type_enumerated_array(t);
+}
+i64 get_array_type_count(Type *t) {
+ Type *bt = base_type(t);
+ if (bt->kind == Type_Array) {
+ return bt->Array.count;
+ } else if (bt->kind == Type_EnumeratedArray) {
+ return bt->EnumeratedArray.count;
+ }
+ GB_ASSERT(is_type_array_like(t));
+ return -1;
+}
+
Type *core_array_type(Type *t) {