naga/valid/expression/
builtin.rs1use crate::arena::Handle;
2
3#[derive(Clone, Debug, thiserror::Error)]
4#[cfg_attr(test, derive(PartialEq))]
5pub enum ZeroValueError {
6 #[error("ZeroValue construction of runtime-sized array is not allowed")]
7 RuntimeSizedArray,
8}
9
10pub fn validate_zero_value(
11 self_ty_handle: Handle<crate::Type>,
12 gctx: crate::proc::GlobalCtx,
13) -> Result<(), ZeroValueError> {
14 use crate::TypeInner as Ti;
15 match gctx.types[self_ty_handle].inner {
16 Ti::Array {
17 base: _,
18 size: crate::ArraySize::Dynamic,
19 stride: _,
20 } => {
21 log::error!("Constructing zero value of runtime-sized array");
22 Err(ZeroValueError::RuntimeSizedArray)
23 }
24 _ => Ok(()),
25 }
26}