Skip to content

Commit 0505fc6

Browse files
committed
Merge pull request #3343 from killerswan/modes9
More deprecated mode removal (sort.rs, fun_treemap.rs)
2 parents aea4220 + 134e5c8 commit 0505fc6

File tree

7 files changed

+30
-17
lines changed

7 files changed

+30
-17
lines changed

src/cargo/cargo.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,8 @@ fn print_pkg(s: source, p: package) {
14991499
fn print_source(s: source) {
15001500
info(s.name + ~" (" + s.url + ~")");
15011501

1502-
let pks = sort::merge_sort(sys::shape_lt, copy s.packages);
1502+
let unsorted_pks = s.packages; // to prevent illegal borrow?
1503+
let pks = sort::merge_sort(sys::shape_lt, unsorted_pks);
15031504
let l = vec::len(pks);
15041505

15051506
print(io::with_str_writer(|writer| {

src/libstd/base64.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#[forbid(deprecated_mode)];
2+
#[forbid(deprecated_pattern)];
13
#[deny(non_camel_case_types)];
24
import io::Reader;
35

src/libstd/cell.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#[forbid(deprecated_mode)];
2+
#[forbid(deprecated_pattern)];
13
/// A dynamic, mutable location.
24
///
35
/// Similar to a mutable option type, but friendlier.

src/libstd/fun_treemap.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#[deny(non_camel_case_types)];
2+
#[forbid(deprecated_mode)];
3+
#[forbid(deprecated_pattern)];
24

35
/*!
46
* A functional key,value store that works on anything.
@@ -32,8 +34,8 @@ enum TreeNode<K, V> {
3234
fn init<K, V>() -> Treemap<K, V> { @Empty }
3335

3436
/// Insert a value into the map
35-
fn insert<K: copy Eq Ord, V: copy>(m: Treemap<K, V>, k: K, v: V)
36-
-> Treemap<K, V> {
37+
fn insert<K: copy Eq Ord, V: copy>(m: Treemap<K, V>, +k: K, +v: V)
38+
-> Treemap<K, V> {
3739
@match m {
3840
@Empty => Node(@k, @v, @Empty, @Empty),
3941
@Node(@kk, vv, left, right) => {
@@ -47,7 +49,7 @@ fn insert<K: copy Eq Ord, V: copy>(m: Treemap<K, V>, k: K, v: V)
4749
}
4850

4951
/// Find a value based on the key
50-
fn find<K: Eq Ord, V: copy>(m: Treemap<K, V>, k: K) -> Option<V> {
52+
fn find<K: Eq Ord, V: copy>(m: Treemap<K, V>, +k: K) -> Option<V> {
5153
match *m {
5254
Empty => None,
5355
Node(@kk, @v, left, right) => {

src/libstd/map.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
//! A map type
22
3-
#[warn(deprecated_mode)];
3+
#[forbid(deprecated_mode)];
4+
#[forbid(deprecated_pattern)];
45

56
import io::WriterUtil;
67
import to_str::ToStr;

src/libstd/sort.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
//! Sorting methods
2+
#[forbid(deprecated_mode)];
3+
#[forbid(deprecated_pattern)];
4+
25
import vec::{len, push};
36
import core::cmp::{Eq, Ord};
47

@@ -15,12 +18,12 @@ type le<T> = pure fn(v1: &T, v2: &T) -> bool;
1518
* Has worst case O(n log n) performance, best case O(n), but
1619
* is not space efficient. This is a stable sort.
1720
*/
18-
fn merge_sort<T: copy>(le: le<T>, v: ~[const T]) -> ~[T] {
21+
fn merge_sort<T: copy>(le: le<T>, v: &[const T]) -> ~[T] {
1922
type slice = (uint, uint);
2023

2124
return merge_sort_(le, v, (0u, len(v)));
2225

23-
fn merge_sort_<T: copy>(le: le<T>, v: ~[const T], slice: slice)
26+
fn merge_sort_<T: copy>(le: le<T>, v: &[const T], slice: slice)
2427
-> ~[T] {
2528
let begin = slice.first();
2629
let end = slice.second();
@@ -35,7 +38,7 @@ fn merge_sort<T: copy>(le: le<T>, v: ~[const T]) -> ~[T] {
3538
return merge(le, merge_sort_(le, v, a), merge_sort_(le, v, b));
3639
}
3740

38-
fn merge<T: copy>(le: le<T>, a: ~[T], b: ~[T]) -> ~[T] {
41+
fn merge<T: copy>(le: le<T>, a: &[T], b: &[T]) -> ~[T] {
3942
let mut rs = ~[];
4043
vec::reserve(rs, len(a) + len(b));
4144
let a_len = len(a);
@@ -54,7 +57,7 @@ fn merge_sort<T: copy>(le: le<T>, v: ~[const T]) -> ~[T] {
5457
}
5558
}
5659

57-
fn part<T: copy>(compare_func: le<T>, arr: ~[mut T], left: uint,
60+
fn part<T: copy>(compare_func: le<T>, arr: &[mut T], left: uint,
5861
right: uint, pivot: uint) -> uint {
5962
let pivot_value = arr[pivot];
6063
arr[pivot] <-> arr[right];
@@ -71,7 +74,7 @@ fn part<T: copy>(compare_func: le<T>, arr: ~[mut T], left: uint,
7174
return storage_index;
7275
}
7376

74-
fn qsort<T: copy>(compare_func: le<T>, arr: ~[mut T], left: uint,
77+
fn qsort<T: copy>(compare_func: le<T>, arr: &[mut T], left: uint,
7578
right: uint) {
7679
if right > left {
7780
let pivot = (left + right) / 2u;
@@ -90,12 +93,12 @@ fn qsort<T: copy>(compare_func: le<T>, arr: ~[mut T], left: uint,
9093
* Has worst case O(n^2) performance, average case O(n log n).
9194
* This is an unstable sort.
9295
*/
93-
fn quick_sort<T: copy>(compare_func: le<T>, arr: ~[mut T]) {
96+
fn quick_sort<T: copy>(compare_func: le<T>, arr: &[mut T]) {
9497
if len::<T>(arr) == 0u { return; }
9598
qsort::<T>(compare_func, arr, 0u, len::<T>(arr) - 1u);
9699
}
97100

98-
fn qsort3<T: copy Ord Eq>(arr: ~[mut T], left: int, right: int) {
101+
fn qsort3<T: copy Ord Eq>(arr: &[mut T], left: int, right: int) {
99102
if right <= left { return; }
100103
let v: T = arr[right];
101104
let mut i: int = left - 1;
@@ -152,14 +155,14 @@ fn qsort3<T: copy Ord Eq>(arr: ~[mut T], left: int, right: int) {
152155
*
153156
* This is an unstable sort.
154157
*/
155-
fn quick_sort3<T: copy Ord Eq>(arr: ~[mut T]) {
158+
fn quick_sort3<T: copy Ord Eq>(arr: &[mut T]) {
156159
if arr.len() <= 1 { return; }
157160
qsort3(arr, 0, (arr.len() - 1) as int);
158161
}
159162

160163
#[cfg(test)]
161164
mod test_qsort3 {
162-
fn check_sort(v1: ~[mut int], v2: ~[mut int]) {
165+
fn check_sort(v1: &[mut int], v2: &[mut int]) {
163166
let len = vec::len::<int>(v1);
164167
quick_sort3::<int>(v1);
165168
let mut i = 0u;
@@ -198,7 +201,7 @@ mod test_qsort3 {
198201

199202
#[cfg(test)]
200203
mod test_qsort {
201-
fn check_sort(v1: ~[mut int], v2: ~[mut int]) {
204+
fn check_sort(v1: &[mut int], v2: &[mut int]) {
202205
let len = vec::len::<int>(v1);
203206
pure fn leual(a: &int, b: &int) -> bool { *a <= *b }
204207
quick_sort::<int>(leual, v1);
@@ -258,7 +261,7 @@ mod test_qsort {
258261
#[cfg(test)]
259262
mod tests {
260263

261-
fn check_sort(v1: ~[int], v2: ~[int]) {
264+
fn check_sort(v1: &[int], v2: &[int]) {
262265
let len = vec::len::<int>(v1);
263266
pure fn le(a: &int, b: &int) -> bool { *a <= *b }
264267
let f = le;

src/libstd/unicode.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#[forbid(deprecated_mode)];
2+
#[forbid(deprecated_pattern)];
13

24
mod icu {
35
type UBool = u8;
@@ -231,4 +233,4 @@ mod tests {
231233
assert (unicode::icu::is_upper('M'));
232234
assert (!unicode::icu::is_upper('m'));
233235
}
234-
}
236+
}

0 commit comments

Comments
 (0)