copy_memory(buf.as_mut_slice(), alu);
let buf_len = buf.len();
copy_memory(buf.slice_mut(alu_len, buf_len),
- alu.index(&(0..LINE_LEN)));
+ &alu[0..LINE_LEN]);
let mut pos = 0;
let mut bytes;
for i in range(0u, chars_left) {
buf[i] = self.nextc();
}
- self.out.write(buf.index(&(0..chars_left)))
+ self.out.write(&buf[0..chars_left])
}
}
// Pull first frame.
for _ in range(0, frame) {
code = code.push_char(input[0]);
- input = input.index(&(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.index(&(1..));
+ input = &input[1..];
}
frequencies
}
let mut a = [box 0i, box 1i];
drop(a[0]);
a[1] = box 2i;
- drop(a[0]); //~ ERROR use of moved value: `a.index(&(..))`
+ drop(a[0]); //~ ERROR use of moved value: `a[..]`
}
fn main() {
[1, 2, tail..] => tail,
_ => unreachable!()
};
- a[0] = 0; //~ ERROR cannot assign to `a.index(&(..))` because it is borrowed
+ a[0] = 0; //~ ERROR cannot assign to `a[..]` because it is borrowed
t[0];
}
let foo = Foo { bar: [1u8, 2, 3, 4, 5], baz: 10i32 };
unsafe {
let oof: Oof<[u8; 5], i32> = mem::transmute(foo);
- println!("{} {}", oof.rab.index(&FullRange), oof.zab);
+ println!("{} {}", &oof.rab[], oof.zab);
}
}
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-// Test slicing expr.index(&(..)) is an error and gives a helpful error message.
+// Test slicing expr[..] is an error and gives a helpful error message.
struct Foo;
fn main() {
let x = Foo;
- x.index(&(..)); //~ ERROR incorrect slicing expression: `[..]`
- //~^ NOTE use `expr.index(&FullRange)` to construct a slice of the whole of expr
+ &x[..]; //~ ERROR incorrect slicing expression: `[..]`
+ //~^ NOTE use `&expr[]` to construct a slice of the whole of expr
}
fn main() {
let x = Foo;
- x.index(&FullRange); //~ ERROR cannot take a slice of a value with type `Foo`
- x.index(&(Foo..)); //~ ERROR cannot take a slice of a value with type `Foo`
- x.index(&(0..Foo)); //~ ERROR cannot take a slice of a value with type `Foo`
- x.index(&(Foo..Foo)); //~ ERROR cannot take a slice of a value with type `Foo`
+ &x[]; //~ ERROR cannot take a slice of a value with type `Foo`
+ &x[Foo..]; //~ ERROR cannot take a slice of a value with type `Foo`
+ &x[0..Foo]; //~ ERROR cannot take a slice of a value with type `Foo`
+ &x[Foo..Foo]; //~ ERROR cannot take a slice of a value with type `Foo`
}
let y;
{
let x: &[int] = &[1, 2, 3, 4, 5]; //~ ERROR borrowed value does not live long enough
- y = x.index(&(1..));
+ y = &x[1..];
}
}
let x: &[int] = &[1, 2, 3, 4, 5];
// Can't mutably slice an immutable slice
let slice: &mut [int] = &mut [0, 1];
- x.index(&(2..4)) = slice; //~ ERROR cannot borrow
+ &mut x[2..4] = slice; //~ ERROR cannot borrow
}
fn main() {
let x: &[int] = &[1, 2, 3, 4, 5];
// Immutable slices are not mutable.
- let y: &mut[_] = x.index(&(2..4)); //~ ERROR cannot borrow immutable dereference of `&`-pointer as mutabl
+ let y: &mut[_] = &x[2..4]; //~ ERROR cannot borrow immutable dereference of `&`-pointer as mutabl
}
let empty: &[i64] = &[];
let singleton: &[i64] = &[1];
let multiple: &[i64] = &[2, 3, 4, 5];
- let slice_of_slice = multiple.index(&(1..3));
+ let slice_of_slice = &multiple[1..3];
let padded_tuple: &[(i32, i16)] = &[(6, 7), (8, 9)];
let mut rbml_w = EBwriter::Encoder::new(&mut wr);
a1.encode(&mut rbml_w);
- let d: serialize::rbml::Doc<'a> = EBDoc::new(wr.index(&FullRange));
+ let d: serialize::rbml::Doc<'a> = EBDoc::new(&wr[]);
let mut decoder: EBReader::Decoder<'a> = EBreader::Decoder::new(d);
let a2: A = Decodable::decode(&mut decoder);
assert!(*a1 == a2);
let mut w = Vec::new();
let mut e = Encoder::new(&mut w);
obj.encode(&mut e);
- let doc = rbml::Doc::new(@w.index(&FullRange));
+ let doc = rbml::Doc::new(&w[]);
let mut dec = Decoder::new(doc);
let obj2 = Decodable::decode(&mut dec);
assert!(obj == obj2);
let x = [(), ()];
let slice = x.index(&(0..1));
- assert_repr_eq(abc.index(&FullRange), "[1, 2, 3]".to_string());
- assert_repr_eq(tf.index(&FullRange), "[true, false]".to_string());
- assert_repr_eq(x.index(&FullRange), "[(), ()]".to_string());
+ assert_repr_eq(&abc[], "[1, 2, 3]".to_string());
+ assert_repr_eq(&tf[], "[true, false]".to_string());
+ assert_repr_eq(&x[], "[(), ()]".to_string());
assert_repr_eq(slice, "[()]".to_string());
- assert_repr_eq(x.index(&FullRange), "[(), ()]".to_string());
+ assert_repr_eq(&x[], "[(), ()]".to_string());
}
print!("[");
for xi in x.iter() {
- print!("{}, ", (*xi)[]);
+ print!("{}, ", &xi[]);
}
println!("]");
- println!("{}", y.index(&FullRange));
+ println!("{}", &y[]);
}
fn main() {
let x: &[int] = &[1, 2, 3, 4, 5];
let cmp: &[int] = &[1, 2, 3, 4, 5];
- assert!(x.index(&FullRange) == cmp);
+ assert!(&x[] == cmp);
let cmp: &[int] = &[3, 4, 5];
- assert!(x.index(&(2..)) == cmp);
+ assert!(&x[2..] == cmp);
let cmp: &[int] = &[1, 2, 3];
- assert!(x.index(&(0..3)) == cmp);
+ assert!(&x[0..3] == cmp);
let cmp: &[int] = &[2, 3, 4];
- assert!(x.index(&(1..4)) == cmp);
+ assert!(&x[1..4] == cmp);
let x: Vec<int> = vec![1, 2, 3, 4, 5];
let cmp: &[int] = &[1, 2, 3, 4, 5];
- assert!(x.index(&FullRange) == cmp);
+ assert!(&x[] == cmp);
let cmp: &[int] = &[3, 4, 5];
- assert!(x.index(&(2..)) == cmp);
+ assert!(&x[2..] == cmp);
let cmp: &[int] = &[1, 2, 3];
- assert!(x.index(&(0..3)) == cmp);
+ assert!(&x[0..3] == cmp);
let cmp: &[int] = &[2, 3, 4];
- assert!(x.index(&(1..4)) == cmp);
+ assert!(&x[1..4] == cmp);
let x: &mut [int] = &mut [1, 2, 3, 4, 5];
{
let cmp: &mut [int] = &mut [1, 2, 3, 4, 5];
- assert!(x[mut] == cmp);
+ assert!(&mut x[] == cmp);
}
{
let cmp: &mut [int] = &mut [3, 4, 5];
- assert!(x[mut 2..] == cmp);
+ assert!(&mut x[2..] == cmp);
}
{
let cmp: &mut [int] = &mut [1, 2, 3];
- assert!(x[mut ..3] == cmp);
+ assert!(&mut x[..3] == cmp);
}
{
let cmp: &mut [int] = &mut [2, 3, 4];
- assert!(x[mut 1..4] == cmp);
+ assert!(&mut x[1..4] == cmp);
}
let mut x: Vec<int> = vec![1, 2, 3, 4, 5];
{
let cmp: &mut [int] = &mut [1, 2, 3, 4, 5];
- assert!(x[mut] == cmp);
+ assert!(&mut x[] == cmp);
}
{
let cmp: &mut [int] = &mut [3, 4, 5];
- assert!(x[mut 2..] == cmp);
+ assert!(&mut x[2..] == cmp);
}
{
let cmp: &mut [int] = &mut [1, 2, 3];
- assert!(x[mut ..3] == cmp);
+ assert!(&mut x[..3] == cmp);
}
{
let cmp: &mut [int] = &mut [2, 3, 4];
- assert!(x[mut 1..4] == cmp);
+ assert!(&mut x[1..4] == cmp);
}
}
#![feature(slicing_syntax)]
extern crate core;
-use core::ops::{Slice,SliceMut};
+use core::ops::{Index, Range, RangeTo, RangeFrom, FullRange};
static mut COUNT: uint = 0;
self
}
}
+
fn main() {
let mut x = Foo;
- x.index(&FullRange);
- x.index(&(Foo..));
- x.index(&(0..Foo));
- x.index(&(Foo..Foo));
- x[mut];
- x[mut Foo..];
- x[mut ..Foo];
- x[mut Foo..Foo];
+ &x[];
+ &x[Foo..];
+ &x[0..Foo];
+ &x[Foo..Foo];
+ &mut x[];
+ &mut x[Foo..];
+ &mut x[..Foo];
+ &mut x[Foo..Foo];
unsafe {
assert!(COUNT == 8);
}