diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-01-26 08:39:45 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-01-28 09:18:34 -0800 |
| commit | 259636a112804b94530c409a468b97d4366bb0d3 (patch) | |
| tree | 572db0f59b254355db6ea83caaf6181e25856009 /src | |
| parent | a831e7ce13aa19acf0f65e508097351f8dabca84 (diff) | |
| download | rust-259636a112804b94530c409a468b97d4366bb0d3.tar.gz rust-259636a112804b94530c409a468b97d4366bb0d3.zip | |
core: rename vec::position* functions
Almost all of the vec functions that predicates don't have a corresponding function that takes a single element, so this commit renames the common fn usecase to be the default.
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/middle/alias.rs | 2 | ||||
| -rw-r--r-- | src/comp/middle/shape.rs | 2 | ||||
| -rw-r--r-- | src/comp/middle/trans/base.rs | 2 | ||||
| -rw-r--r-- | src/comp/middle/typeck.rs | 2 | ||||
| -rw-r--r-- | src/libcore/vec.rs | 37 | ||||
| -rw-r--r-- | src/libstd/getopts.rs | 2 |
6 files changed, 25 insertions, 22 deletions
diff --git a/src/comp/middle/alias.rs b/src/comp/middle/alias.rs index 10a45349d4a..a8a88dfa193 100644 --- a/src/comp/middle/alias.rs +++ b/src/comp/middle/alias.rs @@ -679,7 +679,7 @@ fn filter_invalid(src: list<@invalid>, bs: [binding]) -> list<@invalid> { while cur != list::nil { alt cur { list::cons(head, tail) { - let p = vec::position_pred(bs, {|b| b.node_id == head.node_id}); + let p = vec::position(bs, {|b| b.node_id == head.node_id}); if !is_none(p) { out = list::cons(head, @out); } cur = *tail; } diff --git a/src/comp/middle/shape.rs b/src/comp/middle/shape.rs index 7612148df45..389f490e8e9 100644 --- a/src/comp/middle/shape.rs +++ b/src/comp/middle/shape.rs @@ -430,7 +430,7 @@ fn shape_of(ccx: @crate_ctxt, t: ty::t, ty_param_map: [uint]) -> [u8] { } ty::ty_param(n, _) { // Find the type parameter in the parameter list. - alt vec::position(n, ty_param_map) { + alt vec::position_elt(ty_param_map, n) { some(i) { s += [shape_var, i as u8]; } none { fail "ty param not found in ty_param_map"; } } diff --git a/src/comp/middle/trans/base.rs b/src/comp/middle/trans/base.rs index 9b423be389e..03c98dfa827 100644 --- a/src/comp/middle/trans/base.rs +++ b/src/comp/middle/trans/base.rs @@ -3375,7 +3375,7 @@ fn trans_rec(bcx: @block_ctxt, fields: [ast::field], let ty_fields = alt ty::struct(bcx_tcx(bcx), t) { ty::ty_rec(f) { f } }; let temp_cleanups = []; for fld in fields { - let ix = option::get(vec::position_pred(ty_fields, {|ft| + let ix = option::get(vec::position(ty_fields, {|ft| str::eq(fld.node.ident, ft.ident) })); let dst = GEP_tup_like_1(bcx, t, addr, [0, ix as int]); diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 8a06314a96b..b9137924652 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -1513,7 +1513,7 @@ fn lookup_method(fcx: @fn_ctxt, isc: resolve::iscopes, ty::ty_iface(i, tps) { (i, tps) } }; let ifce_methods = ty::iface_methods(tcx, iid); - alt vec::position_pred(*ifce_methods, {|m| m.ident == name}) { + alt vec::position(*ifce_methods, {|m| m.ident == name}) { some(pos) { let m = ifce_methods[pos]; ret some({method_ty: ty::mk_fn(tcx, m.fty), diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 4dabab99c23..1279d1a8e40 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -614,7 +614,7 @@ fn find<T: copy>(v: [T], f: fn(T) -> bool) -> option::t<T> { } /* -Function: position +Function: position_elt Find the first index containing a matching value @@ -623,18 +623,16 @@ Returns: option::some(uint) - The first index containing a matching value option::none - No elements matched */ -fn position<T>(x: T, v: [T]) -> option::t<uint> { - let i: uint = 0u; - while i < len(v) { if x == v[i] { ret some::<uint>(i); } i += 1u; } - ret none; +fn position_elt<T>(v: [T], x: T) -> option::t<uint> { + position(v) { |y| x == y } } /* -Function: position_pred +Function: position Find the first index for which the value matches some predicate */ -fn position_pred<T>(v: [T], f: fn(T) -> bool) -> option::t<uint> { +fn position<T>(v: [T], f: fn(T) -> bool) -> option::t<uint> { let i: uint = 0u; while i < len(v) { if f(v[i]) { ret some::<uint>(i); } i += 1u; } ret none; @@ -1453,21 +1451,26 @@ mod tests { } #[test] - fn test_position() { - let v1: [int] = [1, 2, 3, 3, 2, 5]; - assert (position(1, v1) == option::some::<uint>(0u)); - assert (position(2, v1) == option::some::<uint>(1u)); - assert (position(5, v1) == option::some::<uint>(5u)); - assert (position(4, v1) == option::none::<uint>); + fn test_position_elt() { + assert position_elt([], 1) == none; + + let v1 = [1, 2, 3, 3, 2, 5]; + assert position_elt(v1, 1) == some(0u); + assert position_elt(v1, 2) == some(1u); + assert position_elt(v1, 5) == some(5u); + assert position_elt(v1, 4) == none; } #[test] - fn test_position_pred() { + fn test_position() { fn less_than_three(&&i: int) -> bool { ret i < 3; } fn is_eighteen(&&i: int) -> bool { ret i == 18; } - let v1: [int] = [5, 4, 3, 2, 1]; - assert position_pred(v1, less_than_three) == option::some::<uint>(3u); - assert position_pred(v1, is_eighteen) == option::none::<uint>; + + assert position([], less_than_three) == none; + + let v1 = [5, 4, 3, 2, 1]; + assert position(v1, less_than_three) == some(3u); + assert position(v1, is_eighteen) == none; } #[test] diff --git a/src/libstd/getopts.rs b/src/libstd/getopts.rs index b870dde34c6..c517a2f996d 100644 --- a/src/libstd/getopts.rs +++ b/src/libstd/getopts.rs @@ -149,7 +149,7 @@ fn name_str(nm: name) -> str { } fn find_opt(opts: [opt], nm: name) -> option::t<uint> { - vec::position_pred(opts, { |opt| opt.name == nm }) + vec::position(opts, { |opt| opt.name == nm }) } /* |
