pub fn substitute<'tcx, T>( tcx: TyCtxt<'tcx>, typing_env: TypingEnv<'tcx>, args: Option<GenericArgsRef<'tcx>>, x: T, ) -> Twhere T: TypeFoldable<TyCtxt<'tcx>>,