fn project_ty<'tcx>( tcx: TyCtxt<'tcx>, ty: Ty<'tcx>, elem: PlaceElem<'tcx>) -> (Ty<'tcx>, Option<VariantIdx>)