diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-10-28 13:23:50 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-10-28 13:24:39 -0700 |
| commit | d53a253dcae826eb50856bf28c90f2a0c84dec33 (patch) | |
| tree | bee047aa051b3dffd77ee3f0f7b260004e627249 | |
| parent | 83219269d54a04ac072cce0e4eb6d7ca7d07014c (diff) | |
stdlib: make list::from_vec take [mutable? T]
| -rw-r--r-- | src/lib/list.rs | 2 | ||||
| -rw-r--r-- | src/test/stdtest/list.rs | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/list.rs b/src/lib/list.rs index d368b609275..10500e64c95 100644 --- a/src/lib/list.rs +++ b/src/lib/list.rs @@ -25,7 +25,7 @@ Function: from_vec Create a list from a vector */ -fn from_vec<T>(v: [T]) -> list<T> { +fn from_vec<T>(v: [mutable? T]) -> list<T> { let l = nil::<T>; // FIXME: This would be faster and more space efficient if it looped over // a reverse vector iterator. Unfortunately generic iterators seem not to diff --git a/src/test/stdtest/list.rs b/src/test/stdtest/list.rs index a53132e879c..0bfbcbe68a4 100644 --- a/src/test/stdtest/list.rs +++ b/src/test/stdtest/list.rs @@ -15,6 +15,14 @@ fn test_from_vec() { } #[test] +fn test_from_vec_mut() { + let l = from_vec([mutable 0, 1, 2]); + assert (car(l) == 0); + assert (car(cdr(l)) == 1); + assert (car(cdr(cdr(l))) == 2); +} + +#[test] fn test_foldl() { let l = from_vec([0, 1, 2, 3, 4]); fn add(&&a: int, &&b: uint) -> uint { ret (a as uint) + b; } |
