mv utility methods into separate module
This commit is contained in:
parent
45f441a7b4
commit
6aa611a84c
6 changed files with 72 additions and 65 deletions
|
@ -14,7 +14,7 @@ use rustc_target::abi::VariantIdx;
|
|||
use rustc_target::spec::abi::Abi;
|
||||
|
||||
use crate::simplify::{remove_dead_blocks, CfgSimplifier};
|
||||
use crate::validate;
|
||||
use crate::util;
|
||||
use crate::MirPass;
|
||||
use std::iter;
|
||||
use std::ops::{Range, RangeFrom};
|
||||
|
@ -180,7 +180,7 @@ impl<'tcx> Inliner<'tcx> {
|
|||
let TerminatorKind::Call { args, destination, .. } = &terminator.kind else { bug!() };
|
||||
let destination_ty = destination.ty(&caller_body.local_decls, self.tcx).ty;
|
||||
let output_type = callee_body.return_ty();
|
||||
if !validate::is_subtype(self.tcx, self.param_env, output_type, destination_ty) {
|
||||
if !util::is_subtype(self.tcx, self.param_env, output_type, destination_ty) {
|
||||
trace!(?output_type, ?destination_ty);
|
||||
return Err("failed to normalize return type");
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ impl<'tcx> Inliner<'tcx> {
|
|||
arg_tuple_tys.iter().zip(callee_body.args_iter().skip(skipped_args))
|
||||
{
|
||||
let input_type = callee_body.local_decls[input].ty;
|
||||
if !validate::is_subtype(self.tcx, self.param_env, input_type, arg_ty) {
|
||||
if !util::is_subtype(self.tcx, self.param_env, input_type, arg_ty) {
|
||||
trace!(?arg_ty, ?input_type);
|
||||
return Err("failed to normalize tuple argument type");
|
||||
}
|
||||
|
@ -209,7 +209,7 @@ 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.ty(&caller_body.local_decls, self.tcx);
|
||||
if !validate::is_subtype(self.tcx, self.param_env, input_type, arg_ty) {
|
||||
if !util::is_subtype(self.tcx, self.param_env, input_type, arg_ty) {
|
||||
trace!(?arg_ty, ?input_type);
|
||||
return Err("failed to normalize argument type");
|
||||
}
|
||||
|
@ -847,7 +847,7 @@ impl<'tcx> Visitor<'tcx> for CostChecker<'_, 'tcx> {
|
|||
let parent = Place { local, projection: self.tcx.intern_place_elems(proj_base) };
|
||||
let parent_ty = parent.ty(&self.callee_body.local_decls, self.tcx);
|
||||
let check_equal = |this: &mut Self, f_ty| {
|
||||
if !validate::is_equal_up_to_subtyping(this.tcx, this.param_env, ty, f_ty) {
|
||||
if !util::is_equal_up_to_subtyping(this.tcx, this.param_env, ty, f_ty) {
|
||||
trace!(?ty, ?f_ty);
|
||||
this.validation = Err("failed to normalize projection type");
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue