Rollup merge of #126354 - compiler-errors:variance, r=lcnr

Use `Variance` glob imported variants everywhere

Fully commit to using the globbed variance. Could be convinced the other way, and change this PR to not use the globbed variants anywhere, but I'd rather we do one or the other.

r? lcnr
This commit is contained in:
Matthias Krüger 2024-06-15 10:56:40 +02:00 committed by GitHub
commit 335e320baa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 74 additions and 111 deletions

View file

@ -225,13 +225,8 @@ impl<'tcx> Inliner<'tcx> {
// Normally, this shouldn't be required, but trait normalization failure can create a
// validation ICE.
let output_type = callee_body.return_ty();
if !util::relate_types(
self.tcx,
self.param_env,
ty::Variance::Covariant,
output_type,
destination_ty,
) {
if !util::relate_types(self.tcx, self.param_env, ty::Covariant, output_type, destination_ty)
{
trace!(?output_type, ?destination_ty);
return Err("failed to normalize return type");
}
@ -261,13 +256,8 @@ impl<'tcx> Inliner<'tcx> {
self_arg_ty.into_iter().chain(arg_tuple_tys).zip(callee_body.args_iter())
{
let input_type = callee_body.local_decls[input].ty;
if !util::relate_types(
self.tcx,
self.param_env,
ty::Variance::Covariant,
input_type,
arg_ty,
) {
if !util::relate_types(self.tcx, self.param_env, ty::Covariant, input_type, arg_ty)
{
trace!(?arg_ty, ?input_type);
return Err("failed to normalize tuple argument type");
}
@ -276,13 +266,8 @@ impl<'tcx> Inliner<'tcx> {
for (arg, input) in args.iter().zip(callee_body.args_iter()) {
let input_type = callee_body.local_decls[input].ty;
let arg_ty = arg.node.ty(&caller_body.local_decls, self.tcx);
if !util::relate_types(
self.tcx,
self.param_env,
ty::Variance::Covariant,
input_type,
arg_ty,
) {
if !util::relate_types(self.tcx, self.param_env, ty::Covariant, input_type, arg_ty)
{
trace!(?arg_ty, ?input_type);
return Err("failed to normalize argument type");
}