diff --git a/src/valid/function.rs b/src/valid/function.rs index 411ef7ce18..d0eeab1b5c 100644 --- a/src/valid/function.rs +++ b/src/valid/function.rs @@ -786,12 +786,17 @@ impl super::Validator { constants: &Arena, ) -> Result<(), LocalVariableError> { log::debug!("var {:?}", var); - if !self.types[var.ty.index()] + let type_info = self + .types + .get(var.ty.index()) + .ok_or(LocalVariableError::InvalidType(var.ty))?; + if !type_info .flags .contains(super::TypeFlags::DATA | super::TypeFlags::SIZED) { return Err(LocalVariableError::InvalidType(var.ty)); } + if let Some(const_handle) = var.init { match constants[const_handle].inner { crate::ConstantInner::Scalar { width, ref value } => {