Require pointers to be sized

This commit is contained in:
Caleb Zulawski 2022-08-04 03:49:16 +00:00
parent e2866c0a67
commit d00928aa69

View File

@ -1718,11 +1718,19 @@ unsupported {} from `{}` with element `{}` of size `{}` to `{}`"#,
);
match in_elem.kind() {
ty::RawPtr(_) => {}
ty::RawPtr(p) => require!(
p.ty.is_sized(bx.tcx.at(span), ty::ParamEnv::reveal_all()),
"cannot cast pointer to unsized type `{}`",
in_elem
),
_ => return_error!("expected pointer, got `{}`", in_elem),
}
match out_elem.kind() {
ty::RawPtr(_) => {}
ty::RawPtr(p) => require!(
p.ty.is_sized(bx.tcx.at(span), ty::ParamEnv::reveal_all()),
"cannot cast to pointer to unsized type `{}`",
out_elem
),
_ => return_error!("expected pointer, got `{}`", out_elem),
}