浏览代码

Allow polymorphic #simd array as return type

Jeroen van Rijn 4 月之前
父节点
当前提交
30c6fea9e9
共有 1 个文件被更改,包括 4 次插入1 次删除
  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;
 				}