From f1706b994b4e18718a04f4f30afed1e9b7f9b085 Mon Sep 17 00:00:00 2001 From: teoxoy <28601907+teoxoy@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:11:33 +0100 Subject: [PATCH] [valid] error on non fully evaluated const-expressions --- naga/src/valid/expression.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/naga/src/valid/expression.rs b/naga/src/valid/expression.rs index 289eb02011..055ca6dfdb 100644 --- a/naga/src/valid/expression.rs +++ b/naga/src/valid/expression.rs @@ -135,6 +135,8 @@ pub enum ExpressionError { pub enum ConstExpressionError { #[error("The expression is not a constant or override expression")] NonConstOrOverride, + #[error("The expression is not a fully evaluated constant expression")] + NonFullyEvaluatedConst, #[error(transparent)] Compose(#[from] super::ComposeError), #[error("Splatting {0:?} can't be done")] @@ -211,6 +213,9 @@ impl super::Validator { crate::TypeInner::Scalar { .. } => {} _ => return Err(super::ConstExpressionError::InvalidSplatType(value)), }, + _ if global_expr_kind.is_const(handle) => { + return Err(super::ConstExpressionError::NonFullyEvaluatedConst) + } // the constant evaluator will report errors about override-expressions _ => {} }