When is the turbofish on `collect` actually required here versus optional?let s = nums.iter().copied().collect::<std::collections::HashSet<i32>>();