pub(crate) fn layout_of<'tcx>( tcx: TyCtxt<'tcx>, _key: PseudoCanonicalInput<'tcx, Ty<'tcx>>, cycle: Cycle<'tcx>, err: Diag<'_>, ) -> Result<TyAndLayout<'tcx>, &'tcx LayoutError<'tcx>>