pub fn get_unbound_generic_candidates<'tcx>(tcx: TyCtxt<'tcx>) -> Vec<Ty<'tcx>>
if type parameter is unbound, e.g., T in fn foo<T>(), we use some predefined types to substitute it
T
fn foo<T>()