From da90d7aaa62be15af3dd3f5bfeb6d8ba6377f367 Mon Sep 17 00:00:00 2001 From: Jamie Nicol Date: Fri, 31 Jan 2025 13:18:58 +0000 Subject: [PATCH] [naga wgsl-in] Ensure ConstantEvaluator::cast_array() handles Constant expressions It must call ConstantEvaluator::check_and_get() to possibly retrieve the constant expression from a separate arena, like is currently done when evaluating `As` expressions for non-array casts. --- naga/src/proc/constant_evaluator.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/naga/src/proc/constant_evaluator.rs b/naga/src/proc/constant_evaluator.rs index be7c503a01..684b52c565 100644 --- a/naga/src/proc/constant_evaluator.rs +++ b/naga/src/proc/constant_evaluator.rs @@ -1717,6 +1717,8 @@ impl<'a> ConstantEvaluator<'a> { target: crate::Scalar, span: Span, ) -> Result, ConstantEvaluatorError> { + let expr = self.check_and_get(expr)?; + let Expression::Compose { ty, ref components } = self.expressions[expr] else { return self.cast(expr, target, span); };