Browse Source

Allow polymorphic #simd array as return type

Jeroen van Rijn 4 tháng trước cách đây
mục cha
commit
30c6fea9e9
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      src/check_type.cpp

+ 4 - 1
src/check_type.cpp

@@ -3297,8 +3297,11 @@ gb_internal void check_array_type_internal(CheckerContext *ctx, Ast *e, Type **t
 				if (generic_type != nullptr) {
 					// Ignore
 				} else if (count < 1 || !is_power_of_two(count)) {
-					error(at->count, "Invalid length for #simd, expected a power of two length, got '%lld'", cast(long long)count);
 					*type = alloc_type_array(elem, count, generic_type);
+					if (ctx->disallow_polymorphic_return_types && count == 0) {
+						return;
+					}
+					error(at->count, "Invalid length for #simd, expected a power of two length, got '%lld'", cast(long long)count);
 					return;
 				}