]> git.lizzy.rs Git - rust.git/commitdiff
Use slice syntax instead of slice_to, etc.
authorNick Cameron <ncameron@mozilla.com>
Wed, 24 Sep 2014 11:41:09 +0000 (23:41 +1200)
committerNick Cameron <ncameron@mozilla.com>
Thu, 2 Oct 2014 00:19:45 +0000 (13:19 +1300)
81 files changed:
src/compiletest/runtest.rs
src/libcollections/bitv.rs
src/libcollections/ringbuf.rs
src/libcollections/slice.rs
src/libcollections/str.rs
src/libcollections/string.rs
src/libcollections/trie.rs
src/libcollections/vec.rs
src/libcore/fmt/float.rs
src/libcore/fmt/mod.rs
src/libcore/fmt/num.rs
src/libcore/slice.rs
src/libcore/str.rs
src/libcoretest/char.rs
src/libcoretest/iter.rs
src/libnative/io/net.rs
src/libnum/bigint.rs
src/librand/lib.rs
src/librbml/io.rs
src/librbml/lib.rs
src/libregex/compile.rs
src/libregex/parse.rs
src/libregex/test/tests.rs
src/libregex/vm.rs
src/libregex_macros/lib.rs
src/librustc/back/lto.rs
src/librustc/metadata/decoder.rs
src/librustc/metadata/tydecode.rs
src/librustc/middle/check_match.rs
src/librustc/middle/resolve.rs
src/librustc/middle/save/mod.rs
src/librustc/middle/trans/_match.rs
src/librustc/middle/trans/builder.rs
src/librustc/middle/trans/debuginfo.rs
src/librustc/middle/typeck/astconv.rs
src/librustc/middle/typeck/check/mod.rs
src/librustc/util/ppaux.rs
src/librustc_back/sha2.rs
src/librustdoc/clean/mod.rs
src/librustdoc/html/format.rs
src/librustdoc/html/render.rs
src/librustrt/unwind.rs
src/librustrt/util.rs
src/libserialize/json.rs
src/libstd/io/buffered.rs
src/libstd/io/comm_adapters.rs
src/libstd/io/fs.rs
src/libstd/io/mem.rs
src/libstd/io/mod.rs
src/libstd/io/net/ip.rs
src/libstd/io/net/udp.rs
src/libstd/io/util.rs
src/libstd/num/i16.rs
src/libstd/num/i32.rs
src/libstd/num/i64.rs
src/libstd/num/i8.rs
src/libstd/num/int.rs
src/libstd/num/int_macros.rs
src/libstd/num/strconv.rs
src/libstd/num/u16.rs
src/libstd/num/u32.rs
src/libstd/num/u64.rs
src/libstd/num/u8.rs
src/libstd/num/uint.rs
src/libstd/num/uint_macros.rs
src/libstd/path/mod.rs
src/libstd/path/posix.rs
src/libsyntax/ast_map/mod.rs
src/libsyntax/diagnostic.rs
src/libterm/terminfo/parser/compiled.rs
src/test/bench/shootout-fannkuch-redux.rs
src/test/bench/shootout-fasta-redux.rs
src/test/bench/shootout-fasta.rs
src/test/bench/shootout-k-nucleotide-pipes.rs
src/test/bench/shootout-k-nucleotide.rs
src/test/bench/shootout-reverse-complement.rs
src/test/compile-fail/issue-15730.rs
src/test/debuginfo/vec-slices.rs
src/test/run-pass/issue-3888-2.rs
src/test/run-pass/issue-4464.rs
src/test/run-pass/issue-8898.rs

index b48ccfc43742d51e839152a9cdea7b7ded08a5a7..2182bc895163005c9e8a4eec27ebb2e7352dea93 100644 (file)
@@ -874,7 +874,7 @@ fn check_error_patterns(props: &TestProps,
     if done { return; }
 
     let missing_patterns =
-        props.error_patterns.slice(next_err_idx, props.error_patterns.len());
+        props.error_patterns[next_err_idx..];
     if missing_patterns.len() == 1u {
         fatal_proc_rec(format!("error pattern '{}' not found!",
                               missing_patterns[0]).as_slice(),
index 60c9dfcff187c1c03882d8e224130658286af35e..9f26c0980131f447ce66ef28cf467551c290e3d1 100644 (file)
@@ -194,7 +194,7 @@ fn mask_words<'a>(&'a self, mut start: uint) -> MaskWords<'a> {
         if start > self.storage.len() {
             start = self.storage.len();
         }
-        let mut iter = self.storage.slice_from(start).iter();
+        let mut iter = self.storage[start..].iter();
         MaskWords {
           next_word: iter.next(),
           iter: iter,
index 02c8af2c470f3f3cb5c7905c2dfa234f03d80ea4..0e1c39535bed45e096665300c0c1409ceeb500d4 100644 (file)
@@ -271,7 +271,7 @@ pub fn mut_iter<'a>(&'a mut self) -> MutItems<'a, T> {
     ///     *num = *num - 2;
     /// }
     /// let b: &[_] = &[&mut 3, &mut 1, &mut 2];
-    /// assert_eq!(buf.iter_mut().collect::<Vec<&mut int>>().as_slice(), b);
+    /// assert_eq!(buf.iter_mut().collect::<Vec<&mut int>>()[], b);
     /// ```
     pub fn iter_mut<'a>(&'a mut self) -> MutItems<'a, T> {
         let start_index = raw_index(self.lo, self.elts.len(), 0);
@@ -291,7 +291,7 @@ pub fn iter_mut<'a>(&'a mut self) -> MutItems<'a, T> {
         } else {
             // Items to iterate goes from start_index to end_index:
             let (empty, elts) = self.elts.split_at_mut(0);
-            let remaining1 = elts.slice_mut(start_index, end_index);
+            let remaining1 = elts[mut start_index..end_index];
             MutItems { remaining1: remaining1,
                                  remaining2: empty,
                                  nelts: self.nelts }
index 45489bbf84eb4059f93649e6194b24b7de620dc6..9cd0161791658e18c9ef17fe0f05dd0e3d95ddc8 100644 (file)
 //! These traits include `ImmutableSlice`, which is defined for `&[T]` types,
 //! and `MutableSlice`, defined for `&mut [T]` types.
 //!
-//! An example is the method `.slice(a, b)` that returns an immutable "view" into
-//! a `Vec` or another slice from the index interval `[a, b)`:
+//! An example is the `slice` method which enables slicing syntax `[a..b]` that
+//! returns an immutable "view" into a `Vec` or another slice from the index
+//! interval `[a, b)`:
 //!
 //! ```rust
 //! let numbers = [0i, 1i, 2i];
-//! let last_numbers = numbers.slice(1, 3);
+//! let last_numbers = numbers[1..3];
 //! // last_numbers is now &[1i, 2i]
 //! ```
 //!
@@ -610,7 +611,7 @@ fn sort_by(self, compare: |&T, &T| -> Ordering) {
 
     #[inline]
     fn move_from(self, mut src: Vec<T>, start: uint, end: uint) -> uint {
-        for (a, b) in self.iter_mut().zip(src.slice_mut(start, end).iter_mut()) {
+        for (a, b) in self.iter_mut().zip(src[mut start..end].iter_mut()) {
             mem::swap(a, b);
         }
         cmp::min(self.len(), end-start)
@@ -702,7 +703,7 @@ fn next_permutation(self) -> bool {
         self.swap(j, i-1);
 
         // Step 4: Reverse the (previously) weakly decreasing part
-        self.slice_from_mut(i).reverse();
+        self[mut i..].reverse();
 
         true
     }
@@ -723,7 +724,7 @@ fn prev_permutation(self) -> bool {
         }
 
         // Step 2: Reverse the weakly increasing part
-        self.slice_from_mut(i).reverse();
+        self[mut i..].reverse();
 
         // Step 3: Find the rightmost element equal to or bigger than the pivot (i-1)
         let mut j = self.len() - 1;
@@ -990,7 +991,7 @@ fn test_last_mut() {
     fn test_slice() {
         // Test fixed length vector.
         let vec_fixed = [1i, 2, 3, 4];
-        let v_a = vec_fixed.slice(1u, vec_fixed.len()).to_vec();
+        let v_a = vec_fixed[1u..vec_fixed.len()].to_vec();
         assert_eq!(v_a.len(), 3u);
         let v_a = v_a.as_slice();
         assert_eq!(v_a[0], 2);
@@ -998,8 +999,8 @@ fn test_slice() {
         assert_eq!(v_a[2], 4);
 
         // Test on stack.
-        let vec_stack = &[1i, 2, 3];
-        let v_b = vec_stack.slice(1u, 3u).to_vec();
+        let vec_stack: &[_] = &[1i, 2, 3];
+        let v_b = vec_stack[1u..3u].to_vec();
         assert_eq!(v_b.len(), 2u);
         let v_b = v_b.as_slice();
         assert_eq!(v_b[0], 2);
@@ -1007,7 +1008,7 @@ fn test_slice() {
 
         // Test `Box<[T]>`
         let vec_unique = vec![1i, 2, 3, 4, 5, 6];
-        let v_d = vec_unique.slice(1u, 6u).to_vec();
+        let v_d = vec_unique[1u..6u].to_vec();
         assert_eq!(v_d.len(), 5u);
         let v_d = v_d.as_slice();
         assert_eq!(v_d[0], 2);
@@ -1020,21 +1021,21 @@ fn test_slice() {
     #[test]
     fn test_slice_from() {
         let vec: &[int] = &[1, 2, 3, 4];
-        assert_eq!(vec.slice_from(0), vec);
+        assert_eq!(vec[0..], vec);
         let b: &[int] = &[3, 4];
-        assert_eq!(vec.slice_from(2), b);
+        assert_eq!(vec[2..], b);
         let b: &[int] = &[];
-        assert_eq!(vec.slice_from(4), b);
+        assert_eq!(vec[4..], b);
     }
 
     #[test]
     fn test_slice_to() {
         let vec: &[int] = &[1, 2, 3, 4];
-        assert_eq!(vec.slice_to(4), vec);
+        assert_eq!(vec[..4], vec);
         let b: &[int] = &[1, 2];
-        assert_eq!(vec.slice_to(2), b);
+        assert_eq!(vec[..2], b);
         let b: &[int] = &[];
-        assert_eq!(vec.slice_to(0), b);
+        assert_eq!(vec[..0], b);
     }
 
 
@@ -1975,7 +1976,7 @@ fn test_move_from() {
         assert!(a == [7i,2,3,4]);
         let mut a = [1i,2,3,4,5];
         let b = vec![5i,6,7,8,9,0];
-        assert_eq!(a.slice_mut(2,4).move_from(b,1,6), 2);
+        assert_eq!(a[mut 2..4].move_from(b,1,6), 2);
         assert!(a == [1i,2,6,7,5]);
     }
 
@@ -1995,7 +1996,7 @@ fn test_copy_from() {
     #[test]
     fn test_reverse_part() {
         let mut values = [1i,2,3,4,5];
-        values.slice_mut(1, 4).reverse();
+        values[mut 1..4].reverse();
         assert!(values == [1,4,3,2,5]);
     }
 
@@ -2042,9 +2043,9 @@ macro_rules! t (
     fn test_bytes_set_memory() {
         use slice::bytes::MutableByteVector;
         let mut values = [1u8,2,3,4,5];
-        values.slice_mut(0,5).set_memory(0xAB);
+        values[mut 0..5].set_memory(0xAB);
         assert!(values == [0xAB, 0xAB, 0xAB, 0xAB, 0xAB]);
-        values.slice_mut(2,4).set_memory(0xFF);
+        values[mut 2..4].set_memory(0xFF);
         assert!(values == [0xAB, 0xAB, 0xFF, 0xFF, 0xAB]);
     }
 
@@ -2070,12 +2071,18 @@ fn test_mut_split_at() {
         let mut values = [1u8,2,3,4,5];
         {
             let (left, right) = values.split_at_mut(2);
-            assert!(left.slice(0, left.len()) == [1, 2]);
+            {
+                let left: &[_] = left;
+                assert!(left[0..left.len()] == [1, 2]);
+            }
             for p in left.iter_mut() {
                 *p += 1;
             }
 
-            assert!(right.slice(0, right.len()) == [3, 4, 5]);
+            {
+                let right: &[_] = right;
+                assert!(right[0..right.len()] == [3, 4, 5]);
+            }
             for p in right.iter_mut() {
                 *p += 2;
             }
@@ -2099,7 +2106,7 @@ fn test_iter_zero_sized() {
         }
         assert_eq!(cnt, 3);
 
-        for f in v.slice(1, 3).iter() {
+        for f in v[1..3].iter() {
             assert!(*f == Foo);
             cnt += 1;
         }
index d198e948ac83845837f2f04450714c371397f092..11bda25fee5859cd375f009fe909776cc54d9286 100644 (file)
@@ -1680,7 +1680,7 @@ fn test_chars_decoding() {
         let mut bytes = [0u8, ..4];
         for c in range(0u32, 0x110000).filter_map(|c| ::core::char::from_u32(c)) {
             let len = c.encode_utf8(bytes).unwrap_or(0);
-            let s = ::core::str::from_utf8(bytes.slice_to(len)).unwrap();
+            let s = ::core::str::from_utf8(bytes[..len]).unwrap();
             if Some(c) != s.chars().next() {
                 fail!("character {:x}={} does not decode correctly", c as u32, c);
             }
@@ -1692,7 +1692,7 @@ fn test_chars_rev_decoding() {
         let mut bytes = [0u8, ..4];
         for c in range(0u32, 0x110000).filter_map(|c| ::core::char::from_u32(c)) {
             let len = c.encode_utf8(bytes).unwrap_or(0);
-            let s = ::core::str::from_utf8(bytes.slice_to(len)).unwrap();
+            let s = ::core::str::from_utf8(bytes[..len]).unwrap();
             if Some(c) != s.chars().rev().next() {
                 fail!("character {:x}={} does not decode correctly", c as u32, c);
             }
index d6adbd302645a0ba7777242b2e3c2792e69091ca..31bd377a8dedf137fde4f2a1a90012324f32eb52 100644 (file)
@@ -160,7 +160,7 @@ fn safe_get(xs: &[u8], i: uint, total: uint) -> u8 {
 
         if i > 0 {
             unsafe {
-                res.as_mut_vec().push_all(v.slice_to(i))
+                res.as_mut_vec().push_all(v.[..i])
             };
         }
 
@@ -177,7 +177,7 @@ fn safe_get(xs: &[u8], i: uint, total: uint) -> u8 {
             macro_rules! error(() => ({
                 unsafe {
                     if subseqidx != i_ {
-                        res.as_mut_vec().push_all(v.slice(subseqidx, i_));
+                        res.as_mut_vec().push_all(vv[subseqidx..i_]);
                     }
                     subseqidx = i;
                     res.as_mut_vec().push_all(REPLACEMENT);
@@ -246,7 +246,7 @@ macro_rules! error(() => ({
         }
         if subseqidx < total {
             unsafe {
-                res.as_mut_vec().push_all(v.slice(subseqidx, total))
+                res.as_mut_vec().push_all(v[subseqidx..total])
             };
         }
         Owned(res.into_string())
index e9981790f7dc08689b7e4c13f1ceba4499df7725..04175173febe6e8ba628351f87a35ca74f67e381 100644 (file)
@@ -24,6 +24,7 @@
 use core::fmt::Show;
 use core::mem::zeroed;
 use core::mem;
+use core::ops::{Slice,SliceMut};
 use core::uint;
 use core::iter;
 use std::hash::{Writer, Hash};
@@ -378,7 +379,7 @@ macro_rules! bound {
                         }
                     };
                     // push to the stack.
-                    it.stack[it.length] = children.$slice_from(slice_idx).$iter();
+                    it.stack[it.length] = children.$slice_from(&slice_idx).$iter();
                     it.length += 1;
                     if ret { return it }
                 })
@@ -392,7 +393,7 @@ impl<T> TrieMap<T> {
     fn bound<'a>(&'a self, key: uint, upper: bool) -> Entries<'a, T> {
         bound!(Entries, self = self,
                key = key, is_upper = upper,
-               slice_from = slice_from, iter = iter,
+               slice_from = slice_from_, iter = iter,
                mutability = )
     }
 
@@ -434,7 +435,7 @@ pub fn upper_bound<'a>(&'a self, key: uint) -> Entries<'a, T> {
     fn bound_mut<'a>(&'a mut self, key: uint, upper: bool) -> MutEntries<'a, T> {
         bound!(MutEntries, self = self,
                key = key, is_upper = upper,
-               slice_from = slice_from_mut, iter = iter_mut,
+               slice_from = slice_from_mut_, iter = iter_mut,
                mutability = mut)
     }
 
index 8bccda37c246d7f44dfbeacc7126a0e601b49017..01d0bc460b96af615c1125bbca5c251454676897 100644 (file)
@@ -437,7 +437,7 @@ fn clone_from(&mut self, other: &Vec<T>) {
 
         // self.len <= other.len due to the truncate above, so the
         // slice here is always in-bounds.
-        let slice = other.slice_from(self.len());
+        let slice = other[self.len()..];
         self.push_all(slice);
     }
 }
@@ -927,11 +927,12 @@ pub fn sort_by(&mut self, compare: |&T, &T| -> Ordering) {
     ///
     /// ```
     /// let vec = vec![1i, 2, 3, 4];
-    /// assert!(vec.slice(0, 2) == [1, 2]);
+    /// assert!(vec[0..2] == [1, 2]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice<'a>(&'a self, start: uint, end: uint) -> &'a [T] {
-        self.as_slice().slice(start, end)
+        self[start..end]
     }
 
     /// Returns a slice containing all but the first element of the vector.
@@ -948,7 +949,7 @@ pub fn slice<'a>(&'a self, start: uint, end: uint) -> &'a [T] {
     /// ```
     #[inline]
     pub fn tail<'a>(&'a self) -> &'a [T] {
-        self.as_slice().tail()
+        self[].tail()
     }
 
     /// Returns all but the first `n' elements of a vector.
@@ -965,9 +966,9 @@ pub fn tail<'a>(&'a self) -> &'a [T] {
     /// assert!(vec.tailn(2) == [3, 4]);
     /// ```
     #[inline]
-    #[deprecated = "use slice_from"]
+    #[deprecated = "use slicing syntax"]
     pub fn tailn<'a>(&'a self, n: uint) -> &'a [T] {
-        self.as_slice().slice_from(n)
+        self[n..]
     }
 
     /// Returns a reference to the last element of a vector, or `None` if it is
@@ -981,7 +982,7 @@ pub fn tailn<'a>(&'a self, n: uint) -> &'a [T] {
     /// ```
     #[inline]
     pub fn last<'a>(&'a self) -> Option<&'a T> {
-        self.as_slice().last()
+        self[].last()
     }
 
     /// Deprecated: use `last_mut`.
@@ -1175,10 +1176,10 @@ pub fn push_all_move(&mut self, other: Vec<T>) {
     }
 
     /// Deprecated: use `slice_mut`.
-    #[deprecated = "use slice_mut"]
+    #[deprecated = "use slicing syntax"]
     pub fn mut_slice<'a>(&'a mut self, start: uint, end: uint)
                          -> &'a mut [T] {
-        self.slice_mut(start, end)
+        self[mut start..end]
     }
 
     /// Returns a mutable slice of `self` between `start` and `end`.
@@ -1192,18 +1193,19 @@ pub fn mut_slice<'a>(&'a mut self, start: uint, end: uint)
     ///
     /// ```
     /// let mut vec = vec![1i, 2, 3, 4];
-    /// assert!(vec.slice_mut(0, 2) == [1, 2]);
+    /// assert!(vec[mut 0..2] == [1, 2]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice_mut<'a>(&'a mut self, start: uint, end: uint)
                          -> &'a mut [T] {
-        self.as_mut_slice().slice_mut(start, end)
+        self[mut start..end]
     }
 
     /// Deprecated: use "slice_from_mut".
-    #[deprecated = "use slice_from_mut"]
+    #[deprecated = "use slicing syntax"]
     pub fn mut_slice_from<'a>(&'a mut self, start: uint) -> &'a mut [T] {
-        self.slice_from_mut(start)
+        self[mut start..]
     }
 
     /// Returns a mutable slice of `self` from `start` to the end of the `Vec`.
@@ -1216,17 +1218,18 @@ pub fn mut_slice_from<'a>(&'a mut self, start: uint) -> &'a mut [T] {
     ///
     /// ```
     /// let mut vec = vec![1i, 2, 3, 4];
-    /// assert!(vec.slice_from_mut(2) == [3, 4]);
+    /// assert!(vec[mut 2..] == [3, 4]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice_from_mut<'a>(&'a mut self, start: uint) -> &'a mut [T] {
-        self.as_mut_slice().slice_from_mut(start)
+        self[mut start..]
     }
 
     /// Deprecated: use `slice_to_mut`.
-    #[deprecated = "use slice_to_mut"]
+    #[deprecated = "use slicing syntax"]
     pub fn mut_slice_to<'a>(&'a mut self, end: uint) -> &'a mut [T] {
-        self.slice_to_mut(end)
+        self[mut ..end]
     }
 
     /// Returns a mutable slice of `self` from the start of the `Vec` to `end`.
@@ -1239,11 +1242,12 @@ pub fn mut_slice_to<'a>(&'a mut self, end: uint) -> &'a mut [T] {
     ///
     /// ```
     /// let mut vec = vec![1i, 2, 3, 4];
-    /// assert!(vec.slice_to_mut(2) == [1, 2]);
+    /// assert!(vec[mut ..2] == [1, 2]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice_to_mut<'a>(&'a mut self, end: uint) -> &'a mut [T] {
-        self.as_mut_slice().slice_to_mut(end)
+        self[mut ..end]
     }
 
     /// Deprecated: use `split_at_mut`.
@@ -1288,7 +1292,7 @@ pub fn mut_split_at<'a>(&'a mut self, mid: uint) -> (&'a mut [T], &'a mut [T]) {
     /// ```
     #[inline]
     pub fn split_at_mut<'a>(&'a mut self, mid: uint) -> (&'a mut [T], &'a mut [T]) {
-        self.as_mut_slice().split_at_mut(mid)
+        self[mut].split_at_mut(mid)
     }
 
     /// Reverses the order of elements in a vector, in place.
@@ -1302,7 +1306,7 @@ pub fn split_at_mut<'a>(&'a mut self, mid: uint) -> (&'a mut [T], &'a mut [T]) {
     /// ```
     #[inline]
     pub fn reverse(&mut self) {
-        self.as_mut_slice().reverse()
+        self[mut].reverse()
     }
 
     /// Returns a slice of `self` from `start` to the end of the vec.
@@ -1315,11 +1319,12 @@ pub fn reverse(&mut self) {
     ///
     /// ```
     /// let vec = vec![1i, 2, 3];
-    /// assert!(vec.slice_from(1) == [2, 3]);
+    /// assert!(vec[1..] == [2, 3]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice_from<'a>(&'a self, start: uint) -> &'a [T] {
-        self.as_slice().slice_from(start)
+        self[start..]
     }
 
     /// Returns a slice of self from the start of the vec to `end`.
@@ -1332,11 +1337,12 @@ pub fn slice_from<'a>(&'a self, start: uint) -> &'a [T] {
     ///
     /// ```
     /// let vec = vec![1i, 2, 3, 4];
-    /// assert!(vec.slice_to(2) == [1, 2]);
+    /// assert!(vec[..2] == [1, 2]);
     /// ```
     #[inline]
+    #[deprecated = "use slicing syntax"]
     pub fn slice_to<'a>(&'a self, end: uint) -> &'a [T] {
-        self.as_slice().slice_to(end)
+        self[..end]
     }
 
     /// Returns a slice containing all but the last element of the vector.
@@ -1353,7 +1359,7 @@ pub fn slice_to<'a>(&'a self, end: uint) -> &'a [T] {
     /// ```
     #[inline]
     pub fn init<'a>(&'a self) -> &'a [T] {
-        self.slice(0, self.len() - 1)
+        self[0..self.len() - 1]
     }
 
 
@@ -2206,12 +2212,18 @@ fn test_mut_split_at() {
         let mut values = Vec::from_slice([1u8,2,3,4,5]);
         {
             let (left, right) = values.split_at_mut(2);
-            assert!(left.slice(0, left.len()) == [1, 2]);
+            {
+                let left: &[_] = left;
+                assert!(left[0..left.len()] == [1, 2]);
+            }
             for p in left.iter_mut() {
                 *p += 1;
             }
 
-            assert!(right.slice(0, right.len()) == [3, 4, 5]);
+            {
+                let right: &[_] = right;
+                assert!(right[0..right.len()] == [3, 4, 5]);
+            }
             for p in right.iter_mut() {
                 *p += 2;
             }
index 92ef0c281f282eecc5095b4a9d226925e4fc02b5..343ab7cfd28b98e7ec9733dc11a10f7dd5aa3166 100644 (file)
@@ -17,7 +17,7 @@
 use num::{Float, FPNaN, FPInfinite, ToPrimitive, Primitive};
 use num::{Zero, One, cast};
 use result::Ok;
-use slice::{ImmutableSlice, MutableSlice};
+use slice::MutableSlice;
 use slice;
 use str::StrSlice;
 
@@ -173,7 +173,7 @@ pub fn float_to_str_bytes_common<T: Primitive + Float, U>(
         _ => ()
     }
 
-    buf.slice_to_mut(end).reverse();
+    buf[mut ..end].reverse();
 
     // Remember start of the fractional digits.
     // Points one beyond end of buf if none get generated,
@@ -310,7 +310,7 @@ struct Filler<'a> {
 
             impl<'a> fmt::FormatWriter for Filler<'a> {
                 fn write(&mut self, bytes: &[u8]) -> fmt::Result {
-                    slice::bytes::copy_memory(self.buf.slice_from_mut(*self.end),
+                    slice::bytes::copy_memory(self.buf[mut *self.end..],
                                               bytes);
                     *self.end += bytes.len();
                     Ok(())
@@ -328,5 +328,5 @@ fn write(&mut self, bytes: &[u8]) -> fmt::Result {
         }
     }
 
-    f(buf.slice_to(end))
+    f(buf[..end])
 }
index 7bab59960b0fea938d1f633a7bbba580ca8f3423..28ee522346f2f41e6046e25ec1508f8b7b3956cb 100644 (file)
@@ -423,7 +423,7 @@ pub fn pad_integral(&mut self,
             for c in sign.into_iter() {
                 let mut b = [0, ..4];
                 let n = c.encode_utf8(b).unwrap_or(0);
-                try!(f.buf.write(b.slice_to(n)));
+                try!(f.buf.write(b[..n]));
             }
             if prefixed { f.buf.write(prefix.as_bytes()) }
             else { Ok(()) }
@@ -530,13 +530,13 @@ fn with_padding(&mut self,
         let len = self.fill.encode_utf8(fill).unwrap_or(0);
 
         for _ in range(0, pre_pad) {
-            try!(self.buf.write(fill.slice_to(len)));
+            try!(self.buf.write(fill[..len]));
         }
 
         try!(f(self));
 
         for _ in range(0, post_pad) {
-            try!(self.buf.write(fill.slice_to(len)));
+            try!(self.buf.write(fill[..len]));
         }
 
         Ok(())
@@ -611,7 +611,7 @@ fn fmt(&self, f: &mut Formatter) -> Result {
 
         let mut utf8 = [0u8, ..4];
         let amt = self.encode_utf8(utf8).unwrap_or(0);
-        let s: &str = unsafe { mem::transmute(utf8.slice_to(amt)) };
+        let s: &str = unsafe { mem::transmute(utf8[..amt]) };
         secret_string(&s, f)
     }
 }
index afcd0d1d645e6d9e38cf87e626ada16c1b094923..e57c499948362576932b274fd6721d0f1c1374af 100644 (file)
@@ -18,7 +18,7 @@
 use fmt;
 use iter::DoubleEndedIterator;
 use num::{Int, cast, zero};
-use slice::{ImmutableSlice, MutableSlice};
+use slice::{MutableSlice};
 
 /// A type that represents a specific radix
 #[doc(hidden)]
@@ -60,7 +60,7 @@ fn fmt_int<T: Int>(&self, mut x: T, f: &mut fmt::Formatter) -> fmt::Result {
                 if x == zero() { break; }                 // No more digits left to accumulate.
             }
         }
-        f.pad_integral(is_positive, self.prefix(), buf.slice_from(curr))
+        f.pad_integral(is_positive, self.prefix(), buf[curr..])
     }
 }
 
index 1a00107a216321cbfb369038c4d6330da01cea61..b8828d310f0ef0335d8ec7464a8d90b5f3d474ab 100644 (file)
@@ -68,7 +68,7 @@ pub trait ImmutableSlice<'a, T> {
     ///
     /// Slicing with `start` equal to `end` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice(&self, start: uint, end: uint) -> &'a [T];
+    //fn slice(&self, start: uint, end: uint) -> &'a [T];
 
     /// Returns a subslice from `start` to the end of the slice.
     ///
@@ -76,7 +76,8 @@ pub trait ImmutableSlice<'a, T> {
     ///
     /// Slicing from `self.len()` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice_from(&self, start: uint) -> &'a [T];
+    // TODO
+    //fn slice_from(&self, start: uint) -> &'a [T];
 
     /// Returns a subslice from the start of the slice to `end`.
     ///
@@ -84,7 +85,7 @@ pub trait ImmutableSlice<'a, T> {
     ///
     /// Slicing to `0` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice_to(&self, end: uint) -> &'a [T];
+    //fn slice_to(&self, end: uint) -> &'a [T];
 
     /// Divides one slice into two at an index.
     ///
@@ -177,7 +178,7 @@ pub trait ImmutableSlice<'a, T> {
     fn tail(&self) -> &'a [T];
 
     /// Returns all but the first `n' elements of a slice.
-    #[deprecated = "use slice_from"]
+    #[deprecated = "use slicing syntax"]
     fn tailn(&self, n: uint) -> &'a [T];
 
     /// Returns all but the last element of a slice.
@@ -186,6 +187,7 @@ pub trait ImmutableSlice<'a, T> {
 
     /// Returns all but the last `n' elements of a slice.
     #[deprecated = "use slice_to but note the arguments are different"]
+    #[deprecated = "use slicing syntax, but note the arguments are different"]
     fn initn(&self, n: uint) -> &'a [T];
 
     /// Returns the last element of a slice, or `None` if it is empty.
@@ -240,7 +242,7 @@ pub trait ImmutableSlice<'a, T> {
      * ```ignore
      *     if self.len() == 0 { return None }
      *     let head = &self[0];
-     *     *self = self.slice_from(1);
+     *     *self = self[1..];
      *     Some(head)
      * ```
      *
@@ -259,7 +261,7 @@ pub trait ImmutableSlice<'a, T> {
      * ```ignore
      *     if self.len() == 0 { return None; }
      *     let tail = &self[self.len() - 1];
-     *     *self = self.slice_to(self.len() - 1);
+     *     *self = self[..self.len() - 1];
      *     Some(tail)
      * ```
      *
@@ -271,31 +273,9 @@ pub trait ImmutableSlice<'a, T> {
 
 #[unstable]
 impl<'a,T> ImmutableSlice<'a, T> for &'a [T] {
-    #[inline]
-    fn slice(&self, start: uint, end: uint) -> &'a [T] {
-        assert!(start <= end);
-        assert!(end <= self.len());
-        unsafe {
-            transmute(RawSlice {
-                    data: self.as_ptr().offset(start as int),
-                    len: (end - start)
-                })
-        }
-    }
-
-    #[inline]
-    fn slice_from(&self, start: uint) -> &'a [T] {
-        self.slice(start, self.len())
-    }
-
-    #[inline]
-    fn slice_to(&self, end: uint) -> &'a [T] {
-        self.slice(0, end)
-    }
-
     #[inline]
     fn split_at(&self, mid: uint) -> (&'a [T], &'a [T]) {
-        (self.slice(0, mid), self.slice(mid, self.len()))
+        ((*self)[..mid], (*self)[mid..])
     }
 
     #[inline]
@@ -364,21 +344,21 @@ fn head(&self) -> Option<&'a T> {
     }
 
     #[inline]
-    fn tail(&self) -> &'a [T] { self.slice(1, self.len()) }
+    fn tail(&self) -> &'a [T] { (*self)[1..] }
 
     #[inline]
-    #[deprecated = "use slice_from"]
-    fn tailn(&self, n: uint) -> &'a [T] { self.slice(n, self.len()) }
+    #[deprecated = "use slicing syntax"]
+    fn tailn(&self, n: uint) -> &'a [T] { (*self)[n..] }
 
     #[inline]
     fn init(&self) -> &'a [T] {
-        self.slice(0, self.len() - 1)
+        (*self)[..self.len() - 1]
     }
 
     #[inline]
-    #[deprecated = "use slice_to but note the arguments are different"]
+    #[deprecated = "use slicing syntax but note the arguments are different"]
     fn initn(&self, n: uint) -> &'a [T] {
-        self.slice(0, self.len() - n)
+        (*self)[..self.len() - n]
     }
 
     #[inline]
@@ -531,13 +511,14 @@ pub trait MutableSlice<'a, T> {
     fn get_mut(self, index: uint) -> Option<&'a mut T>;
     /// Work with `self` as a mut slice.
     /// Primarily intended for getting a &mut [T] from a [T, ..N].
+    #[deprecated = "use slicing syntax"]
     fn as_mut_slice(self) -> &'a mut [T];
 
     /// Deprecated: use `slice_mut`.
-    #[deprecated = "use slice_mut"]
-    fn mut_slice(self, start: uint, end: uint) -> &'a mut [T] {
-        self.slice_mut(start, end)
-    }
+    #[deprecated = "use slicing syntax"]
+    //fn mut_slice(self, start: uint, end: uint) -> &'a mut [T] {
+    //    self[mut start..end]
+    //}
 
     /// Returns a mutable subslice spanning the interval [`start`, `end`).
     ///
@@ -546,13 +527,13 @@ fn mut_slice(self, start: uint, end: uint) -> &'a mut [T] {
     ///
     /// Slicing with `start` equal to `end` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice_mut(self, start: uint, end: uint) -> &'a mut [T];
+    //fn slice_mut(self, start: uint, end: uint) -> &'a mut [T];
 
-    /// Deprecated: use `slice_from_mut`.
-    #[deprecated = "use slice_from_mut"]
-    fn mut_slice_from(self, start: uint) -> &'a mut [T] {
-        self.slice_from_mut(start)
-    }
+    /// Deprecated: use `slicing syntax`.
+    #[deprecated = "use slicing syntax"]
+    //fn mut_slice_from(self, start: uint) -> &'a mut [T] {
+    //    self[mut start..]
+    //}
 
     /// Returns a mutable subslice from `start` to the end of the slice.
     ///
@@ -560,13 +541,13 @@ fn mut_slice_from(self, start: uint) -> &'a mut [T] {
     ///
     /// Slicing from `self.len()` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice_from_mut(self, start: uint) -> &'a mut [T];
+    //fn slice_from_mut(self, start: uint) -> &'a mut [T];
 
-    /// Deprecated: use `slice_to_mut`.
-    #[deprecated = "use slice_to_mut"]
-    fn mut_slice_to(self, end: uint) -> &'a mut [T] {
-        self.slice_to_mut(end)
-    }
+    /// Deprecated: use `slicing syntax`.
+    #[deprecated = "use slicing syntax"]
+    //fn mut_slice_to(self, end: uint) -> &'a mut [T] {
+    //    self[mut ..end]
+    //}
 
     /// Returns a mutable subslice from the start of the slice to `end`.
     ///
@@ -574,7 +555,7 @@ fn mut_slice_to(self, end: uint) -> &'a mut [T] {
     ///
     /// Slicing to `0` yields an empty slice.
     #[unstable = "waiting on final error conventions"]
-    fn slice_to_mut(self, end: uint) -> &'a mut [T];
+    //fn slice_to_mut(self, end: uint) -> &'a mut [T];
 
     /// Deprecated: use `iter_mut`.
     #[deprecated = "use iter_mut"]
@@ -659,7 +640,7 @@ fn mut_chunks(self, chunk_size: uint) -> MutChunks<'a, T> {
      * ```ignore
      *     if self.len() == 0 { return None; }
      *     let head = &mut self[0];
-     *     *self = self.slice_from_mut(1);
+     *     *self = self[mut 1..];
      *     Some(head)
      * ```
      *
@@ -678,7 +659,7 @@ fn mut_chunks(self, chunk_size: uint) -> MutChunks<'a, T> {
      * ```ignore
      *     if self.len() == 0 { return None; }
      *     let tail = &mut self[self.len() - 1];
-     *     *self = self.slice_to_mut(self.len() - 1);
+     *     *self = self[mut ..self.len() - 1];
      *     Some(tail)
      * ```
      *
@@ -803,34 +784,11 @@ fn get_mut(self, index: uint) -> Option<&'a mut T> {
     #[inline]
     fn as_mut_slice(self) -> &'a mut [T] { self }
 
-    fn slice_mut(self, start: uint, end: uint) -> &'a mut [T] {
-        assert!(start <= end);
-        assert!(end <= self.len());
-        unsafe {
-            transmute(RawSlice {
-                    data: self.as_mut_ptr().offset(start as int) as *const T,
-                    len: (end - start)
-                })
-        }
-    }
-
-    #[inline]
-    fn slice_from_mut(self, start: uint) -> &'a mut [T] {
-        let len = self.len();
-        self.slice_mut(start, len)
-    }
-
-    #[inline]
-    fn slice_to_mut(self, end: uint) -> &'a mut [T] {
-        self.slice_mut(0, end)
-    }
-
     #[inline]
     fn split_at_mut(self, mid: uint) -> (&'a mut [T], &'a mut [T]) {
         unsafe {
-            let len = self.len();
             let self2: &'a mut [T] = mem::transmute_copy(&self);
-            (self.slice_mut(0, mid), self2.slice_mut(mid, len))
+            (self[mut ..mid], self2[mut mid..])
         }
     }
 
@@ -1020,13 +978,13 @@ fn contains(&self, x: &T) -> bool {
     #[inline]
     fn starts_with(&self, needle: &[T]) -> bool {
         let n = needle.len();
-        self.len() >= n && needle == self.slice_to(n)
+        self.len() >= n && needle == (*self)[..n]
     }
 
     #[inline]
     fn ends_with(&self, needle: &[T]) -> bool {
         let (m, n) = (self.len(), needle.len());
-        m >= n && needle == self.slice_from(m - n)
+        m >= n && needle == (*self)[m-n..]
     }
 }
 
@@ -1299,8 +1257,8 @@ fn next(&mut self) -> Option<&'a [T]> {
         match self.v.iter().position(|x| (self.pred)(x)) {
             None => self.finish(),
             Some(idx) => {
-                let ret = Some(self.v.slice(0, idx));
-                self.v = self.v.slice(idx + 1, self.v.len());
+                let ret = Some(self.v[..idx]);
+                self.v = self.v[idx + 1..];
                 ret
             }
         }
@@ -1325,8 +1283,8 @@ fn next_back(&mut self) -> Option<&'a [T]> {
         match self.v.iter().rposition(|x| (self.pred)(x)) {
             None => self.finish(),
             Some(idx) => {
-                let ret = Some(self.v.slice(idx + 1, self.v.len()));
-                self.v = self.v.slice(0, idx);
+                let ret = Some(self.v[idx + 1..]);
+                self.v = self.v[..idx];
                 ret
             }
         }
@@ -1376,7 +1334,7 @@ fn next(&mut self) -> Option<&'a mut [T]> {
             Some(idx) => {
                 let tmp = mem::replace(&mut self.v, &mut []);
                 let (head, tail) = tmp.split_at_mut(idx);
-                self.v = tail.slice_from_mut(1);
+                self.v = tail[mut 1..];
                 Some(head)
             }
         }
@@ -1410,7 +1368,7 @@ fn next_back(&mut self) -> Option<&'a mut [T]> {
                 let tmp = mem::replace(&mut self.v, &mut []);
                 let (head, tail) = tmp.split_at_mut(idx);
                 self.v = head;
-                Some(tail.slice_from_mut(1))
+                Some(tail[mut 1..])
             }
         }
     }
@@ -1458,8 +1416,8 @@ fn next(&mut self) -> Option<&'a [T]> {
         if self.size > self.v.len() {
             None
         } else {
-            let ret = Some(self.v.slice(0, self.size));
-            self.v = self.v.slice(1, self.v.len());
+            let ret = Some(self.v[..self.size]);
+            self.v = self.v[1..];
             ret
         }
     }
@@ -1543,7 +1501,7 @@ fn idx(&mut self, index: uint) -> Option<&'a [T]> {
             let mut hi = lo + self.size;
             if hi < lo || hi > self.v.len() { hi = self.v.len(); }
 
-            Some(self.v.slice(lo, hi))
+            Some(self.v[lo..hi])
         } else {
             None
         }
index fd7c63a6b3262c353f0e4b618c35a0d489cc24b9..f3a10a0a3ae908edd663a5f8bdf513749cbf3abc 100644 (file)
@@ -30,7 +30,7 @@
 use num::{CheckedMul, Saturating};
 use option::{Option, None, Some};
 use raw::Repr;
-use slice::{ImmutableSlice, MutableSlice};
+use slice::ImmutableSlice;
 use slice;
 use uint;
 
@@ -393,7 +393,7 @@ fn new() -> NaiveSearcher {
 
     fn next(&mut self, haystack: &[u8], needle: &[u8]) -> Option<(uint, uint)> {
         while self.position + needle.len() <= haystack.len() {
-            if haystack.slice(self.position, self.position + needle.len()) == needle {
+            if haystack[self.position .. self.position + needle.len()] == needle {
                 let match_pos = self.position;
                 self.position += needle.len(); // add 1 for all matches
                 return Some((match_pos, match_pos + needle.len()));
@@ -514,10 +514,10 @@ fn new(needle: &[u8]) -> TwoWaySearcher {
         //
         // What's going on is we have some critical factorization (u, v) of the
         // needle, and we want to determine whether u is a suffix of
-        // v.slice_to(period). If it is, we use "Algorithm CP1". Otherwise we use
+        // v[..period]. If it is, we use "Algorithm CP1". Otherwise we use
         // "Algorithm CP2", which is optimized for when the period of the needle
         // is large.
-        if needle.slice_to(crit_pos) == needle.slice(period, period + crit_pos) {
+        if needle[..crit_pos] == needle[period.. period + crit_pos] {
             TwoWaySearcher {
                 crit_pos: crit_pos,
                 period: period,
@@ -741,7 +741,7 @@ fn next(&mut self) -> Option<u16> {
 
         let mut buf = [0u16, ..2];
         self.chars.next().map(|ch| {
-            let n = ch.encode_utf16(buf.as_mut_slice()).unwrap_or(0);
+            let n = ch.encode_utf16(buf[mut]).unwrap_or(0);
             if n == 2 { self.extra = buf[1]; }
             buf[0]
         })
@@ -1007,7 +1007,7 @@ pub fn utf16_items<'a>(v: &'a [u16]) -> Utf16Items<'a> {
 pub fn truncate_utf16_at_nul<'a>(v: &'a [u16]) -> &'a [u16] {
     match v.iter().position(|c| *c == 0) {
         // don't include the 0
-        Some(i) => v.slice_to(i),
+        Some(i) => v[..i],
         None => v
     }
 }
@@ -1994,13 +1994,13 @@ fn slice_chars(&self, begin: uint, end: uint) -> &'a str {
     #[inline]
     fn starts_with<'a>(&self, needle: &'a str) -> bool {
         let n = needle.len();
-        self.len() >= n && needle.as_bytes() == self.as_bytes().slice_to(n)
+        self.len() >= n && needle.as_bytes() == self.as_bytes()[..n]
     }
 
     #[inline]
     fn ends_with(&self, needle: &str) -> bool {
         let (m, n) = (self.len(), needle.len());
-        m >= n && needle.as_bytes() == self.as_bytes().slice_from(m - n)
+        m >= n && needle.as_bytes() == self.as_bytes()[m-n..]
     }
 
     #[inline]
index 8c3f4706a3cc57109484f0fce7ad6e85e9c70b6a..9628d7950b5cf0c35b83e3ec9400fa818ae1ccd6 100644 (file)
@@ -174,7 +174,7 @@ fn test_encode_utf8() {
     fn check(input: char, expect: &[u8]) {
         let mut buf = [0u8, ..4];
         let n = input.encode_utf8(buf.as_mut_slice()).unwrap_or(0);
-        assert_eq!(buf.slice_to(n), expect);
+        assert_eq!(buf[..n], expect);
     }
 
     check('x', [0x78]);
@@ -188,7 +188,7 @@ fn test_encode_utf16() {
     fn check(input: char, expect: &[u16]) {
         let mut buf = [0u16, ..2];
         let n = input.encode_utf16(buf.as_mut_slice()).unwrap_or(0);
-        assert_eq!(buf.slice_to(n), expect);
+        assert_eq!(buf[..n], expect);
     }
 
     check('x', [0x0078]);
index 1aaea19216264709b4cfe450edc9f58718e1a543..f2410745e4a503ed1d321f6aea873f9065cad85e 100644 (file)
@@ -13,6 +13,7 @@
 use core::uint;
 use core::cmp;
 use core::num;
+use core::ops::Slice;
 
 use test::Bencher;
 
@@ -228,7 +229,7 @@ fn test_inspect() {
                .collect::<Vec<uint>>();
 
     assert_eq!(n, xs.len());
-    assert_eq!(xs.as_slice(), ys.as_slice());
+    assert_eq!(xs[], ys[]);
 }
 
 #[test]
@@ -268,7 +269,7 @@ fn test_cycle() {
 
 #[test]
 fn test_iterator_nth() {
-    let v = &[0i, 1, 2, 3, 4];
+    let v: &[_] = &[0i, 1, 2, 3, 4];
     for i in range(0u, v.len()) {
         assert_eq!(v.iter().nth(i).unwrap(), &v[i]);
     }
@@ -277,55 +278,55 @@ fn test_iterator_nth() {
 
 #[test]
 fn test_iterator_last() {
-    let v = &[0i, 1, 2, 3, 4];
+    let v: &[_] = &[0i, 1, 2, 3, 4];
     assert_eq!(v.iter().last().unwrap(), &4);
-    assert_eq!(v.slice(0, 1).iter().last().unwrap(), &0);
+    assert_eq!(v[0..1].iter().last().unwrap(), &0);
 }
 
 #[test]
 fn test_iterator_len() {
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-    assert_eq!(v.slice(0, 4).iter().count(), 4);
-    assert_eq!(v.slice(0, 10).iter().count(), 10);
-    assert_eq!(v.slice(0, 0).iter().count(), 0);
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
+    assert_eq!(v[0..4].iter().count(), 4);
+    assert_eq!(v[0..10].iter().count(), 10);
+    assert_eq!(v[0..0].iter().count(), 0);
 }
 
 #[test]
 fn test_iterator_sum() {
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-    assert_eq!(v.slice(0, 4).iter().map(|&x| x).sum(), 6);
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
+    assert_eq!(v[0..4].iter().map(|&x| x).sum(), 6);
     assert_eq!(v.iter().map(|&x| x).sum(), 55);
-    assert_eq!(v.slice(0, 0).iter().map(|&x| x).sum(), 0);
+    assert_eq!(v[0..0].iter().map(|&x| x).sum(), 0);
 }
 
 #[test]
 fn test_iterator_product() {
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-    assert_eq!(v.slice(0, 4).iter().map(|&x| x).product(), 0);
-    assert_eq!(v.slice(1, 5).iter().map(|&x| x).product(), 24);
-    assert_eq!(v.slice(0, 0).iter().map(|&x| x).product(), 1);
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
+    assert_eq!(v[0..4].iter().map(|&x| x).product(), 0);
+    assert_eq!(v[1..5].iter().map(|&x| x).product(), 24);
+    assert_eq!(v[0..0].iter().map(|&x| x).product(), 1);
 }
 
 #[test]
 fn test_iterator_max() {
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-    assert_eq!(v.slice(0, 4).iter().map(|&x| x).max(), Some(3));
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
+    assert_eq!(v[0..4].iter().map(|&x| x).max(), Some(3));
     assert_eq!(v.iter().map(|&x| x).max(), Some(10));
-    assert_eq!(v.slice(0, 0).iter().map(|&x| x).max(), None);
+    assert_eq!(v[0..0].iter().map(|&x| x).max(), None);
 }
 
 #[test]
 fn test_iterator_min() {
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-    assert_eq!(v.slice(0, 4).iter().map(|&x| x).min(), Some(0));
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
+    assert_eq!(v[0..4].iter().map(|&x| x).min(), Some(0));
     assert_eq!(v.iter().map(|&x| x).min(), Some(0));
-    assert_eq!(v.slice(0, 0).iter().map(|&x| x).min(), None);
+    assert_eq!(v[0..0].iter().map(|&x| x).min(), None);
 }
 
 #[test]
 fn test_iterator_size_hint() {
     let c = count(0i, 1);
-    let v = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+    let v: &[_] = &[0i, 1, 2, 3, 4, 5, 6, 7, 8, 9];
     let v2 = &[10i, 11, 12];
     let vi = v.iter();
 
@@ -372,7 +373,7 @@ fn test_all() {
     assert!(v.iter().all(|&x| x < 10));
     assert!(!v.iter().all(|&x| x % 2 == 0));
     assert!(!v.iter().all(|&x| x > 100));
-    assert!(v.slice(0, 0).iter().all(|_| fail!()));
+    assert!(v.slice_(&0, &0).iter().all(|_| fail!()));
 }
 
 #[test]
@@ -381,7 +382,7 @@ fn test_any() {
     assert!(v.iter().any(|&x| x < 10));
     assert!(v.iter().any(|&x| x % 2 == 0));
     assert!(!v.iter().any(|&x| x > 100));
-    assert!(!v.slice(0, 0).iter().any(|_| fail!()));
+    assert!(!v.slice_(&0, &0).iter().any(|_| fail!()));
 }
 
 #[test]
@@ -566,7 +567,7 @@ fn check_randacc_iter<A: PartialEq, T: Clone + RandomAccessIterator<A>>(a: T, le
 fn test_double_ended_flat_map() {
     let u = [0u,1];
     let v = [5u,6,7,8];
-    let mut it = u.iter().flat_map(|x| v.slice(*x, v.len()).iter());
+    let mut it = u.iter().flat_map(|x| v[*x..v.len()].iter());
     assert_eq!(it.next_back().unwrap(), &8);
     assert_eq!(it.next().unwrap(),      &5);
     assert_eq!(it.next_back().unwrap(), &7);
index 419748b75c324c56f47a736ce2942ca035f8a4d4..aa2b1a6f14e6bd39773bca8c4fa5119e714c16fa 100644 (file)
@@ -1012,7 +1012,7 @@ pub fn write<T>(fd: sock_t,
             // Also as with read(), we use MSG_DONTWAIT to guard ourselves
             // against unforeseen circumstances.
             let _guard = lock();
-            let ptr = buf.slice_from(written).as_ptr();
+            let ptr = buf[written..].as_ptr();
             let len = buf.len() - written;
             match retry(|| write(deadline.is_some(), ptr, len)) {
                 -1 if util::wouldblock() => {}
index efa3402073f2eff827a091aae9f24487b3f50a8e..c5722419f3ec94aa055820c02b1ee6fd77e07f5a 100644 (file)
@@ -735,7 +735,7 @@ pub fn parse_bytes(buf: &[u8], radix: uint) -> Option<BigUint> {
         let mut power: BigUint  = One::one();
         loop {
             let start = cmp::max(end, unit_len) - unit_len;
-            match uint::parse_bytes(buf.slice(start, end), radix) {
+            match uint::parse_bytes(buf[start..end], radix) {
                 Some(d) => {
                     let d: Option<BigUint> = FromPrimitive::from_uint(d);
                     match d {
@@ -1406,7 +1406,7 @@ pub fn parse_bytes(buf: &[u8], radix: uint) -> Option<BigInt> {
             sign  = Minus;
             start = 1;
         }
-        return BigUint::parse_bytes(buf.slice(start, buf.len()), radix)
+        return BigUint::parse_bytes(buf[start..], radix)
             .map(|bu| BigInt::from_biguint(sign, bu));
     }
 
index f8a775478f1f85b88b63454322a5559dd4f2fff9..c65e55690c78b9adf17ef93323919d4a2e264009 100644 (file)
@@ -228,7 +228,7 @@ fn gen_ascii_chars<'a>(&'a mut self) -> AsciiGenerator<'a, Self> {
     /// let choices = [1i, 2, 4, 8, 16, 32];
     /// let mut rng = task_rng();
     /// println!("{}", rng.choose(choices));
-    /// assert_eq!(rng.choose(choices.slice_to(0)), None);
+    /// assert_eq!(rng.choose(choices[..0]), None);
     /// ```
     fn choose<'a, T>(&mut self, values: &'a [T]) -> Option<&'a T> {
         if values.is_empty() {
index 648aa8668144b22610d082ff0d81545c5a769ce8..8917151609f810e3e1fa0f235a05405715c0f324 100644 (file)
@@ -94,7 +94,7 @@ fn write(&mut self, buf: &[u8]) -> IoResult<()> {
             // there (left), and what will be appended on the end (right)
             let cap = self.buf.len() - self.pos;
             let (left, right) = if cap <= buf.len() {
-                (buf.slice_to(cap), buf.slice_from(cap))
+                (buf[..cap], buf[cap..])
             } else {
                 let result: (_, &[_]) = (buf, &[]);
                 result
@@ -102,7 +102,7 @@ fn write(&mut self, buf: &[u8]) -> IoResult<()> {
 
             // Do the necessary writes
             if left.len() > 0 {
-                slice::bytes::copy_memory(self.buf.slice_from_mut(self.pos), left);
+                slice::bytes::copy_memory(self.buf[mut self.pos..], left);
             }
             if right.len() > 0 {
                 self.buf.push_all(right);
index 6171a9946b6085702a0328a00074b91c0bdf0660..fa327fb3b4c5d14f4fa232b672746b46dbc35190 100644 (file)
@@ -54,7 +54,7 @@ pub fn get<'a>(&'a self, tag: uint) -> Doc<'a> {
     }
 
     pub fn as_str_slice<'a>(&'a self) -> &'a str {
-        str::from_utf8(self.data.slice(self.start, self.end)).unwrap()
+        str::from_utf8(self.data[self.start..self.end]).unwrap()
     }
 
     pub fn as_str(&self) -> String {
@@ -280,7 +280,7 @@ pub fn tagged_docs<'a>(d: Doc<'a>, tg: uint, it: |Doc<'a>| -> bool) -> bool {
     }
 
     pub fn with_doc_data<'a, T>(d: Doc<'a>, f: |x: &'a [u8]| -> T) -> T {
-        f(d.data.slice(d.start, d.end))
+        f(d.data[d.start..d.end])
     }
 
 
index c3e195af6f90ff896db5997271f90e1f6171fbca..a32dfcf5d2a2b89121332272a8ab45c81cb3a323 100644 (file)
@@ -102,7 +102,7 @@ pub fn new(ast: parse::Ast) -> (Program, Vec<Option<String>>) {
         // This is a bit hacky since we have to skip over the initial
         // 'Save' instruction.
         let mut pre = String::with_capacity(5);
-        for inst in c.insts.slice_from(1).iter() {
+        for inst in c.insts[1..].iter() {
             match *inst {
                 OneChar(c, FLAG_EMPTY) => pre.push(c),
                 _ => break
index 7f4289b128afeac769bd047362fef6bd2d72a0d2..bf576432631391e7a91714146994d1187032188e 100644 (file)
@@ -511,7 +511,7 @@ fn parse_counted(&mut self) -> Result<(), Error> {
         self.chari = closer;
         let greed = try!(self.get_next_greedy());
         let inner = String::from_chars(
-            self.chars.as_slice().slice(start + 1, closer));
+            self.chars[start+1..closer]);
 
         // Parse the min and max values from the regex.
         let (mut min, mut max): (uint, Option<uint>);
@@ -944,7 +944,7 @@ fn cur(&self) -> char {
     }
 
     fn slice(&self, start: uint, end: uint) -> String {
-        String::from_chars(self.chars.as_slice().slice(start, end))
+        String::from_chars(self.chars[start..end])
     }
 }
 
index 48065992bb050f525dd7133f54402f23d8546f5c..088425c08885533916fb2b0abb8f735b93cf2cce 100644 (file)
@@ -130,7 +130,7 @@ fn $name() {
             // actual capture groups to match test set.
             let (sexpect, mut sgot) = (expected.as_slice(), got.as_slice());
             if sgot.len() > sexpect.len() {
-                sgot = sgot.slice(0, sexpect.len())
+                sgot = sgot[0..sexpect.len()]
             }
             if sexpect != sgot {
                 fail!("For RE '{}' against '{}', expected '{}' but got '{}'",
index 085975580b7579865164037b03294c385419114f..0a4dca9125aa60144048662f713e711a252eb8bc 100644 (file)
@@ -145,7 +145,7 @@ fn run(&mut self) -> CaptureLocs {
                 // out early.
                 if self.prog.prefix.len() > 0 && clist.size == 0 {
                     let needle = self.prog.prefix.as_slice().as_bytes();
-                    let haystack = self.input.as_bytes().slice_from(self.ic);
+                    let haystack = self.input.as_bytes()[self.ic..];
                     match find_prefix(needle, haystack) {
                         None => break,
                         Some(i) => {
index cc6a8e27cda4aa727bd02e922682958c69549c8a..3535038b6a5a0877c1a94f6d7f448983593e55d5 100644 (file)
@@ -550,7 +550,7 @@ fn check_prefix(&self) -> P<ast::Expr> {
         } else {
             quote_expr!(self.cx,
                 if clist.size == 0 {
-                    let haystack = self.input.as_bytes().slice_from(self.ic);
+                    let haystack = self.input.as_bytes()[self.ic..];
                     match find_prefix(prefix_bytes, haystack) {
                         None => break,
                         Some(i) => {
index cd425b5fec170fafad637280fd6c4ffe5c23faed..58db79f41ca4ce272c620f856fd2c45b76a3d676 100644 (file)
@@ -89,9 +89,9 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
                     if version == 1 {
                         // The only version existing so far
                         let data_size = extract_compressed_bytecode_size_v1(bc_encoded);
-                        let compressed_data = bc_encoded.slice(
-                            link::RLIB_BYTECODE_OBJECT_V1_DATA_OFFSET,
-                            link::RLIB_BYTECODE_OBJECT_V1_DATA_OFFSET + data_size as uint);
+                        let compressed_data = bc_encoded[
+                            link::RLIB_BYTECODE_OBJECT_V1_DATA_OFFSET..
+                            link::RLIB_BYTECODE_OBJECT_V1_DATA_OFFSET + data_size as uint];
 
                         match flate::inflate_bytes(compressed_data) {
                             Some(inflated) => inflated,
@@ -188,7 +188,7 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
 fn is_versioned_bytecode_format(bc: &[u8]) -> bool {
     let magic_id_byte_count = link::RLIB_BYTECODE_OBJECT_MAGIC.len();
     return bc.len() > magic_id_byte_count &&
-           bc.slice(0, magic_id_byte_count) == link::RLIB_BYTECODE_OBJECT_MAGIC;
+           bc[..magic_id_byte_count] == link::RLIB_BYTECODE_OBJECT_MAGIC;
 }
 
 fn extract_bytecode_format_version(bc: &[u8]) -> u32 {
@@ -200,8 +200,8 @@ fn extract_compressed_bytecode_size_v1(bc: &[u8]) -> u64 {
 }
 
 fn read_from_le_bytes<T: Int>(bytes: &[u8], position_in_bytes: uint) -> T {
-    let byte_data = bytes.slice(position_in_bytes,
-                                position_in_bytes + mem::size_of::<T>());
+    let byte_data = bytes[position_in_bytes..
+                          position_in_bytes + mem::size_of::<T>()];
     let data = unsafe {
         *(byte_data.as_ptr() as *const T)
     };
index 6d4407f96a7a444bc4c7fd6867e864b3bf59c9c1..58d0f132e06a2616276d61e309c512c31ece6cf1 100644 (file)
@@ -70,7 +70,7 @@ fn lookup_hash<'a>(d: rbml::Doc<'a>, eq_fn: |&[u8]| -> bool,
     let mut ret = None;
     reader::tagged_docs(tagged_doc.doc, belt, |elt| {
         let pos = u64_from_be_bytes(elt.data, elt.start, 4) as uint;
-        if eq_fn(elt.data.slice(elt.start + 4, elt.end)) {
+        if eq_fn(elt.data[elt.start + 4 .. elt.end]) {
             ret = Some(reader::doc_at(d.data, pos).unwrap().doc);
             false
         } else {
@@ -84,7 +84,7 @@ pub fn maybe_find_item<'a>(item_id: ast::NodeId,
                            items: rbml::Doc<'a>) -> Option<rbml::Doc<'a>> {
     fn eq_item(bytes: &[u8], item_id: ast::NodeId) -> bool {
         return u64_from_be_bytes(
-            bytes.slice(0u, 4u), 0u, 4u) as ast::NodeId
+            bytes[0u..4u], 0u, 4u) as ast::NodeId
             == item_id;
     }
     lookup_hash(items,
index d319559044c4c171e9766142442a4371a2832114..ce5494ef477cf4b59141b6cd6110c68a3e810a71 100644 (file)
@@ -91,7 +91,7 @@ fn scan<R>(st: &mut PState, is_last: |char| -> bool, op: |&[u8]| -> R) -> R {
     }
     let end_pos = st.pos;
     st.pos += 1;
-    return op(st.data.slice(start_pos, end_pos));
+    return op(st.data[start_pos..end_pos]);
 }
 
 pub fn parse_ident(st: &mut PState, last: char) -> ast::Ident {
@@ -599,8 +599,8 @@ pub fn parse_def_id(buf: &[u8]) -> ast::DefId {
         fail!();
     }
 
-    let crate_part = buf.slice(0u, colon_idx);
-    let def_part = buf.slice(colon_idx + 1u, len);
+    let crate_part = buf[0u..colon_idx];
+    let def_part = buf[colon_idx + 1u..len];
 
     let crate_num = match uint::parse_bytes(crate_part, 10u) {
        Some(cn) => cn as ast::CrateNum,
index de9125ec44918419319650d7fac240e9a0c44f74..bef63ec31539f5a653b64df276418c7b759be93a 100644 (file)
@@ -870,7 +870,7 @@ pub fn specialize<'a>(cx: &MatchCheckCtxt, r: &[&'a Pat],
             None
         }
     };
-    head.map(|head| head.append(r.slice_to(col)).append(r.slice_from(col + 1)))
+    head.map(|head| head.append(r[..col]).append(r[col + 1..]))
 }
 
 fn check_local(cx: &mut MatchCheckCtxt, loc: &Local) {
index 42a98be0fb84e1a93db2f5d78c88128b3bd42133..6ead2445b8d06f2a58515f0bb36b9c0ad40ee581 100644 (file)
@@ -4014,7 +4014,7 @@ fn search_ribs(&self,
         for (i, rib) in ribs.iter().enumerate().rev() {
             match rib.bindings.find_copy(&name) {
                 Some(def_like) => {
-                    return self.upvarify(ribs.slice_from(i + 1), def_like, span);
+                    return self.upvarify(ribs[i + 1..], def_like, span);
                 }
                 None => {
                     // Continue.
index c956c2d2b006b9bd6a26a0ec72e8a9dcd454ebec..504273f209019f31b395e4ac4e2060eeb737f8c4 100644 (file)
@@ -193,7 +193,7 @@ fn write_sub_path_trait_truncated(&mut self, path: &ast::Path) {
         if len <= 2 {
             return;
         }
-        let sub_paths = sub_paths.slice(0, len-2);
+        let sub_paths = sub_paths[..len-2];
         for &(ref span, ref qualname) in sub_paths.iter() {
             self.fmt.sub_mod_ref_str(path.span,
                                      *span,
index 68d0bb2d8b49805220a6e796172a7d989c31eed6..3ec8d079df4061bf5527fe1fc98a87a85b729a36 100644 (file)
@@ -473,7 +473,7 @@ fn enter_default<'a, 'p, 'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
     // Collect all of the matches that can match against anything.
     enter_match(bcx, dm, m, col, val, |pats| {
         if pat_is_binding_or_wild(dm, &*pats[col]) {
-            Some(Vec::from_slice(pats.slice_to(col)).append(pats.slice_from(col + 1)))
+            Some(Vec::from_slice(pats[..col]).append(pats[col + 1..]))
         } else {
             None
         }
@@ -949,7 +949,7 @@ fn compile_submatch<'a, 'p, 'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
                 bcx = compile_guard(bcx,
                                     &**guard_expr,
                                     m[0].data,
-                                    m.slice(1, m.len()),
+                                    m[1..m.len()],
                                     vals,
                                     chk,
                                     has_genuine_default);
@@ -988,7 +988,7 @@ fn compile_submatch_continue<'a, 'p, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>,
     let tcx = bcx.tcx();
     let dm = &tcx.def_map;
 
-    let vals_left = Vec::from_slice(vals.slice(0u, col)).append(vals.slice(col + 1u, vals.len()));
+    let vals_left = Vec::from_slice(vals[0u..col]).append(vals[col + 1u..vals.len()]);
     let ccx = bcx.fcx.ccx;
 
     // Find a real id (we're adding placeholder wildcard patterns, but
index e95f640b4486949a9259d07038c8fa19e51ff680..f58241d677743627089c7d3a82bc04b892c059c2 100644 (file)
@@ -550,7 +550,7 @@ pub fn gepi(&self, base: ValueRef, ixs: &[uint]) -> ValueRef {
             for (small_vec_e, &ix) in small_vec.iter_mut().zip(ixs.iter()) {
                 *small_vec_e = C_i32(self.ccx, ix as i32);
             }
-            self.inbounds_gep(base, small_vec.slice(0, ixs.len()))
+            self.inbounds_gep(base, small_vec[..ixs.len()])
         } else {
             let v = ixs.iter().map(|i| C_i32(self.ccx, *i as i32)).collect::<Vec<ValueRef>>();
             self.count_insn("gepi");
index aada90d260e8f2f2b283d44907a78ef714b73235..dc328833d546b79d7d9e96ec0ba0626a60e32d87 100644 (file)
@@ -931,7 +931,7 @@ pub fn create_captured_var_metadata(bcx: Block,
 
     let variable_access = IndirectVariable {
         alloca: env_pointer,
-        address_operations: address_operations.slice_to(address_op_count)
+        address_operations: address_operations[..address_op_count]
     };
 
     declare_local(bcx,
index 2503fb2541b900824d4698e7bc48e46a6dfb1c5a..e618e08f8a4dd985133b2076e1c6c50b15b4b1b3 100644 (file)
@@ -290,7 +290,7 @@ fn ast_path_substs<'tcx,AC,RS>(
         }
     }
 
-    for param in ty_param_defs.slice_from(supplied_ty_param_count).iter() {
+    for param in ty_param_defs[supplied_ty_param_count..].iter() {
         match param.default {
             Some(default) => {
                 // This is a default type parameter.
index b0c0a8a571bd0d1f3bb036a8f70acdf8711bb08e..14ac81f236d13126b749f700ddb5aa69f5c34e6c 100644 (file)
@@ -3032,7 +3032,7 @@ fn check_method_call(fcx: &FnCtxt,
         };
 
         // Call the generic checker.
-        let args: Vec<_> = args.slice_from(1).iter().map(|x| x).collect();
+        let args: Vec<_> = args[1..].iter().map(|x| x).collect();
         let ret_ty = check_method_argument_types(fcx,
                                                  method_name.span,
                                                  fn_ty,
index 638aea10e37952fa1bc9306ffce827e83d27b6db..5ca6d08720fa689e4b71c37f5b054c81f86a8d9f 100644 (file)
@@ -490,7 +490,7 @@ pub fn parameterized(cx: &ctxt,
         0
     };
 
-    for t in tps.slice_to(tps.len() - num_defaults).iter() {
+    for t in tps[..tps.len() - num_defaults].iter() {
         strs.push(ty_to_string(cx, *t))
     }
 
index 8f3dd18c69c59c03a1ab33bdb43efc656da9311d..bf8d993964ff9b3ccd08f3533973347e8edbf2fa 100644 (file)
@@ -136,14 +136,14 @@ fn input(&mut self, input: &[u8], func: |&[u8]|) {
             let buffer_remaining = size - self.buffer_idx;
             if input.len() >= buffer_remaining {
                     copy_memory(
-                        self.buffer.slice_mut(self.buffer_idx, size),
-                        input.slice_to(buffer_remaining));
+                        self.buffer[mut self.buffer_idx..size],
+                        input[..buffer_remaining]);
                 self.buffer_idx = 0;
                 func(self.buffer);
                 i += buffer_remaining;
             } else {
                 copy_memory(
-                    self.buffer.slice_mut(self.buffer_idx, self.buffer_idx + input.len()),
+                    self.buffer[mut self.buffer_idx..self.buffer_idx + input.len()],
                     input);
                 self.buffer_idx += input.len();
                 return;
@@ -153,7 +153,7 @@ fn input(&mut self, input: &[u8], func: |&[u8]|) {
         // While we have at least a full buffer size chunk's worth of data, process that data
         // without copying it into the buffer
         while input.len() - i >= size {
-            func(input.slice(i, i + size));
+            func(input[i..i + size]);
             i += size;
         }
 
@@ -162,8 +162,8 @@ fn input(&mut self, input: &[u8], func: |&[u8]|) {
         // be empty.
         let input_remaining = input.len() - i;
         copy_memory(
-            self.buffer.slice_mut(0, input_remaining),
-            input.slice_from(i));
+            self.buffer[mut ..input_remaining],
+            input[i..]);
         self.buffer_idx += input_remaining;
     }
 
@@ -173,19 +173,19 @@ fn reset(&mut self) {
 
     fn zero_until(&mut self, idx: uint) {
         assert!(idx >= self.buffer_idx);
-        self.buffer.slice_mut(self.buffer_idx, idx).set_memory(0);
+        self.buffer[mut self.buffer_idx..idx].set_memory(0);
         self.buffer_idx = idx;
     }
 
     fn next<'s>(&'s mut self, len: uint) -> &'s mut [u8] {
         self.buffer_idx += len;
-        return self.buffer.slice_mut(self.buffer_idx - len, self.buffer_idx);
+        return self.buffer[mut self.buffer_idx - len..self.buffer_idx];
     }
 
     fn full_buffer<'s>(&'s mut self) -> &'s [u8] {
         assert!(self.buffer_idx == 64);
         self.buffer_idx = 0;
-        return self.buffer.slice_to(64);
+        return self.buffer[..64];
     }
 
     fn position(&self) -> uint { self.buffer_idx }
@@ -359,7 +359,7 @@ macro_rules! sha2_round(
              )
         )
 
-        read_u32v_be(w.slice_mut(0, 16), data);
+        read_u32v_be(w[mut 0..16], data);
 
         // Putting the message schedule inside the same loop as the round calculations allows for
         // the compiler to generate better code.
@@ -495,14 +495,14 @@ fn input(&mut self, d: &[u8]) {
     fn result(&mut self, out: &mut [u8]) {
         self.engine.finish();
 
-        write_u32_be(out.slice_mut(0, 4), self.engine.state.h0);
-        write_u32_be(out.slice_mut(4, 8), self.engine.state.h1);
-        write_u32_be(out.slice_mut(8, 12), self.engine.state.h2);
-        write_u32_be(out.slice_mut(12, 16), self.engine.state.h3);
-        write_u32_be(out.slice_mut(16, 20), self.engine.state.h4);
-        write_u32_be(out.slice_mut(20, 24), self.engine.state.h5);
-        write_u32_be(out.slice_mut(24, 28), self.engine.state.h6);
-        write_u32_be(out.slice_mut(28, 32), self.engine.state.h7);
+        write_u32_be(out[mut 0..4], self.engine.state.h0);
+        write_u32_be(out[mut 4..8], self.engine.state.h1);
+        write_u32_be(out[mut 8..12], self.engine.state.h2);
+        write_u32_be(out[mut 12..16], self.engine.state.h3);
+        write_u32_be(out[mut 16..20], self.engine.state.h4);
+        write_u32_be(out[mut 20..24], self.engine.state.h5);
+        write_u32_be(out[mut 24..28], self.engine.state.h6);
+        write_u32_be(out[mut 28..32], self.engine.state.h7);
     }
 
     fn reset(&mut self) {
index 054fbda73379c2b7c9bc421eeb8c62aafa4cf716..0b04536f05443f90a0de6d1e22fb049b0bc03e02 100644 (file)
@@ -698,7 +698,7 @@ fn clean(&self, cx: &DocContext) -> Item {
         let all_inputs = &self.pe_fn_decl().inputs;
         let inputs = match self.pe_explicit_self().node {
             ast::SelfStatic => all_inputs.as_slice(),
-            _ => all_inputs.slice_from(1)
+            _ => all_inputs[1..]
         };
         let decl = FnDecl {
             inputs: Arguments {
@@ -737,7 +737,7 @@ impl Clean<Item> for ast::TypeMethod {
     fn clean(&self, cx: &DocContext) -> Item {
         let inputs = match self.explicit_self.node {
             ast::SelfStatic => self.decl.inputs.as_slice(),
-            _ => self.decl.inputs.slice_from(1)
+            _ => self.decl.inputs[1..]
         };
         let decl = FnDecl {
             inputs: Arguments {
@@ -1009,7 +1009,7 @@ fn clean(&self, cx: &DocContext) -> Item {
                                                self.fty.sig.clone()),
             s => {
                 let sig = ty::FnSig {
-                    inputs: self.fty.sig.inputs.slice_from(1).to_vec(),
+                    inputs: self.fty.sig.inputs[1..].to_vec(),
                     ..self.fty.sig.clone()
                 };
                 let s = match s {
index 947d9f05ae2bba0cdc0915b0547ffd36cf809488..b52b34ff58124a991c9a3a014c0baa6a5343507f 100644 (file)
@@ -249,7 +249,7 @@ fn path(w: &mut fmt::Formatter, path: &clean::Path, print_all: bool,
         match rel_root {
             Some(root) => {
                 let mut root = String::from_str(root.as_slice());
-                for seg in path.segments.slice_to(amt).iter() {
+                for seg in path.segments[..amt].iter() {
                     if "super" == seg.name.as_slice() ||
                             "self" == seg.name.as_slice() {
                         try!(write!(w, "{}::", seg.name));
@@ -264,7 +264,7 @@ fn path(w: &mut fmt::Formatter, path: &clean::Path, print_all: bool,
                 }
             }
             None => {
-                for seg in path.segments.slice_to(amt).iter() {
+                for seg in path.segments[..amt].iter() {
                     try!(write!(w, "{}::", seg.name));
                 }
             }
@@ -275,7 +275,7 @@ fn path(w: &mut fmt::Formatter, path: &clean::Path, print_all: bool,
         // This is a documented path, link to it!
         Some((ref fqp, shortty)) if abs_root.is_some() => {
             let mut url = String::from_str(abs_root.unwrap().as_slice());
-            let to_link = fqp.slice_to(fqp.len() - 1);
+            let to_link = fqp[..fqp.len() - 1];
             for component in to_link.iter() {
                 url.push_str(component.as_slice());
                 url.push_str("/");
index 8668e684c2d643bf01105798478398338a4af720..f6ea0eea9db3607fc59dc02da3265fe5ef7f66ab 100644 (file)
@@ -394,7 +394,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> io::IoResult<String>
                     search_index.push(IndexItem {
                         ty: shortty(item),
                         name: item.name.clone().unwrap(),
-                        path: fqp.slice_to(fqp.len() - 1).connect("::"),
+                        path: fqp[..fqp.len() - 1].connect("::"),
                         desc: shorter(item.doc_value()).to_string(),
                         parent: Some(did),
                     });
@@ -549,7 +549,7 @@ fn collect(path: &Path, krate: &str,
         };
 
         let mut mydst = dst.clone();
-        for part in remote_path.slice_to(remote_path.len() - 1).iter() {
+        for part in remote_path[..remote_path.len() - 1].iter() {
             mydst.push(part.as_slice());
             try!(mkdir(&mydst));
         }
@@ -829,7 +829,7 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
                     clean::StructFieldItem(..) |
                     clean::VariantItem(..) => {
                         ((Some(*self.parent_stack.last().unwrap()),
-                          Some(self.stack.slice_to(self.stack.len() - 1))),
+                          Some(self.stack[..self.stack.len() - 1])),
                           false)
                     }
                     clean::MethodItem(..) => {
@@ -840,13 +840,13 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
                             let did = *last;
                             let path = match self.paths.find(&did) {
                                 Some(&(_, item_type::Trait)) =>
-                                    Some(self.stack.slice_to(self.stack.len() - 1)),
+                                    Some(self.stack[..self.stack.len() - 1]),
                                 // The current stack not necessarily has correlation for
                                 // where the type was defined. On the other hand,
                                 // `paths` always has the right information if present.
                                 Some(&(ref fqp, item_type::Struct)) |
                                 Some(&(ref fqp, item_type::Enum)) =>
-                                    Some(fqp.slice_to(fqp.len() - 1)),
+                                    Some(fqp[..fqp.len() - 1]),
                                 Some(..) => Some(self.stack.as_slice()),
                                 None => None
                             };
@@ -1172,7 +1172,7 @@ fn render(w: io::File, cx: &Context, it: &clean::Item,
                 let mut url = "../".repeat(cx.current.len());
                 match cache_key.get().unwrap().paths.find(&it.def_id) {
                     Some(&(ref names, _)) => {
-                        for name in names.slice_to(names.len() - 1).iter() {
+                        for name in names[..names.len() - 1].iter() {
                             url.push_str(name.as_slice());
                             url.push_str("/");
                         }
index 1561f428ce5484f84a13ebee6b7ead3c5e5b7c04..f07e8ecc335d7c0fda54b1807a6ff27c4e5fbe02 100644 (file)
@@ -562,7 +562,7 @@ fn begin_unwind_inner(msg: Box<Any + Send>, file_line: &(&'static str, uint)) ->
     // MAX_CALLBACKS, so we're sure to clamp it as necessary.
     let callbacks = unsafe {
         let amt = CALLBACK_CNT.load(atomic::SeqCst);
-        CALLBACKS.slice_to(cmp::min(amt, MAX_CALLBACKS))
+        CALLBACKS[..cmp::min(amt, MAX_CALLBACKS)]
     };
     for cb in callbacks.iter() {
         match cb.load(atomic::SeqCst) {
index 77e3e25eb0e7e9e60d310f6e6bf943f46cd6460c..455df88963e0d37315f1cc53653c128b613e27a3 100644 (file)
@@ -62,8 +62,8 @@ struct BufWriter<'a> {
     }
     impl<'a> FormatWriter for BufWriter<'a> {
         fn write(&mut self, bytes: &[u8]) -> fmt::Result {
-            let left = self.buf.slice_from_mut(self.pos);
-            let to_write = bytes.slice_to(cmp::min(bytes.len(), left.len()));
+            let left = self.buf[mut self.pos..];
+            let to_write = bytes[..cmp::min(bytes.len(), left.len())];
             slice::bytes::copy_memory(left, to_write);
             self.pos += to_write.len();
             Ok(())
@@ -74,7 +74,7 @@ fn write(&mut self, bytes: &[u8]) -> fmt::Result {
     let mut msg = [0u8, ..512];
     let mut w = BufWriter { buf: msg, pos: 0 };
     let _ = write!(&mut w, "{}", args);
-    let msg = str::from_utf8(w.buf.slice_to(w.pos)).unwrap_or("aborted");
+    let msg = str::from_utf8(w.buf[mut ..w.pos]).unwrap_or("aborted");
     let msg = if msg.is_empty() {"aborted"} else {msg};
 
     // Give some context to the message
index 3007e160bf8ae536078e643e20078dfb273901d0..7f329630e703ea988e740baf26f212f4c5d86916 100644 (file)
@@ -334,7 +334,7 @@ pub fn escape_bytes(wr: &mut io::Writer, bytes: &[u8]) -> Result<(), io::IoError
         };
 
         if start < i {
-            try!(wr.write(bytes.slice(start, i)));
+            try!(wr.write(bytes[start..i]));
         }
 
         try!(wr.write_str(escaped));
@@ -343,7 +343,7 @@ pub fn escape_bytes(wr: &mut io::Writer, bytes: &[u8]) -> Result<(), io::IoError
     }
 
     if start != bytes.len() {
-        try!(wr.write(bytes.slice_from(start)));
+        try!(wr.write(bytes[start..]));
     }
 
     wr.write_str("\"")
@@ -369,7 +369,7 @@ fn spaces(wr: &mut io::Writer, mut n: uint) -> Result<(), io::IoError> {
     }
 
     if n > 0 {
-        wr.write(buf.slice_to(n))
+        wr.write(buf[..n])
     } else {
         Ok(())
     }
@@ -1149,7 +1149,7 @@ pub fn get<'l>(&'l self, idx: uint) -> StackElement<'l> {
             InternalIndex(i) => { Index(i) }
             InternalKey(start, size) => {
                 Key(str::from_utf8(
-                    self.str_buffer.slice(start as uint, start as uint + size as uint)).unwrap())
+                    self.str_buffer[start as uint .. start as uint + size as uint]).unwrap())
             }
         }
     }
@@ -1191,7 +1191,7 @@ pub fn top<'l>(&'l self) -> Option<StackElement<'l>> {
             Some(&InternalIndex(i)) => Some(Index(i)),
             Some(&InternalKey(start, size)) => {
                 Some(Key(str::from_utf8(
-                    self.str_buffer.slice(start as uint, (start+size) as uint)
+                    self.str_buffer[start as uint .. (start+size) as uint]
                 ).unwrap()))
             }
         }
index d9543a06b350c83e385fa91401cff37c8ea571ac..754b440b0de8a873bd29d8b2408fdc907eae8a36 100644 (file)
@@ -90,10 +90,10 @@ pub fn unwrap(self) -> R { self.inner }
 impl<R: Reader> Buffer for BufferedReader<R> {
     fn fill_buf<'a>(&'a mut self) -> IoResult<&'a [u8]> {
         if self.pos == self.cap {
-            self.cap = try!(self.inner.read(self.buf.as_mut_slice()));
+            self.cap = try!(self.inner.read(self.buf[mut]));
             self.pos = 0;
         }
-        Ok(self.buf.slice(self.pos, self.cap))
+        Ok(self.buf[self.pos..self.cap])
     }
 
     fn consume(&mut self, amt: uint) {
@@ -107,7 +107,7 @@ fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
         let nread = {
             let available = try!(self.fill_buf());
             let nread = cmp::min(available.len(), buf.len());
-            slice::bytes::copy_memory(buf, available.slice_to(nread));
+            slice::bytes::copy_memory(buf, available[..nread]);
             nread
         };
         self.pos += nread;
@@ -162,7 +162,7 @@ pub fn new(inner: W) -> BufferedWriter<W> {
 
     fn flush_buf(&mut self) -> IoResult<()> {
         if self.pos != 0 {
-            let ret = self.inner.as_mut().unwrap().write(self.buf.slice_to(self.pos));
+            let ret = self.inner.as_mut().unwrap().write(self.buf[..self.pos]);
             self.pos = 0;
             ret
         } else {
@@ -195,7 +195,7 @@ fn write(&mut self, buf: &[u8]) -> IoResult<()> {
         if buf.len() > self.buf.len() {
             self.inner.as_mut().unwrap().write(buf)
         } else {
-            let dst = self.buf.slice_from_mut(self.pos);
+            let dst = self.buf[mut self.pos..];
             slice::bytes::copy_memory(dst, buf);
             self.pos += buf.len();
             Ok(())
@@ -250,9 +250,9 @@ impl<W: Writer> Writer for LineBufferedWriter<W> {
     fn write(&mut self, buf: &[u8]) -> IoResult<()> {
         match buf.iter().rposition(|&b| b == b'\n') {
             Some(i) => {
-                try!(self.inner.write(buf.slice_to(i + 1)));
+                try!(self.inner.write(buf[..i + 1]));
                 try!(self.inner.flush());
-                try!(self.inner.write(buf.slice_from(i + 1)));
+                try!(self.inner.write(buf[i + 1..]));
                 Ok(())
             }
             None => self.inner.write(buf),
index 0a969fc37c924aa6dc01c82ce0f4f39f47ad8d27..5bec131f22251d3e24666fb150947dfa47f15ed1 100644 (file)
@@ -15,8 +15,7 @@
 use io;
 use option::{None, Option, Some};
 use result::{Ok, Err};
-use slice::{bytes, MutableSlice, ImmutableSlice, CloneableVector};
-use str::StrSlice;
+use slice::{bytes, CloneableVector};
 use super::{Reader, Writer, IoResult};
 use vec::Vec;
 
@@ -62,10 +61,10 @@ fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
         loop {
             match self.buf {
                 Some(ref prev) => {
-                    let dst = buf.slice_from_mut(num_read);
-                    let src = prev.slice_from(self.pos);
+                    let dst = buf[mut num_read..];
+                    let src = prev[self.pos..];
                     let count = cmp::min(dst.len(), src.len());
-                    bytes::copy_memory(dst, src.slice_to(count));
+                    bytes::copy_memory(dst, src[..count]);
                     num_read += count;
                     self.pos += count;
                 },
index f777460e66a4538dca42541e3d238ae7314481d5..66d20835fb28887a8107e8897dcffb4a29a60307 100644 (file)
@@ -485,7 +485,7 @@ fn update_err<T>(result: IoResult<T>, from: &Path, to: &Path) -> IoResult<T> {
             Err(ref e) if e.kind == io::EndOfFile => { break }
             Err(e) => return update_err(Err(e), from, to)
         };
-        try!(writer.write(buf.slice_to(amt)));
+        try!(writer.write(buf[..amt]));
     }
 
     chmod(to, try!(update_err(from.stat(), from, to)).perm)
@@ -1014,7 +1014,7 @@ fn file_test_io_smoke_test() {
             let mut read_buf = [0, .. 1028];
             let read_str = match check!(read_stream.read(read_buf)) {
                 -1|0 => fail!("shouldn't happen"),
-                n => str::from_utf8(read_buf.slice_to(n)).unwrap().to_string()
+                n => str::from_utf8(read_buf[..n]).unwrap().to_string()
             };
             assert_eq!(read_str.as_slice(), message);
         }
@@ -1061,11 +1061,11 @@ fn file_test_io_non_positional_read() {
         {
             let mut read_stream = File::open_mode(filename, Open, Read);
             {
-                let read_buf = read_mem.slice_mut(0, 4);
+                let read_buf = read_mem[mut 0..4];
                 check!(read_stream.read(read_buf));
             }
             {
-                let read_buf = read_mem.slice_mut(4, 8);
+                let read_buf = read_mem[mut 4..8];
                 check!(read_stream.read(read_buf));
             }
         }
index c826bd16715d6618f3c6f6d422702c676d563278..ca9692ee1588da2411c7ba887d657c86e9f24248 100644 (file)
@@ -19,7 +19,7 @@
 use io;
 use io::{Reader, Writer, Seek, Buffer, IoError, SeekStyle, IoResult};
 use slice;
-use slice::{Slice, ImmutableSlice, MutableSlice};
+use slice::Slice;
 use vec::Vec;
 
 static BUF_CAPACITY: uint = 128;
@@ -146,8 +146,8 @@ fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
 
         let write_len = min(buf.len(), self.buf.len() - self.pos);
         {
-            let input = self.buf.slice(self.pos, self.pos + write_len);
-            let output = buf.slice_mut(0, write_len);
+            let input = self.buf[self.pos.. self.pos + write_len];
+            let output = buf[mut ..write_len];
             assert_eq!(input.len(), output.len());
             slice::bytes::copy_memory(output, input);
         }
@@ -174,7 +174,7 @@ impl Buffer for MemReader {
     #[inline]
     fn fill_buf<'a>(&'a mut self) -> IoResult<&'a [u8]> {
         if self.pos < self.buf.len() {
-            Ok(self.buf.slice_from(self.pos))
+            Ok(self.buf[self.pos..])
         } else {
             Err(io::standard_error(io::EndOfFile))
         }
@@ -232,7 +232,7 @@ fn write(&mut self, buf: &[u8]) -> IoResult<()> {
             })
         }
 
-        slice::bytes::copy_memory(self.buf.slice_from_mut(self.pos), buf);
+        slice::bytes::copy_memory(self.buf[mut self.pos..], buf);
         self.pos += buf.len();
         Ok(())
     }
@@ -292,8 +292,8 @@ fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> {
 
         let write_len = min(buf.len(), self.buf.len() - self.pos);
         {
-            let input = self.buf.slice(self.pos, self.pos + write_len);
-            let output = buf.slice_mut(0, write_len);
+            let input = self.buf[self.pos.. self.pos + write_len];
+            let output = buf[mut ..write_len];
             assert_eq!(input.len(), output.len());
             slice::bytes::copy_memory(output, input);
         }
@@ -320,7 +320,7 @@ impl<'a> Buffer for BufReader<'a> {
     #[inline]
     fn fill_buf<'a>(&'a mut self) -> IoResult<&'a [u8]> {
         if self.pos < self.buf.len() {
-            Ok(self.buf.slice_from(self.pos))
+            Ok(self.buf[self.pos..])
         } else {
             Err(io::standard_error(io::EndOfFile))
         }
@@ -427,7 +427,7 @@ fn test_mem_reader() {
         assert_eq!(buf.as_slice(), b);
         assert_eq!(reader.read(buf), Ok(3));
         let b: &[_] = &[5, 6, 7];
-        assert_eq!(buf.slice(0, 3), b);
+        assert_eq!(buf[0..3], b);
         assert!(reader.read(buf).is_err());
         let mut reader = MemReader::new(vec!(0, 1, 2, 3, 4, 5, 6, 7));
         assert_eq!(reader.read_until(3).unwrap(), vec!(0, 1, 2, 3));
@@ -454,7 +454,7 @@ fn test_buf_reader() {
         assert_eq!(buf.as_slice(), b);
         assert_eq!(reader.read(buf), Ok(3));
         let b: &[_] = &[5, 6, 7];
-        assert_eq!(buf.slice(0, 3), b);
+        assert_eq!(buf[0..3], b);
         assert!(reader.read(buf).is_err());
         let mut reader = BufReader::new(in_buf.as_slice());
         assert_eq!(reader.read_until(3).unwrap(), vec!(0, 1, 2, 3));
@@ -548,7 +548,7 @@ fn io_read_at_least() {
         assert!(r.read_at_least(buf.len(), buf).is_ok());
         let b: &[_] = &[1, 2, 3];
         assert_eq!(buf.as_slice(), b);
-        assert!(r.read_at_least(0, buf.slice_to_mut(0)).is_ok());
+        assert!(r.read_at_least(0, buf[mut ..0]).is_ok());
         assert_eq!(buf.as_slice(), b);
         assert!(r.read_at_least(buf.len(), buf).is_ok());
         let b: &[_] = &[4, 5, 6];
index b929e7c464df02f0f2e83a09728011ad9353fa0d..9768539b23e7f3da76e9a0e25d48e14e03f8bb79 100644 (file)
@@ -235,7 +235,7 @@ fn file_product(p: &Path) -> IoResult<u32> {
 use boxed::Box;
 use result::{Ok, Err, Result};
 use rt::rtio;
-use slice::{Slice, MutableSlice, ImmutableSlice};
+use slice::{Slice, ImmutableSlice};
 use str::{Str, StrSlice};
 use str;
 use string::String;
@@ -575,7 +575,7 @@ fn read_at_least(&mut self, min: uint, buf: &mut [u8]) -> IoResult<uint> {
         while read < min {
             let mut zeroes = 0;
             loop {
-                match self.read(buf.slice_from_mut(read)) {
+                match self.read(buf[mut read..]) {
                     Ok(0) => {
                         zeroes += 1;
                         if zeroes >= NO_PROGRESS_LIMIT {
@@ -1111,8 +1111,8 @@ fn write_line(&mut self, s: &str) -> IoResult<()> {
     #[inline]
     fn write_char(&mut self, c: char) -> IoResult<()> {
         let mut buf = [0u8, ..4];
-        let n = c.encode_utf8(buf.as_mut_slice()).unwrap_or(0);
-        self.write(buf.slice_to(n))
+        let n = c.encode_utf8(buf[mut]).unwrap_or(0);
+        self.write(buf[..n])
     }
 
     /// Write the result of passing n through `int::to_str_bytes`.
@@ -1496,7 +1496,7 @@ fn read_until(&mut self, byte: u8) -> IoResult<Vec<u8>> {
                 };
                 match available.iter().position(|&b| b == byte) {
                     Some(i) => {
-                        res.push_all(available.slice_to(i + 1));
+                        res.push_all(available[..i + 1]);
                         used = i + 1;
                         break
                     }
@@ -1528,14 +1528,14 @@ fn read_char(&mut self) -> IoResult<char> {
         {
             let mut start = 1;
             while start < width {
-                match try!(self.read(buf.slice_mut(start, width))) {
+                match try!(self.read(buf[mut start..width])) {
                     n if n == width - start => break,
                     n if n < width - start => { start += n; }
                     _ => return Err(standard_error(InvalidInput)),
                 }
             }
         }
-        match str::from_utf8(buf.slice_to(width)) {
+        match str::from_utf8(buf[..width]) {
             Some(s) => Ok(s.char_at(0)),
             None => Err(standard_error(InvalidInput))
         }
index 6eb7d1c02fbc7b47942a4fdcd90ce8b4fd11900f..5140159e4ea3790f1cdfc139e2744972bff9a158 100644 (file)
@@ -21,7 +21,7 @@
 use iter::Iterator;
 use option::{Option, None, Some};
 use str::StrSlice;
-use slice::{MutableCloneableSlice, ImmutableSlice, MutableSlice};
+use slice::{MutableCloneableSlice, MutableSlice};
 
 pub type Port = u16;
 
@@ -241,7 +241,7 @@ fn ipv6_addr_from_head_tail(head: &[u16], tail: &[u16]) -> IpAddr {
             assert!(head.len() + tail.len() <= 8);
             let mut gs = [0u16, ..8];
             gs.clone_from_slice(head);
-            gs.slice_mut(8 - tail.len(), 8).clone_from_slice(tail);
+            gs[mut 8 - tail.len() .. 8].clone_from_slice(tail);
             Ipv6Addr(gs[0], gs[1], gs[2], gs[3], gs[4], gs[5], gs[6], gs[7])
         }
 
@@ -303,7 +303,7 @@ fn read_groups(p: &mut Parser, groups: &mut [u16, ..8], limit: uint) -> (uint, b
 
         let mut tail = [0u16, ..8];
         let (tail_size, _) = read_groups(self, &mut tail, 8 - head_size);
-        Some(ipv6_addr_from_head_tail(head.slice(0, head_size), tail.slice(0, tail_size)))
+        Some(ipv6_addr_from_head_tail(head[..head_size], tail[..tail_size]))
     }
 
     fn read_ipv6_addr(&mut self) -> Option<IpAddr> {
index 3ba8765fc3e215cf7797fc0b544c88eff32e2a8c..4dd6f448ee504dd6f94030306c0874280c01210f 100644 (file)
@@ -48,7 +48,7 @@
 /// match socket.recv_from(buf) {
 ///     Ok((amt, src)) => {
 ///         // Send a reply to the socket we received data from
-///         let buf = buf.slice_to_mut(amt);
+///         let buf = buf[mut ..amt];
 ///         buf.reverse();
 ///         socket.send_to(buf, src);
 ///     }
index 16ac8c4c265fe09ce7c2edc16de233bd85bd63c5..820ae931f320484a3ef7fa8caf5b60c4618d67fd 100644 (file)
@@ -47,7 +47,7 @@ fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
         }
 
         let len = cmp::min(self.limit, buf.len());
-        let res = self.inner.read(buf.slice_to_mut(len));
+        let res = self.inner.read(buf[mut ..len]);
         match res {
             Ok(len) => self.limit -= len,
             _ => {}
@@ -59,7 +59,7 @@ fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
 impl<R: Buffer> Buffer for LimitReader<R> {
     fn fill_buf<'a>(&'a mut self) -> io::IoResult<&'a [u8]> {
         let amt = try!(self.inner.fill_buf());
-        let buf = amt.slice_to(cmp::min(amt.len(), self.limit));
+        let buf = amt[..cmp::min(amt.len(), self.limit)];
         if buf.len() == 0 {
             Err(io::standard_error(io::EndOfFile))
         } else {
@@ -216,7 +216,7 @@ pub fn unwrap(self) -> (R, W) {
 impl<R: Reader, W: Writer> Reader for TeeReader<R, W> {
     fn read(&mut self, buf: &mut [u8]) -> io::IoResult<uint> {
         self.reader.read(buf).and_then(|len| {
-            self.writer.write(buf.slice_to(len)).map(|()| len)
+            self.writer.write(buf[mut ..len]).map(|()| len)
         })
     }
 }
@@ -230,7 +230,7 @@ pub fn copy<R: Reader, W: Writer>(r: &mut R, w: &mut W) -> io::IoResult<()> {
             Err(ref e) if e.kind == io::EndOfFile => return Ok(()),
             Err(e) => return Err(e),
         };
-        try!(w.write(buf.slice_to(len)));
+        try!(w.write(buf[..len]));
     }
 }
 
index f5b2f31a127d603f25fc09ea5d8513e885d3380a..9e4cc06f0a2005c9a5bcec46a7eb2fc85448621a 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::i16::{BITS, BYTES, MIN, MAX};
index 623a10725c826387d8c942b9c0f79efd3e416658..54259fcad55cb700ebaaa3976374a2538445c4ab 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::i32::{BITS, BYTES, MIN, MAX};
index ffb1307908c90821941ee8721d7a7ed8c20989f2..b5fe6825ca4b4c12fba61d75bf89885e6e32bf45 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::i64::{BITS, BYTES, MIN, MAX};
index 4fbb7381238dc77569a6a05aafd84e20d1f9ac45..7aa9a41e340386330ea4ee1f9d88d7a107fe4b25 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::i8::{BITS, BYTES, MIN, MAX};
index 7821306f5fc3da122ee4d2f4d027a6920272b1c8..74ee61634c6950ed5b95072dc7a32e0fca6fbf4b 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::int::{BITS, BYTES, MIN, MAX};
index 3c01edf233925986005a4803c3dd1148191fd4e3..62e609bb2e18b962878158dcfc1a2a86b30ef86e 100644 (file)
@@ -78,7 +78,7 @@ pub fn to_str_bytes<U>(n: $T, radix: uint, f: |v: &[u8]| -> U) -> U {
         (write!(&mut wr, "{}", ::fmt::radix(n, radix as u8))).unwrap();
         wr.tell().unwrap() as uint
     };
-    f(buf.slice(0, amt))
+    f(buf[..amt])
 }
 
 #[deprecated = "use fmt::radix"]
index b15f334e233e82197863e80b27ea2421146eed89..f97bbe0dc8eab12955d5ffbbdb65e33ee5728e9f 100644 (file)
@@ -730,7 +730,7 @@ pub fn from_str_bytes_common<T:NumCast+Zero+One+PartialEq+PartialOrd+Div<T,T>+
         // parse remaining bytes as decimal integer,
         // skipping the exponent char
         let exp: Option<int> = from_str_bytes_common(
-            buf.slice(i+1, len), 10, true, false, false, ExpNone, false,
+            buf[i+1..len], 10, true, false, false, ExpNone, false,
             ignore_underscores);
 
         match exp {
index 0f00f99e980a2a6c387555fd8ca36bbb7b3cdd33..c141ecc9cba4ec3ae609e0d21fe4ade2a4cb61ce 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::u16::{BITS, BYTES, MIN, MAX};
index e6c6bc377b7aa304d51cb468c93f06ac091b6768..8a8e2729a5325d4b0764614a882e8c7d8e3497fb 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::u32::{BITS, BYTES, MIN, MAX};
index 7eb9e1a082fe872abb009e326cc94657d7048a41..1b4f8bc433f15299d28790b89c2482250d1ea3d9 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::u64::{BITS, BYTES, MIN, MAX};
index 300dd3bcc01a4cfc69f2f7965bb0f614a024f7ec..28f2242923560ee60869a093813bbfa24d504c95 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::u8::{BITS, BYTES, MIN, MAX};
index 0adc22e321406ebdce3ef58c05d77dec808c8521..da328074453925a64037b55735fc0d749b1e9355 100644 (file)
@@ -17,7 +17,6 @@
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use option::Option;
-use slice::ImmutableSlice;
 use string::String;
 
 pub use core::uint::{BITS, BYTES, MIN, MAX};
index cfcaf0fa8daa35d61ebaa203ecaf86446964fa0e..a033308af1616cc182837e78d407036b2804fd1c 100644 (file)
@@ -79,7 +79,7 @@ pub fn to_str_bytes<U>(n: $T, radix: uint, f: |v: &[u8]| -> U) -> U {
         (write!(&mut wr, "{}", ::fmt::radix(n, radix as u8))).unwrap();
         wr.tell().unwrap() as uint
     };
-    f(buf.slice(0, amt))
+    f(buf[..amt])
 }
 
 #[deprecated = "use fmt::radix"]
index 16552daae36b7526b0e109f30c88bc8ae52f187c..63c81695affd9c38c3313da4a68628ead7f049b8 100644 (file)
@@ -357,7 +357,7 @@ fn filestem<'a>(&'a self) -> Option<&'a [u8]> {
                 match name.rposition_elem(&dot) {
                     None | Some(0) => name,
                     Some(1) if name == b".." => name,
-                    Some(pos) => name.slice_to(pos)
+                    Some(pos) => name[..pos]
                 }
             })
         }
@@ -404,7 +404,7 @@ fn extension<'a>(&'a self) -> Option<&'a [u8]> {
                 match name.rposition_elem(&dot) {
                     None | Some(0) => None,
                     Some(1) if name == b".." => None,
-                    Some(pos) => Some(name.slice_from(pos+1))
+                    Some(pos) => Some(name[pos+1..])
                 }
             }
         }
@@ -480,7 +480,7 @@ fn set_extension<T: BytesContainer>(&mut self, extension: T) {
             let extlen = extension.container_as_bytes().len();
             match (name.rposition_elem(&dot), extlen) {
                 (None, 0) | (Some(0), 0) => None,
-                (Some(idx), 0) => Some(name.slice_to(idx).to_vec()),
+                (Some(idx), 0) => Some(name[..idx].to_vec()),
                 (idx, extlen) => {
                     let idx = match idx {
                         None | Some(0) => name.len(),
@@ -489,7 +489,7 @@ fn set_extension<T: BytesContainer>(&mut self, extension: T) {
 
                     let mut v;
                     v = Vec::with_capacity(idx + extlen + 1);
-                    v.push_all(name.slice_to(idx));
+                    v.push_all(name[..idx]);
                     v.push(dot);
                     v.push_all(extension.container_as_bytes());
                     Some(v)
index 9c4139853c540b275b44d91f59c7f7a39ad3c51e..3043c25f761dd6754cb6e08eecb6c20b57173d85 100644 (file)
@@ -165,7 +165,7 @@ unsafe fn set_filename_unchecked<T: BytesContainer>(&mut self, filename: T) {
             None => {
                 self.repr = Path::normalize(filename);
             }
-            Some(idx) if self.repr.slice_from(idx+1) == b".." => {
+            Some(idx) if self.repr[idx+1..] == b".." => {
                 let mut v = Vec::with_capacity(self.repr.len() + 1 + filename.len());
                 v.push_all(self.repr.as_slice());
                 v.push(SEP_BYTE);
@@ -175,7 +175,7 @@ unsafe fn set_filename_unchecked<T: BytesContainer>(&mut self, filename: T) {
             }
             Some(idx) => {
                 let mut v = Vec::with_capacity(idx + 1 + filename.len());
-                v.push_all(self.repr.slice_to(idx+1));
+                v.push_all(self.repr[..idx+1]);
                 v.push_all(filename);
                 // FIXME: this is slow
                 self.repr = Path::normalize(v.as_slice());
@@ -216,9 +216,9 @@ fn dirname<'a>(&'a self) -> &'a [u8] {
         match self.sepidx {
             None if b".." == self.repr.as_slice() => self.repr.as_slice(),
             None => dot_static,
-            Some(0) => self.repr.slice_to(1),
-            Some(idx) if self.repr.slice_from(idx+1) == b".." => self.repr.as_slice(),
-            Some(idx) => self.repr.slice_to(idx)
+            Some(0) => self.repr[..1],
+            Some(idx) if self.repr[idx+1..] == b".." => self.repr.as_slice(),
+            Some(idx) => self.repr[..idx]
         }
     }
 
@@ -227,9 +227,9 @@ fn filename<'a>(&'a self) -> Option<&'a [u8]> {
             None if b"." == self.repr.as_slice() ||
                 b".." == self.repr.as_slice() => None,
             None => Some(self.repr.as_slice()),
-            Some(idx) if self.repr.slice_from(idx+1) == b".." => None,
-            Some(0) if self.repr.slice_from(1).is_empty() => None,
-            Some(idx) => Some(self.repr.slice_from(idx+1))
+            Some(idx) if self.repr[idx+1..] == b".." => None,
+            Some(0) if self.repr[1..].is_empty() => None,
+            Some(idx) => Some(self.repr[idx+1..])
         }
     }
 
@@ -371,7 +371,7 @@ fn normalize<V: Slice<u8>+CloneableVector<u8>>(v: V) -> Vec<u8> {
         // borrowck is being very picky
         let val = {
             let is_abs = !v.as_slice().is_empty() && v.as_slice()[0] == SEP_BYTE;
-            let v_ = if is_abs { v.as_slice().slice_from(1) } else { v.as_slice() };
+            let v_ = if is_abs { v.as_slice()[1..] } else { v.as_slice() };
             let comps = normalize_helper(v_, is_abs);
             match comps {
                 None => None,
@@ -410,7 +410,7 @@ fn normalize<V: Slice<u8>+CloneableVector<u8>>(v: V) -> Vec<u8> {
     /// A path of "/" yields no components. A path of "." yields one component.
     pub fn components<'a>(&'a self) -> Components<'a> {
         let v = if self.repr[0] == SEP_BYTE {
-            self.repr.slice_from(1)
+            self.repr[1..]
         } else { self.repr.as_slice() };
         let mut ret = v.split(is_sep_byte);
         if v.is_empty() {
index a5458461a8b2562bb9975719491d623a686109b3..257bfc632d882f4b0a7fb760a29e7a1fd4e47136 100644 (file)
@@ -496,7 +496,7 @@ pub fn nodes_matching_suffix<'a, S:Str>(&'a self, parts: &'a [S])
         NodesMatchingSuffix {
             map: self,
             item_name: parts.last().unwrap(),
-            in_which: parts.slice_to(parts.len() - 1),
+            in_which: parts[..parts.len() - 1],
             idx: 0,
         }
     }
index f33c768d647575607a821aad4a6dc364604558bc..6d063aef5a99063e886aaeca006b592d98ce1058 100644 (file)
@@ -414,7 +414,7 @@ fn highlight_lines(err: &mut EmitterWriter,
     let mut elided = false;
     let mut display_lines = lines.lines.as_slice();
     if display_lines.len() > MAX_LINES {
-        display_lines = display_lines.slice(0u, MAX_LINES);
+        display_lines = display_lines[0u..MAX_LINES];
         elided = true;
     }
     // Print the offending lines
index f59a4465e1da4b4ad092e07c23cde8ed826ded95..6b921144144e26f133eea9fea79674a736959366 100644 (file)
@@ -285,13 +285,13 @@ macro_rules! try( ($e:expr) => (
 
 
             // Find the offset of the NUL we want to go to
-            let nulpos = string_table.slice(offset as uint, string_table_bytes as uint)
+            let nulpos = string_table[offset as uint .. string_table_bytes as uint]
                 .iter().position(|&b| b == 0);
             match nulpos {
                 Some(len) => {
                     string_map.insert(name.to_string(),
-                                      string_table.slice(offset as uint,
-                                          offset as uint + len).to_vec())
+                                      string_table[offset as uint ..
+                                          offset as uint + len].to_vec())
                 },
                 None => {
                     return Err("invalid file: missing NUL in \
index 5e812e500d6e81c6457db93de35e0e8725d73a76..1260cc33725f592b27b9c3d789997d401db293af 100644 (file)
@@ -50,7 +50,7 @@ fn rotate(x: &mut [i32]) {
 
 fn next_permutation(perm: &mut [i32], count: &mut [i32]) {
     for i in range(1, perm.len()) {
-        rotate(perm.slice_to_mut(i + 1));
+        rotate(perm[mut ..i + 1]);
         let count_i = &mut count[i];
         if *count_i >= i as i32 {
             *count_i = 0;
@@ -99,7 +99,7 @@ fn get(&mut self, mut idx: i32) -> P {
             let d = idx / self.fact[i] as i32;
             self.cnt[i] = d;
             idx %= self.fact[i] as i32;
-            for (place, val) in pp.iter_mut().zip(self.perm.p.slice_to(i + 1).iter()) {
+            for (place, val) in pp.iter_mut().zip(self.perm.p[..i+1].iter()) {
                 *place = (*val) as u8
             }
 
@@ -125,7 +125,7 @@ fn next(&mut self) -> P {
 
 
 fn reverse(tperm: &mut [i32], mut k: uint) {
-    tperm.slice_to_mut(k).reverse()
+    tperm[mut ..k].reverse()
 }
 
 fn work(mut perm: Perm, n: uint, max: uint) -> (i32, i32) {
index b68404bdd72387e96a908155f5792afba469679c..3f8c929aecf89440d30cd722e5e30b8e7f7cd745 100644 (file)
@@ -124,8 +124,8 @@ fn make(&mut self, n: uint) -> IoResult<()> {
 
         copy_memory(buf.as_mut_slice(), alu);
         let buf_len = buf.len();
-        copy_memory(buf.slice_mut(alu_len, buf_len),
-                    alu.slice_to(LINE_LEN));
+        copy_memory(buf[mut alu_len..buf_len],
+                    alu[..LINE_LEN]);
 
         let mut pos = 0;
         let mut bytes;
@@ -201,7 +201,7 @@ fn make(&mut self, n: uint) -> IoResult<()> {
         for i in range(0u, chars_left) {
             buf[i] = self.nextc();
         }
-        self.out.write(buf.slice_to(chars_left))
+        self.out.write(buf[..chars_left])
     }
 }
 
index e5ddcac1e8fcd1e730523237247de73db5456cc6..ed8ddcaa0ed5fd1f1c7dfdb9d625f351372219fe 100644 (file)
@@ -93,7 +93,7 @@ fn make_fasta<W: Writer, I: Iterator<u8>>(
         }
         n -= nb;
         line[nb] = '\n' as u8;
-        wr.write(line.slice_to(nb + 1));
+        wr.write(line[..nb+1]);
     }
 }
 
index f4d1cee5fb4ca11434a1378e3e555e334aeaf161..80d623bbeb1247043337b3a1b318381d8d222ef3 100644 (file)
@@ -97,11 +97,11 @@ fn windows_with_carry(bb: &[u8], nn: uint, it: |window: &[u8]|) -> Vec<u8> {
 
    let len = bb.len();
    while ii < len - (nn - 1u) {
-      it(bb.slice(ii, ii+nn));
+      it(bb[ii..ii+nn]);
       ii += 1u;
    }
 
-   return Vec::from_slice(bb.slice(len - (nn - 1u), len));
+   return Vec::from_slice(bb[len - (nn - 1u)..len]);
 }
 
 fn make_sequence_processor(sz: uint,
index cecc95354afefece8445db9bfd3940562acc58c4..70fd937d2a388eb8283f46e25161f4f944dc68db 100644 (file)
@@ -240,14 +240,14 @@ fn generate_frequencies(mut input: &[u8], frame: uint) -> Table {
     // Pull first frame.
     for _ in range(0, frame) {
         code = code.push_char(input[0]);
-        input = input.slice_from(1);
+        input = input[1..];
     }
     frequencies.lookup(code, BumpCallback);
 
     while input.len() != 0 && input[0] != ('>' as u8) {
         code = code.rotate(input[0], frame);
         frequencies.lookup(code, BumpCallback);
-        input = input.slice_from(1);
+        input = input[1..];
     }
     frequencies
 }
index e522bcaf4db7b6e286cdc7d1c925d1fbdfc78ef2..e5f22a3d07c2cf12a90dcb1486906acee43ed14c 100644 (file)
@@ -81,7 +81,7 @@ fn main() {
             Some(c) => c
         };
         let len = seq.len();
-        let seq = seq.slice_mut(begin + 1, len - 1);
+        let seq = seq[mut begin+1..len-1];
 
         // arrange line breaks
         let len = seq.len();
index 6cddd8ee9397bc4880c803f9f5cb90ea13b0402f..fc8c4e36075fa6c8ba6274ac9d36ed8e5dcc29a8 100644 (file)
@@ -11,5 +11,5 @@
 fn main() {
     let mut array = [1, 2, 3];
 //~^ ERROR cannot determine a type for this local variable: cannot determine the type of this integ
-    let pie_slice = array.slice(1, 2);
+    let pie_slice = array[1..2];
 }
index ba8c4d249ce7f4d381354677f543c6ffd0fc79ed..392a025b1f0bc31bb0d405d59eb09fa4b3ebe537 100644 (file)
@@ -94,7 +94,7 @@ fn main() {
     let empty: &[i64] = &[];
     let singleton: &[i64] = &[1];
     let multiple: &[i64] = &[2, 3, 4, 5];
-    let slice_of_slice = multiple.slice(1,3);
+    let slice_of_slice = multiple[1..3];
 
     let padded_tuple: &[(i32, i16)] = &[(6, 7), (8, 9)];
 
index c9f6733fa2587afdf6f0adb686d6cc44d4fc7d2b..2062967361906e89c7e291d13299f7c679a8bb8b 100644 (file)
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 fn vec_peek<'r, T>(v: &'r [T]) -> &'r [T] {
-    v.slice(1, 5)
+    v[1..5]
 }
 
 pub fn main() {}
index 822fda8a18ec825c3f93ca39d6379fe5d99e0305..0f3f9149536764beb2fcb9bf5225fabb1eeaa6af 100644 (file)
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn broken(v: &[u8], i: uint, j: uint) -> &[u8] { v.slice(i, j) }
+fn broken(v: &[u8], i: uint, j: uint) -> &[u8] { v[i..j] }
 
 pub fn main() {}
index dea352833f0edffeb3612967e6cf52e5f9aaf826..1838f34a9ab8b670f71d77b9cf016a9c4aa3773c 100644 (file)
@@ -21,7 +21,7 @@ pub fn main() {
     let abc = [1i, 2, 3];
     let tf = [true, false];
     let x  = [(), ()];
-    let slice = x.slice(0,1);
+    let slice = x[0..1];
     let z = box(GC) x;
 
     assert_repr_eq(abc, "[1, 2, 3]".to_string());