diff --git a/src/librustc_data_structures/sorted_map.rs b/src/librustc_data_structures/sorted_map.rs index 29d99a6aef3f2..212c83894a619 100644 --- a/src/librustc_data_structures/sorted_map.rs +++ b/src/librustc_data_structures/sorted_map.rs @@ -10,7 +10,7 @@ use std::borrow::Borrow; use std::cmp::Ordering; -use std::convert::From; +use std::iter::FromIterator; use std::mem; use std::ops::{RangeBounds, Bound, Index, IndexMut}; @@ -272,9 +272,9 @@ impl> IndexMut for SortedMap { } } -impl> From for SortedMap { - fn from(data: I) -> Self { - let mut data: Vec<(K, V)> = data.collect(); +impl FromIterator<(K, V)> for SortedMap { + fn from_iter>(iter: T) -> Self { + let mut data: Vec<(K, V)> = iter.into_iter().collect(); data.sort_unstable_by(|&(ref k1, _), &(ref k2, _)| k1.cmp(k2)); data.dedup_by(|&mut (ref k1, _), &mut (ref k2, _)| { k1.cmp(k2) == Ordering::Equal