1
Fork 0

Use temp vars for implicit coercion to ^[T]

This commit is contained in:
Nick Cameron 2014-08-04 14:19:02 +02:00
parent 34d607f9c9
commit 37a94b80f2
31 changed files with 381 additions and 215 deletions

View file

@ -415,21 +415,25 @@ mod test {
let mut buf = [0, 0, 0];
let nread = reader.read(buf);
assert_eq!(Ok(2), nread);
assert_eq!(buf.as_slice(), &[0, 1, 0]);
let b: &[_] = &[0, 1, 0];
assert_eq!(buf.as_slice(), b);
let mut buf = [0];
let nread = reader.read(buf);
assert_eq!(Ok(1), nread);
assert_eq!(buf.as_slice(), &[2]);
let b: &[_] = &[2];
assert_eq!(buf.as_slice(), b);
let mut buf = [0, 0, 0];
let nread = reader.read(buf);
assert_eq!(Ok(1), nread);
assert_eq!(buf.as_slice(), &[3, 0, 0]);
let b: &[_] = &[3, 0, 0];
assert_eq!(buf.as_slice(), b);
let nread = reader.read(buf);
assert_eq!(Ok(1), nread);
assert_eq!(buf.as_slice(), &[4, 0, 0]);
let b: &[_] = &[4, 0, 0];
assert_eq!(buf.as_slice(), b);
assert!(reader.read(buf).is_err());
}
@ -440,35 +444,41 @@ mod test {
let mut writer = BufferedWriter::with_capacity(2, inner);
writer.write([0, 1]).unwrap();
assert_eq!(writer.get_ref().get_ref(), &[]);
let b: &[_] = &[];
assert_eq!(writer.get_ref().get_ref(), b);
writer.write([2]).unwrap();
assert_eq!(writer.get_ref().get_ref(), &[0, 1]);
let b: &[_] = &[0, 1];
assert_eq!(writer.get_ref().get_ref(), b);
writer.write([3]).unwrap();
assert_eq!(writer.get_ref().get_ref(), &[0, 1]);
assert_eq!(writer.get_ref().get_ref(), b);
writer.flush().unwrap();
assert_eq!(&[0, 1, 2, 3], writer.get_ref().get_ref());
let a: &[_] = &[0, 1, 2, 3];
assert_eq!(a, writer.get_ref().get_ref());
writer.write([4]).unwrap();
writer.write([5]).unwrap();
assert_eq!(&[0, 1, 2, 3], writer.get_ref().get_ref());
assert_eq!(a, writer.get_ref().get_ref());
writer.write([6]).unwrap();
assert_eq!(&[0, 1, 2, 3, 4, 5],
let a: &[_] = &[0, 1, 2, 3, 4, 5];
assert_eq!(a,
writer.get_ref().get_ref());
writer.write([7, 8]).unwrap();
assert_eq!(&[0, 1, 2, 3, 4, 5, 6],
let a: &[_] = &[0, 1, 2, 3, 4, 5, 6];
assert_eq!(a,
writer.get_ref().get_ref());
writer.write([9, 10, 11]).unwrap();
assert_eq!(&[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
let a: &[_] = &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
assert_eq!(a,
writer.get_ref().get_ref());
writer.flush().unwrap();
assert_eq!(&[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
assert_eq!(a,
writer.get_ref().get_ref());
}
@ -476,9 +486,11 @@ mod test {
fn test_buffered_writer_inner_flushes() {
let mut w = BufferedWriter::with_capacity(3, MemWriter::new());
w.write([0, 1]).unwrap();
assert_eq!(&[], w.get_ref().get_ref());
let a: &[_] = &[];
assert_eq!(a, w.get_ref().get_ref());
let w = w.unwrap();
assert_eq!(&[0, 1], w.get_ref());
let a: &[_] = &[0, 1];
assert_eq!(a, w.get_ref());
}
// This is just here to make sure that we don't infinite loop in the
@ -519,20 +531,22 @@ mod test {
fn test_line_buffer() {
let mut writer = LineBufferedWriter::new(MemWriter::new());
writer.write([0]).unwrap();
assert_eq!(writer.get_ref().get_ref(), &[]);
let b: &[_] = &[];
assert_eq!(writer.get_ref().get_ref(), b);
writer.write([1]).unwrap();
assert_eq!(writer.get_ref().get_ref(), &[]);
assert_eq!(writer.get_ref().get_ref(), b);
writer.flush().unwrap();
assert_eq!(writer.get_ref().get_ref(), &[0, 1]);
let b: &[_] = &[0, 1];
assert_eq!(writer.get_ref().get_ref(), b);
writer.write([0, b'\n', 1, b'\n', 2]).unwrap();
assert_eq!(writer.get_ref().get_ref(),
&[0, 1, 0, b'\n', 1, b'\n']);
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n'];
assert_eq!(writer.get_ref().get_ref(), b);
writer.flush().unwrap();
assert_eq!(writer.get_ref().get_ref(),
&[0, 1, 0, b'\n', 1, b'\n', 2]);
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n', 2];
assert_eq!(writer.get_ref().get_ref(), b);
writer.write([3, b'\n']).unwrap();
assert_eq!(writer.get_ref().get_ref(),
&[0, 1, 0, b'\n', 1, b'\n', 2, 3, b'\n']);
let b: &[_] = &[0, 1, 0, b'\n', 1, b'\n', 2, 3, b'\n'];
assert_eq!(writer.get_ref().get_ref(), b);
}
#[test]