aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-11-20 16:24:23 +0000
committergingerBill <bill@gingerbill.org>2020-11-20 16:24:23 +0000
commit63e4a2341f1409eec1f2e58036cd01b24b66b8f0 (patch)
tree93801df8d25cb3c09c77d293fa4a53a513bb4383 /src/types.cpp
parent6416a6f39cce4c65c80e29bb4ff4b93a3e463947 (diff)
Support string literals for fixed arrays of runes; Add %q support for arrays/slices of bytes
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp52
1 files changed, 31 insertions, 21 deletions
diff --git a/src/types.cpp b/src/types.cpp
index 8c39b9979..b381ba9c9 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -1214,27 +1214,6 @@ bool is_type_slice(Type *t) {
t = base_type(t);
return t->kind == Type_Slice;
}
-bool is_type_u8_slice(Type *t) {
- t = base_type(t);
- if (t->kind == Type_Slice) {
- return is_type_u8(t->Slice.elem);
- }
- return false;
-}
-bool is_type_u8_array(Type *t) {
- t = base_type(t);
- if (t->kind == Type_Array) {
- return is_type_u8(t->Array.elem);
- }
- return false;
-}
-bool is_type_u8_ptr(Type *t) {
- t = base_type(t);
- if (t->kind == Type_Pointer) {
- return is_type_u8(t->Slice.elem);
- }
- return false;
-}
bool is_type_proc(Type *t) {
t = base_type(t);
return t->kind == Type_Proc;
@@ -1278,6 +1257,37 @@ bool is_type_relative_slice(Type *t) {
return t->kind == Type_RelativeSlice;
}
+bool is_type_u8_slice(Type *t) {
+ t = base_type(t);
+ if (t->kind == Type_Slice) {
+ return is_type_u8(t->Slice.elem);
+ }
+ return false;
+}
+bool is_type_u8_array(Type *t) {
+ t = base_type(t);
+ if (t->kind == Type_Array) {
+ return is_type_u8(t->Array.elem);
+ }
+ return false;
+}
+bool is_type_u8_ptr(Type *t) {
+ t = base_type(t);
+ if (t->kind == Type_Pointer) {
+ return is_type_u8(t->Slice.elem);
+ }
+ return false;
+}
+bool is_type_rune_array(Type *t) {
+ t = base_type(t);
+ if (t->kind == Type_Array) {
+ return is_type_rune(t->Array.elem);
+ }
+ return false;
+}
+
+
+
Type *core_array_type(Type *t) {
for (;;) {