[spirv-reader][ir] Error on non-array stride.

Error if an `ArrayStride` decoration is set on a non-array type.

Bug: 391482902
Change-Id: I63cd33cf207c71ee12f3d790caa694f33859f034
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/247936
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
index 8ed6a027..994df0d 100644
--- a/src/tint/lang/spirv/reader/parser/parser.cc
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -554,6 +554,11 @@
             if (set_as_storage_buffer) {
                 TINT_ASSERT(type->kind() == spvtools::opt::analysis::Type::kStruct);
             }
+            // ArrayStride is only handled on the array type for now
+            if (array_stride > 0) {
+                TINT_ASSERT(type->kind() == spvtools::opt::analysis::Type::kArray ||
+                            type->kind() == spvtools::opt::analysis::Type::kRuntimeArray);
+            }
 
             switch (type->kind()) {
                 case spvtools::opt::analysis::Type::kVoid: {