if cases.all(|c| c.tys.len() == 0) {
// All bodies empty -> intlike
let discrs = cases.map(|c| c.discr);
- return CEnum(discrs.min(), discrs.max());
+ return CEnum(*discrs.iter().min().unwrap(), *discrs.iter().max().unwrap());
}
if cases.len() == 1 {
}
General(ref cases) => {
let case = &cases[discr as uint];
- let max_sz = cases.map(|s| s.size).max();
+ let max_sz = cases.iter().transform(|x| x.size).max().unwrap();
let discr_ty = C_int(ccx, discr);
let contents = build_const_struct(ccx, case,
~[discr_ty] + vals);
fn find(&self, p: &fn(&A) -> bool) -> Option<A>;
}
-pub trait CopyableOrderedIter<A:Copy + Ord> {
- fn min(&self) -> A;
- fn max(&self) -> A;
-}
-
// A trait for sequences that can be built by imperatively pushing elements
// onto them.
pub trait Buildable<A> {
pub use container::{Container, Mutable, Map, Set};
pub use hash::Hash;
pub use old_iter::{BaseIter, ReverseIter, ExtendedIter, EqIter};
-pub use old_iter::{CopyableIter, CopyableOrderedIter};
+pub use old_iter::CopyableIter;
pub use iter::{Times, FromIter};
-pub use iterator::{Iterator, IteratorUtil};
+pub use iterator::{Iterator, IteratorUtil, OrdIterator};
pub use num::{Num, NumCast};
pub use num::{Orderable, Signed, Unsigned, Round};
pub use num::{Algebraic, Trigonometric, Exponential, Hyperbolic};
}
}
-impl<'self,A:Copy + Ord> old_iter::CopyableOrderedIter<A> for &'self [A] {
- fn min(&self) -> A { old_iter::min(self) }
- fn max(&self) -> A { old_iter::max(self) }
-}
-
-// FIXME(#4148): This should be redundant
-impl<A:Copy + Ord> old_iter::CopyableOrderedIter<A> for ~[A] {
- fn min(&self) -> A { old_iter::min(self) }
- fn max(&self) -> A { old_iter::max(self) }
-}
-
-// FIXME(#4148): This should be redundant
-impl<A:Copy + Ord> old_iter::CopyableOrderedIter<A> for @[A] {
- fn min(&self) -> A { old_iter::min(self) }
- fn max(&self) -> A { old_iter::max(self) }
-}
-
impl<A:Clone> Clone for ~[A] {
#[inline]
fn clone(&self) -> ~[A] {
old_iter::find(self, f)
}
}
-
-impl<A: Copy+Ord> old_iter::CopyableOrderedIter<A> for OptVec<A> {
- #[inline(always)]
- fn min(&self) -> A { old_iter::min(self) }
- #[inline(always)]
- fn max(&self) -> A { old_iter::max(self) }
-}