diff --git a/src/valid/type.rs b/src/valid/type.rs index a180831dff..101f93001f 100644 --- a/src/valid/type.rs +++ b/src/valid/type.rs @@ -268,9 +268,9 @@ impl super::Validator { // top-level `Struct`. But such pointers cannot be passed to // functions, stored in variables, etc. So, we mark them as not // `DATA`. - let data_flag = if base_info.flags.contains(TypeFlags::SIZED) { - TypeFlags::DATA | TypeFlags::ARGUMENT - } else if let crate::TypeInner::Struct { .. } = types[base].inner { + let data_flag = if base_info.flags.contains(TypeFlags::SIZED) + || matches!(types[base].inner, crate::TypeInner::Struct { .. }) + { TypeFlags::DATA | TypeFlags::ARGUMENT } else { TypeFlags::empty()