pub(super) fn coerce(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool {
        let from_ty = self.resolve_ty_shallow(from_ty).into_owned();
        let to_ty = self.resolve_ty_shallow(to_ty);
        self.coerce_inner(from_ty, &to_ty)
    }
/// Unify two types, but may coerce the first one to the second one
/// using "implicit coercion rules" if needed.
Unify two types, but may coerce the first one to the second one
using "implicit coercion rules" if needed.
Unify two types but may coerce the first one to the second one using " implicit coercion rules " if needed .
pub(super) fn coerce(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool {
        let from_ty = self.resolve_ty_shallow(from_ty).into_owned();
        let to_ty = self.resolve_ty_shallow(to_ty);
        self.coerce_inner(from_ty, &to_ty)
    }
pub ( super ) fn coerce ( & mut self , from_ty : & Ty , to_ty : & Ty ) -> bool { let from_ty = self . resolve_ty_shallow ( from_ty ) . into_owned ( ) ; let to_ty = self . resolve_ty_shallow ( to_ty ) ; self . coerce_inner ( from_ty , & to_ty ) }
Unify two types, but may coerce the first one to the second one
using "implicit coercion rules" if needed.
Unify two types but may coerce the first one to the second one using " implicit coercion rules " if needed .
&mut self
from_ty
&Ty
to_ty
&Ty
&mut self
from_ty
&Ty
to_ty
&Ty