This commit is contained in:
Nick Cameron 2015-01-03 13:34:13 +13:00
parent e970db37a9
commit 77ed497456
17 changed files with 52 additions and 51 deletions

View File

@ -130,7 +130,7 @@ impl<'a, W: Writer> RepeatFasta<'a, W> {
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;
@ -206,7 +206,7 @@ impl<'a, W: Writer> RandomFasta<'a, W> {
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])
}
}

View File

@ -247,14 +247,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.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
}

View File

@ -12,7 +12,7 @@ fn f() {
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() {

View File

@ -14,6 +14,6 @@ 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];
}

View File

@ -34,6 +34,6 @@ fn main() {
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);
}
}

View File

@ -8,12 +8,12 @@
// 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
}

View File

@ -16,8 +16,8 @@ struct Foo;
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`
}

View File

@ -16,6 +16,6 @@ fn main() {
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..];
}
}

View File

@ -16,5 +16,5 @@ fn main() {
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
}

View File

@ -15,5 +15,5 @@
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
}

View File

@ -93,7 +93,7 @@ fn main() {
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)];

View File

@ -35,7 +35,7 @@ fn test_rbml<'a, 'b, A:
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);

View File

@ -59,7 +59,7 @@ fn roundtrip<'a, T: Rand + Eq + Encodable<Encoder<'a>> +
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);

View File

@ -20,9 +20,9 @@ pub fn main() {
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());
}

View File

@ -16,8 +16,8 @@ pub fn main() {
print!("[");
for xi in x.iter() {
print!("{}, ", (*xi)[]);
print!("{}, ", &xi[]);
}
println!("]");
println!("{}", y.index(&FullRange));
println!("{}", &y[]);
}

View File

@ -15,57 +15,57 @@
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);
}
}

View File

@ -13,7 +13,7 @@
#![feature(slicing_syntax)]
extern crate core;
use core::ops::{Slice,SliceMut};
use core::ops::{Index, Range, RangeTo, RangeFrom, FullRange};
static mut COUNT: uint = 0;
@ -56,16 +56,17 @@ impl SliceMut<Foo, Foo> for Foo {
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);
}