From c9ae35edbb83f85ad7da2725eeaa2fca6608c7c3 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Fri, 17 Nov 2023 11:07:42 -0800 Subject: [PATCH] [naga wgsl-in] Include base when printing pointer and array types. When formatting `TypeInner::Pointer` and `TypeInner::Array` as WGSL source code, bother to actually generate text for the target/element type. This avoids producing ridiculous messages like: > the type of `foo` is expected to be `array`, but got `array` --- naga/src/front/wgsl/to_wgsl.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/naga/src/front/wgsl/to_wgsl.rs b/naga/src/front/wgsl/to_wgsl.rs index 7af3debc4c..bfff363b3a 100644 --- a/naga/src/front/wgsl/to_wgsl.rs +++ b/naga/src/front/wgsl/to_wgsl.rs @@ -57,16 +57,14 @@ impl crate::TypeInner { format!("atomic<{}>", scalar.to_wgsl()) } Ti::Pointer { base, .. } => { - let base = &gctx.types[base]; - let name = base.name.as_deref().unwrap_or("unknown"); + let name = base.to_wgsl(gctx); format!("ptr<{name}>") } Ti::ValuePointer { scalar, .. } => { format!("ptr<{}>", scalar.to_wgsl()) } Ti::Array { base, size, .. } => { - let member_type = &gctx.types[base]; - let base = member_type.name.as_deref().unwrap_or("unknown"); + let base = base.to_wgsl(gctx); match size { crate::ArraySize::Constant(size) => format!("array<{base}, {size}>"), crate::ArraySize::Dynamic => format!("array<{base}>"),