提交 ee584249 编写于 作者: B Ben Striegel

Clonify some of run-pass

上级 748c2c9e
......@@ -11,7 +11,7 @@
fn foo(x: Option<~int>, b: bool) -> int {
match x {
None => { 1 }
Some(copy x) if b => { *x }
Some(ref x) if b => { *x.clone() }
Some(_) => { 0 }
}
}
......
......@@ -43,7 +43,7 @@ pub fn main() {
// Call a method
for x.iterate() |y| { fail_unless!(x[*y] == *y); }
// Call a parameterized function
fail_unless!(length(copy x) == vec::len(x));
fail_unless!(length(x.clone()) == vec::len(x));
// Call a parameterized function, with type arguments that require
// a borrow
fail_unless!(length::<int, &[int]>(x) == vec::len(x));
......
......@@ -15,8 +15,8 @@
pub fn main() {
let v = ~[1, 2, 3, 4, 5];
let mut sum = 0;
iter_vec(copy v, |i| {
iter_vec(copy v, |j| {
iter_vec(v.clone(), |i| {
iter_vec(v.clone(), |j| {
sum += *i * *j;
});
});
......
......@@ -15,6 +15,6 @@ pub fn main() {
vec::map2(~[1, 2, 3, 4, 5],
~[true, false, false, true, true],
|i, b| if *b { -(*i) } else { *i } );
error!(copy v);
error!(v.clone());
fail_unless!((v == ~[-1, 2, 3, -4, -5]));
}
......@@ -13,7 +13,7 @@ fn borrow(x: &int, f: &fn(x: &int)) {
}
fn test1(x: @~int) {
do borrow(copy *x) |p| {
do borrow(&*x.clone()) |p| {
let x_a = ptr::addr_of(&(**x));
fail_unless!((x_a as uint) != ptr::to_uint(p));
fail_unless!(unsafe{*x_a} == *p);
......
......@@ -13,7 +13,7 @@
fn switcher(x: Option<@int>) {
let mut x = x;
match x {
Some(@y) => { copy y; x = None; }
Some(@y) => { y.clone(); x = None; }
None => { }
}
}
......
......@@ -22,7 +22,7 @@ pub struct cat {
}
pub impl cat {
fn get_name(&self) -> ~str { copy self.name }
fn get_name(&self) -> ~str { self.name.clone() }
}
pub fn cat(in_name: ~str) -> cat {
......
......@@ -53,7 +53,7 @@ fn cat(in_x : uint, in_y : int, in_name: ~str) -> cat {
cat {
meows: in_x,
how_hungry: in_y,
name: copy in_name
name: in_name.clone()
}
}
......
......@@ -9,8 +9,6 @@
// except according to those terms.
// xfail-fast
use core::to_str::*;
struct cat {
priv meows : uint,
......@@ -53,7 +51,12 @@ fn cat(in_x : uint, in_y : int, in_name: ~str) -> cat {
}
impl ToStr for cat {
pure fn to_str(&self) -> ~str { copy self.name }
pure fn to_str(&self) -> ~str {
// FIXME #5384: this unsafe block is to work around purity
unsafe {
self.name.clone()
}
}
}
fn print_out(thing: @ToStr, expected: ~str) {
......
......@@ -13,9 +13,9 @@
// -*- rust -*-
type compare<T> = @fn(~T, ~T) -> bool;
fn test_generic<T:Copy>(expected: ~T, eq: compare<T>) {
fn test_generic<T:Copy+Clone>(expected: ~T, eq: compare<T>) {
let actual: ~T = match true {
true => { copy expected },
true => { expected.clone() },
_ => fail!(~"wat")
};
fail_unless!((eq(expected, actual)));
......
......@@ -13,9 +13,9 @@
type compare<T> = @fn(T, T) -> bool;
fn test_generic<T:Copy>(expected: T, eq: compare<T>) {
fn test_generic<T:Copy+Clone>(expected: T, eq: compare<T>) {
let actual: T = match true {
true => copy expected,
true => expected.clone(),
_ => fail!(~"wat")
};
fail_unless!((eq(expected, actual)));
......
......@@ -13,8 +13,8 @@
// -*- rust -*-
type compare<T> = @fn(~T, ~T) -> bool;
fn test_generic<T:Copy>(expected: ~T, eq: compare<T>) {
let actual: ~T = { copy expected };
fn test_generic<T:Copy+Clone>(expected: ~T, eq: compare<T>) {
let actual: ~T = { expected.clone() };
fail_unless!((eq(expected, actual)));
}
......
......@@ -14,7 +14,7 @@
pub fn main() {
let expected = ~100;
let actual = id::<~int>(copy expected);
let actual = id::<~int>(expected.clone());
debug!(*actual);
fail_unless!((*expected == *actual));
}
......@@ -38,8 +38,8 @@ enum ctrl_proto { find_reducer(~[u8], Chan<int>), mapper_done, }
fn start_mappers(ctrl: SharedChan<ctrl_proto>, inputs: ~[~str]) {
for inputs.each |i| {
let ctrl = ctrl.clone();
let i = copy *i;
task::spawn(|| map_task(ctrl.clone(), copy i) );
let i = i.clone();
task::spawn(|| map_task(ctrl.clone(), i.clone()) );
}
}
......@@ -79,7 +79,7 @@ pub fn map_reduce(inputs: ~[~str]) {
reducers = oldmap::HashMap();
start_mappers(ctrl_chan, copy inputs);
start_mappers(ctrl_chan, inputs.clone());
let mut num_mappers = vec::len(inputs) as int;
......
......@@ -20,7 +20,7 @@ fn finalize(&self) {}
pub impl socket {
fn set_identity(&self) {
do closure {
setsockopt_bytes(copy self.sock)
setsockopt_bytes(self.sock.clone())
}
}
}
......
......@@ -14,5 +14,5 @@ fn a_val(&&x: ~int, +y: ~int) -> int {
pub fn main() {
let z = ~22;
a_val(copy z, copy z);
a_val(z.clone(), z.clone());
}
......@@ -27,6 +27,6 @@ pub fn main() {
let v = ~[~"123", ~"abc"];
node.content = ~[~"123", ~"abc"];
print_str_vector(v);
print_str_vector(copy node.content);
print_str_vector(node.content.clone());
}
......@@ -19,7 +19,7 @@ fn foo(name: ~str, samples_chan: Chan<Msg>) {
for uint::range(0, buffer.len())
|i| {error!("%?: %f", i, buffer[i])}
};
samples_chan.send(GetSamples(copy name, callback));
samples_chan.send(GetSamples(name.clone(), callback));
};
}
......
......@@ -14,7 +14,7 @@ fn parse_args() -> ~str {
let mut n = 0;
while n < args.len() {
match copy args[n] {
match args[n].clone() {
~"-v" => (),
s => {
return s;
......
......@@ -11,7 +11,7 @@
// xfail-test
pub fn main() {
for os::args().each |arg| {
match copy *arg {
match arg.clone() {
s => { }
}
}
......
......@@ -10,7 +10,7 @@
fn test_stack_assign() {
let s: ~str = ~"a";
debug!(copy s);
debug!(s.clone());
let t: ~str = ~"a";
fail_unless!((s == t));
let u: ~str = ~"b";
......@@ -49,7 +49,7 @@ fn test_append() {
let mut s = ~"a";
s += ~"b";
debug!(copy s);
debug!(s.clone());
fail_unless!((s == ~"ab"));
let mut s = ~"c";
......
......@@ -14,7 +14,7 @@ struct A { a: ~int }
fn foo() -> @fn() -> int {
let k = ~22;
let _u = A {a: copy k};
let _u = A {a: k.clone()};
let result: @fn() -> int = || 22;
result
}
......
......@@ -15,6 +15,6 @@ struct A { a: ~int }
pub fn main() {
fn invoke(f: @fn()) { f(); }
let k = ~22;
let _u = A {a: copy k};
invoke(|| error!(copy k) )
let _u = A {a: k.clone()};
invoke(|| error!(k.clone()) )
}
......@@ -43,7 +43,7 @@ pub fn main() {
fail_unless!(transform(Some(10)) == Some(~"11"));
fail_unless!(transform(None) == None);
fail_unless!((~[~"hi"])
.bind(|x| ~[copy *x, *x + ~"!"] )
.bind(|x| ~[copy *x, *x + ~"?"] ) ==
.bind(|x| ~[x.clone(), *x + ~"!"] )
.bind(|x| ~[x.clone(), *x + ~"?"] ) ==
~[~"hi", ~"hi?", ~"hi!", ~"hi!?"]);
}
......@@ -5,7 +5,7 @@
pub fn main() {
let y = ~3;
let foo: @fn(&int) -> int = {
let y = copy y;
let y = y.clone();
|x| *x + *y
};
fail_unless!(foo(@22) == 25);
......
......@@ -19,6 +19,6 @@ struct X { foo: ~str, bar: ~str }
pub fn main() {
let x = X {foo: ~"hello", bar: ~"world"};
debug!(copy x.foo);
debug!(copy x.bar);
debug!(x.foo.clone());
debug!(x.bar.clone());
}
......@@ -647,10 +647,10 @@ pub fn main() {
let v = @v as @TyVisitor;
visit_tydesc(td, v);
for (copy u.vals).each |s| {
for (u.vals.clone()).each |s| {
io::println(fmt!("val: %s", *s));
}
error!("%?", copy u.vals);
error!("%?", u.vals.clone());
fail_unless!(u.vals == ~[
~"1", ~"2", ~"3", ~"true", ~"false", ~"5", ~"4", ~"3", ~"12"
]);
......
......@@ -150,7 +150,7 @@ pub fn main() {
visit_ty::<i16>(vv);
visit_ty::<~[int]>(vv);
for (copy v.types).each {|s|
for (v.types.clone()).each {|s|
io::println(fmt!("type: %s", s));
}
fail_unless!(v.types == ["bool", "int", "i8", "i16",
......
......@@ -20,9 +20,9 @@ fn iter<T>(v: ~[T], it: &fn(&T) -> bool) {
}
}
fn find_pos<T:Eq + Copy>(n: T, h: ~[T]) -> Option<uint> {
fn find_pos<T:Eq + Copy + Clone>(n: T, h: ~[T]) -> Option<uint> {
let mut i = 0u;
for iter(copy h) |e| {
for iter(h.clone()) |e| {
if *e == n { return Some(i); }
i += 1u;
}
......@@ -31,8 +31,8 @@ fn find_pos<T:Eq + Copy>(n: T, h: ~[T]) -> Option<uint> {
fn bail_deep(x: ~[~[bool]]) {
let mut seen = false;
for iter(copy x) |x| {
for iter(copy *x) |x| {
for iter(x.clone()) |x| {
for iter(x.clone()) |x| {
fail_unless!(!seen);
if *x { seen = true; return; }
}
......
......@@ -20,7 +20,7 @@ pub fn main() {
{
match io::file_writer(&path, [io::Create, io::Truncate]) {
Err(copy e) => fail!(e),
Err(ref e) => fail!(e.clone()),
Ok(f) => {
for uint::range(0, 1000) |_i| {
f.write_u8(0);
......
......@@ -16,7 +16,7 @@
fn test1() {
let mut s: ~str = ~"hello";
s += ~"world";
debug!(copy s);
debug!(s.clone());
fail_unless!((s[9] == 'd' as u8));
}
......@@ -26,8 +26,8 @@ fn test2() {
let ff: ~str = ~"abc";
let a: ~str = ff + ~"ABC" + ff;
let b: ~str = ~"ABC" + ff + ~"ABC";
debug!(copy a);
debug!(copy b);
debug!(a.clone());
debug!(b.clone());
fail_unless!((a == ~"abcABCabc"));
fail_unless!((b == ~"ABCabcABC"));
}
......
......@@ -16,6 +16,6 @@ pub fn main() {
let a: ~str = ~"hello";
let b: ~str = ~"world";
let s: ~str = a + b;
debug!(copy s);
debug!(s.clone());
fail_unless!((s[9] == 'd' as u8));
}
......@@ -11,8 +11,8 @@
extern mod std;
fn test(actual: ~str, expected: ~str) {
debug!(copy actual);
debug!(copy expected);
debug!(actual.clone());
debug!(expected.clone());
fail_unless!((actual == expected));
}
......
......@@ -17,7 +17,7 @@ impl to_str for int {
fn to_str(&self) -> ~str { int::to_str(*self) }
}
impl to_str for ~str {
fn to_str(&self) -> ~str { copy *self }
fn to_str(&self) -> ~str { self.clone() }
}
impl to_str for () {
fn to_str(&self) -> ~str { ~"()" }
......
......@@ -12,7 +12,7 @@ pub fn main() {
let mut i = ~1;
// Should be a copy
let mut j;
j = copy i;
j = i.clone();
*i = 2;
*j = 3;
fail_unless!(*i == 2);
......
......@@ -11,7 +11,7 @@
pub fn main() {
let mut i = ~1;
// Should be a copy
let mut j = copy i;
let mut j = i.clone();
*i = 2;
*j = 3;
fail_unless!(*i == 2);
......
......@@ -10,7 +10,7 @@
pub fn main() {
let mut a = ~[~10];
let b = copy a;
let b = a.clone();
fail_unless!(*a[0] == 10);
fail_unless!(*b[0] == 10);
......
......@@ -10,6 +10,6 @@
pub fn main() {
let a = ~[1, 2, 3, 4, 5];
let mut b = ~[copy a, copy a];
let mut b = ~[a.clone(), a.clone()];
b = b + b; // FIXME(#3387)---can't write b += b
}
fn foldl<T, U: Copy>(
fn foldl<T, U: Copy+Clone>(
values: &[T],
initial: U,
function: &fn(partial: U, element: &T) -> U
......@@ -6,11 +6,11 @@ fn foldl<T, U: Copy>(
match values {
[head, ..tail] =>
foldl(tail, function(initial, &head), function),
[] => copy initial
[] => initial.clone()
}
}
fn foldr<T, U: Copy>(
fn foldr<T, U: Copy+Clone>(
values: &[T],
initial: U,
function: &fn(element: &T, partial: U) -> U
......@@ -18,7 +18,7 @@ fn foldr<T, U: Copy>(
match values {
[..head, tail] =>
foldr(head, function(&tail, initial), function),
[] => copy initial
[] => initial.clone()
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册