Fix fallout in libs. For the most part I just tagged impls as #[old_impl_check].

This commit is contained in:
Niko Matsakis 2015-01-05 14:01:31 -05:00
parent 6539cb417f
commit 3ed7f067dc
11 changed files with 39 additions and 3 deletions

View File

@ -1417,7 +1417,7 @@ pub type MutTraversal<'a, K, V> = AbsTraversal<ElemsAndEdges<Zip<slice::Iter<'a,
/// An owning traversal over a node's entries and edges /// An owning traversal over a node's entries and edges
pub type MoveTraversal<K, V> = AbsTraversal<MoveTraversalImpl<K, V>>; pub type MoveTraversal<K, V> = AbsTraversal<MoveTraversalImpl<K, V>>;
#[old_impl_check]
impl<K, V, E, Impl: TraversalImpl<K, V, E>> Iterator for AbsTraversal<Impl> { impl<K, V, E, Impl: TraversalImpl<K, V, E>> Iterator for AbsTraversal<Impl> {
type Item = TraversalItem<K, V, E>; type Item = TraversalItem<K, V, E>;
@ -1433,6 +1433,7 @@ impl<K, V, E, Impl: TraversalImpl<K, V, E>> Iterator for AbsTraversal<Impl> {
} }
} }
#[old_impl_check]
impl<K, V, E, Impl: TraversalImpl<K, V, E>> DoubleEndedIterator for AbsTraversal<Impl> { impl<K, V, E, Impl: TraversalImpl<K, V, E>> DoubleEndedIterator for AbsTraversal<Impl> {
fn next_back(&mut self) -> Option<TraversalItem<K, V, E>> { fn next_back(&mut self) -> Option<TraversalItem<K, V, E>> {
let tail_is_edge = self.tail_is_edge; let tail_is_edge = self.tail_is_edge;

View File

@ -26,6 +26,7 @@
#![feature(unsafe_destructor, slicing_syntax)] #![feature(unsafe_destructor, slicing_syntax)]
#![feature(unboxed_closures)] #![feature(unboxed_closures)]
#![feature(old_orphan_check)] #![feature(old_orphan_check)]
#![feature(old_impl_check)]
#![feature(associated_types)] #![feature(associated_types)]
#![no_std] #![no_std]

View File

@ -28,6 +28,7 @@
#![feature(rustc_diagnostic_macros)] #![feature(rustc_diagnostic_macros)]
#![feature(unboxed_closures)] #![feature(unboxed_closures)]
#![feature(old_orphan_check)] #![feature(old_orphan_check)]
#![feature(old_impl_check)]
#![feature(associated_types)] #![feature(associated_types)]
extern crate arena; extern crate arena;

View File

@ -1349,6 +1349,7 @@ impl<'tcx, T:Repr<'tcx>> Repr<'tcx> for ty::Binder<T> {
} }
} }
#[old_impl_check]
impl<'tcx, S, H, K, V> Repr<'tcx> for HashMap<K,V,H> impl<'tcx, S, H, K, V> Repr<'tcx> for HashMap<K,V,H>
where K : Hash<S> + Eq + Repr<'tcx>, where K : Hash<S> + Eq + Repr<'tcx>,
V : Repr<'tcx>, V : Repr<'tcx>,

View File

@ -156,6 +156,7 @@ impl<
} }
} }
#[old_impl_check]
impl< impl<
K: Encodable + Hash<X> + Eq, K: Encodable + Hash<X> + Eq,
V: Encodable, V: Encodable,
@ -175,6 +176,7 @@ impl<
} }
} }
#[old_impl_check]
impl< impl<
K: Decodable + Hash<S> + Eq, K: Decodable + Hash<S> + Eq,
V: Decodable, V: Decodable,
@ -195,6 +197,7 @@ impl<
} }
} }
#[old_impl_check]
impl< impl<
T: Encodable + Hash<X> + Eq, T: Encodable + Hash<X> + Eq,
X, X,
@ -212,6 +215,7 @@ impl<
} }
} }
#[old_impl_check]
impl< impl<
T: Decodable + Hash<S> + Eq, T: Decodable + Hash<S> + Eq,
S, S,

View File

@ -26,6 +26,7 @@ Core encoding and decoding interfaces.
#![feature(macro_rules, default_type_params, phase, slicing_syntax, globs)] #![feature(macro_rules, default_type_params, phase, slicing_syntax, globs)]
#![feature(unboxed_closures)] #![feature(unboxed_closures)]
#![feature(associated_types)] #![feature(associated_types)]
#![feature(old_impl_check)]
// test harness access // test harness access
#[cfg(test)] #[cfg(test)]

View File

@ -439,6 +439,7 @@ impl<K, V, M> SearchResult<K, V, M> {
} }
} }
#[old_impl_check]
impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> HashMap<K, V, H> { impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> HashMap<K, V, H> {
fn make_hash<X: ?Sized + Hash<S>>(&self, x: &X) -> SafeHash { fn make_hash<X: ?Sized + Hash<S>>(&self, x: &X) -> SafeHash {
table::make_hash(&self.hasher, x) table::make_hash(&self.hasher, x)
@ -517,6 +518,7 @@ impl<K: Hash + Eq, V> HashMap<K, V, RandomSipHasher> {
} }
} }
#[old_impl_check]
impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> HashMap<K, V, H> { impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> HashMap<K, V, H> {
/// Creates an empty hashmap which will use the given hasher to hash keys. /// Creates an empty hashmap which will use the given hasher to hash keys.
/// ///
@ -1191,6 +1193,7 @@ fn search_entry_hashed<'a, K, V, Q: ?Sized>(table: &'a mut RawTable<K,V>, hash:
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S>, V: PartialEq, S, H: Hasher<S>> PartialEq for HashMap<K, V, H> { impl<K: Eq + Hash<S>, V: PartialEq, S, H: Hasher<S>> PartialEq for HashMap<K, V, H> {
fn eq(&self, other: &HashMap<K, V, H>) -> bool { fn eq(&self, other: &HashMap<K, V, H>) -> bool {
if self.len() != other.len() { return false; } if self.len() != other.len() { return false; }
@ -1202,9 +1205,11 @@ impl<K: Eq + Hash<S>, V: PartialEq, S, H: Hasher<S>> PartialEq for HashMap<K, V,
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S>, V: Eq, S, H: Hasher<S>> Eq for HashMap<K, V, H> {} impl<K: Eq + Hash<S>, V: Eq, S, H: Hasher<S>> Eq for HashMap<K, V, H> {}
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S> + Show, V: Show, S, H: Hasher<S>> Show for HashMap<K, V, H> { impl<K: Eq + Hash<S> + Show, V: Show, S, H: Hasher<S>> Show for HashMap<K, V, H> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(write!(f, "{{")); try!(write!(f, "{{"));
@ -1219,6 +1224,7 @@ impl<K: Eq + Hash<S> + Show, V: Show, S, H: Hasher<S>> Show for HashMap<K, V, H>
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> Default for HashMap<K, V, H> { impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> Default for HashMap<K, V, H> {
#[stable] #[stable]
fn default() -> HashMap<K, V, H> { fn default() -> HashMap<K, V, H> {
@ -1227,6 +1233,7 @@ impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> Default for HashMap<K, V, H>
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Hash<S> + Eq, Q: ?Sized, V, S, H: Hasher<S>> Index<Q> for HashMap<K, V, H> impl<K: Hash<S> + Eq, Q: ?Sized, V, S, H: Hasher<S>> Index<Q> for HashMap<K, V, H>
where Q: BorrowFrom<K> + Hash<S> + Eq where Q: BorrowFrom<K> + Hash<S> + Eq
{ {
@ -1239,6 +1246,7 @@ impl<K: Hash<S> + Eq, Q: ?Sized, V, S, H: Hasher<S>> Index<Q> for HashMap<K, V,
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Hash<S> + Eq, Q: ?Sized, V, S, H: Hasher<S>> IndexMut<Q> for HashMap<K, V, H> impl<K: Hash<S> + Eq, Q: ?Sized, V, S, H: Hasher<S>> IndexMut<Q> for HashMap<K, V, H>
where Q: BorrowFrom<K> + Hash<S> + Eq where Q: BorrowFrom<K> + Hash<S> + Eq
{ {
@ -1472,6 +1480,7 @@ impl<'a, Q: ?Sized + 'a + ToOwned<K>, K: 'a, V: 'a> VacantEntry<'a, Q, K, V> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> FromIterator<(K, V)> for HashMap<K, V, H> { impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> FromIterator<(K, V)> for HashMap<K, V, H> {
fn from_iter<T: Iterator<Item=(K, V)>>(iter: T) -> HashMap<K, V, H> { fn from_iter<T: Iterator<Item=(K, V)>>(iter: T) -> HashMap<K, V, H> {
let lower = iter.size_hint().0; let lower = iter.size_hint().0;
@ -1482,6 +1491,7 @@ impl<K: Eq + Hash<S>, V, S, H: Hasher<S> + Default> FromIterator<(K, V)> for Has
} }
#[stable] #[stable]
#[old_impl_check]
impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> Extend<(K, V)> for HashMap<K, V, H> { impl<K: Eq + Hash<S>, V, S, H: Hasher<S>> Extend<(K, V)> for HashMap<K, V, H> {
fn extend<T: Iterator<Item=(K, V)>>(&mut self, mut iter: T) { fn extend<T: Iterator<Item=(K, V)>>(&mut self, mut iter: T) {
for (k, v) in iter { for (k, v) in iter {

View File

@ -128,6 +128,7 @@ impl<T: Hash + Eq> HashSet<T, RandomSipHasher> {
} }
} }
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S>> HashSet<T, H> { impl<T: Eq + Hash<S>, S, H: Hasher<S>> HashSet<T, H> {
/// Creates a new empty hash set which will use the given hasher to hash /// Creates a new empty hash set which will use the given hasher to hash
/// keys. /// keys.
@ -571,6 +572,7 @@ impl<T: Eq + Hash<S>, S, H: Hasher<S>> HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S>> PartialEq for HashSet<T, H> { impl<T: Eq + Hash<S>, S, H: Hasher<S>> PartialEq for HashSet<T, H> {
fn eq(&self, other: &HashSet<T, H>) -> bool { fn eq(&self, other: &HashSet<T, H>) -> bool {
if self.len() != other.len() { return false; } if self.len() != other.len() { return false; }
@ -580,9 +582,11 @@ impl<T: Eq + Hash<S>, S, H: Hasher<S>> PartialEq for HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S>> Eq for HashSet<T, H> {} impl<T: Eq + Hash<S>, S, H: Hasher<S>> Eq for HashSet<T, H> {}
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S> + fmt::Show, S, H: Hasher<S>> fmt::Show for HashSet<T, H> { impl<T: Eq + Hash<S> + fmt::Show, S, H: Hasher<S>> fmt::Show for HashSet<T, H> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
try!(write!(f, "{{")); try!(write!(f, "{{"));
@ -597,6 +601,7 @@ impl<T: Eq + Hash<S> + fmt::Show, S, H: Hasher<S>> fmt::Show for HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> FromIterator<T> for HashSet<T, H> { impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> FromIterator<T> for HashSet<T, H> {
fn from_iter<I: Iterator<Item=T>>(iter: I) -> HashSet<T, H> { fn from_iter<I: Iterator<Item=T>>(iter: I) -> HashSet<T, H> {
let lower = iter.size_hint().0; let lower = iter.size_hint().0;
@ -607,6 +612,7 @@ impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> FromIterator<T> for HashSet<T,
} }
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S>> Extend<T> for HashSet<T, H> { impl<T: Eq + Hash<S>, S, H: Hasher<S>> Extend<T> for HashSet<T, H> {
fn extend<I: Iterator<Item=T>>(&mut self, mut iter: I) { fn extend<I: Iterator<Item=T>>(&mut self, mut iter: I) {
for k in iter { for k in iter {
@ -616,6 +622,7 @@ impl<T: Eq + Hash<S>, S, H: Hasher<S>> Extend<T> for HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> Default for HashSet<T, H> { impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> Default for HashSet<T, H> {
#[stable] #[stable]
fn default() -> HashSet<T, H> { fn default() -> HashSet<T, H> {
@ -624,6 +631,7 @@ impl<T: Eq + Hash<S>, S, H: Hasher<S> + Default> Default for HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default> impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default>
BitOr<&'b HashSet<T, H>> for &'a HashSet<T, H> { BitOr<&'b HashSet<T, H>> for &'a HashSet<T, H> {
type Output = HashSet<T, H>; type Output = HashSet<T, H>;
@ -654,6 +662,7 @@ BitOr<&'b HashSet<T, H>> for &'a HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default> impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default>
BitAnd<&'b HashSet<T, H>> for &'a HashSet<T, H> { BitAnd<&'b HashSet<T, H>> for &'a HashSet<T, H> {
type Output = HashSet<T, H>; type Output = HashSet<T, H>;
@ -684,6 +693,7 @@ BitAnd<&'b HashSet<T, H>> for &'a HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default> impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default>
BitXor<&'b HashSet<T, H>> for &'a HashSet<T, H> { BitXor<&'b HashSet<T, H>> for &'a HashSet<T, H> {
type Output = HashSet<T, H>; type Output = HashSet<T, H>;
@ -714,6 +724,7 @@ BitXor<&'b HashSet<T, H>> for &'a HashSet<T, H> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default> impl<'a, 'b, T: Eq + Hash<S> + Clone, S, H: Hasher<S> + Default>
Sub<&'b HashSet<T, H>> for &'a HashSet<T, H> { Sub<&'b HashSet<T, H>> for &'a HashSet<T, H> {
type Output = HashSet<T, H>; type Output = HashSet<T, H>;
@ -816,6 +827,7 @@ impl<'a, K: 'a> Iterator for Drain<'a, K> {
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, T, S, H> Iterator for Intersection<'a, T, H> impl<'a, T, S, H> Iterator for Intersection<'a, T, H>
where T: Eq + Hash<S>, H: Hasher<S> where T: Eq + Hash<S>, H: Hasher<S>
{ {
@ -839,6 +851,7 @@ impl<'a, T, S, H> Iterator for Intersection<'a, T, H>
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, T, S, H> Iterator for Difference<'a, T, H> impl<'a, T, S, H> Iterator for Difference<'a, T, H>
where T: Eq + Hash<S>, H: Hasher<S> where T: Eq + Hash<S>, H: Hasher<S>
{ {
@ -862,6 +875,7 @@ impl<'a, T, S, H> Iterator for Difference<'a, T, H>
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, T, S, H> Iterator for SymmetricDifference<'a, T, H> impl<'a, T, S, H> Iterator for SymmetricDifference<'a, T, H>
where T: Eq + Hash<S>, H: Hasher<S> where T: Eq + Hash<S>, H: Hasher<S>
{ {
@ -872,6 +886,7 @@ impl<'a, T, S, H> Iterator for SymmetricDifference<'a, T, H>
} }
#[stable] #[stable]
#[old_impl_check]
impl<'a, T, S, H> Iterator for Union<'a, T, H> impl<'a, T, S, H> Iterator for Union<'a, T, H>
where T: Eq + Hash<S>, H: Hasher<S> where T: Eq + Hash<S>, H: Hasher<S>
{ {

View File

@ -1604,6 +1604,7 @@ pub struct IncomingConnections<'a, A: ?Sized +'a> {
inc: &'a mut A, inc: &'a mut A,
} }
#[old_impl_check]
impl<'a, T, A: ?Sized + Acceptor<T>> Iterator for IncomingConnections<'a, A> { impl<'a, T, A: ?Sized + Acceptor<T>> Iterator for IncomingConnections<'a, A> {
type Item = IoResult<T>; type Item = IoResult<T>;

View File

@ -108,6 +108,7 @@
#![feature(default_type_params, phase, lang_items, unsafe_destructor)] #![feature(default_type_params, phase, lang_items, unsafe_destructor)]
#![feature(slicing_syntax, unboxed_closures)] #![feature(slicing_syntax, unboxed_closures)]
#![feature(old_orphan_check)] #![feature(old_orphan_check)]
#![feature(old_impl_check)]
#![feature(associated_types)] #![feature(associated_types)]
// Don't link to std. We are std. // Don't link to std. We are std.

View File

@ -982,8 +982,8 @@ pub enum Sign {
Plus Plus
} }
impl<T> Sign where T: Int { impl Sign {
pub fn new(n: T) -> Sign { pub fn new<T:Int>(n: T) -> Sign {
if n < Int::zero() { if n < Int::zero() {
Minus Minus
} else { } else {