diff options
| author | bors <bors@rust-lang.org> | 2013-03-05 21:12:38 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-03-05 21:12:38 -0800 |
| commit | 165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98 (patch) | |
| tree | 43dcf5c92761891df95bc33c2480426708926e73 /src/libsyntax | |
| parent | 7c9b808d46d6b718cd25a813c9426c0c199b0acb (diff) | |
| parent | 743cfce7032e3b0649c22bf1c397280192bf9e95 (diff) | |
| download | rust-165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98.tar.gz rust-165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98.zip | |
auto merge of #5213 : erickt/rust/vec-ref, r=graydon
This patch series changes a handful of vec functions to return references instead of copies. The one downside with making this change is that these functions aren't usable in a couple cases now due to some purity complaints. For example, this [change](https://github.com/erickt/rust/commit/c31e81a532fc07e89be33cadb5109d167aa725f4#L1R87). I couldn't figure out a way to get `last` to work on a `@mut ~[...]` type, so I ended up having to use `*crate_cache[crate_cache.len() - 1].metas`.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast_util.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/attr.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/transcribe.rs | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 680101e673c..ba683004aee 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -31,7 +31,7 @@ pub pure fn path_name_i(idents: &[ident], intr: @token::ident_interner) } -pub pure fn path_to_ident(p: @path) -> ident { vec::last(p.idents) } +pub pure fn path_to_ident(p: @path) -> ident { copy *p.idents.last() } pub pure fn local_def(id: node_id) -> def_id { ast::def_id { crate: local_crate, node: id } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 7739a862432..fb7143f7c14 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -229,7 +229,7 @@ fn last_meta_item_by_name(items: &[@ast::meta_item], name: &str) -> Option<@ast::meta_item> { let items = attr::find_meta_items_by_name(items, name); - vec::last_opt(items) + items.last_opt().map(|item| **item) } pub fn last_meta_item_value_str_by_name(items: &[@ast::meta_item], name: &str) diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 79264f7adf0..116ecc37d2e 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -167,7 +167,7 @@ pub fn tt_next_token(r: @mut TtReader) -> TokenAndSpan { while r.cur.idx >= r.cur.readme.len() { /* done with this set; pop or repeat? */ if ! r.cur.dotdotdoted - || r.repeat_idx.last() == r.repeat_len.last() - 1 { + || { *r.repeat_idx.last() == *r.repeat_len.last() - 1 } { match r.cur.up { None => { |
