diff options
Diffstat (limited to 'crates/ra_tt/src')
-rw-r--r-- | crates/ra_tt/src/buffer.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/ra_tt/src/buffer.rs b/crates/ra_tt/src/buffer.rs index a149205fb..56b844b8b 100644 --- a/crates/ra_tt/src/buffer.rs +++ b/crates/ra_tt/src/buffer.rs | |||
@@ -29,21 +29,21 @@ impl TokenBuffer { | |||
29 | pub fn new(tokens: &[TokenTree]) -> TokenBuffer { | 29 | pub fn new(tokens: &[TokenTree]) -> TokenBuffer { |
30 | let mut buffers = vec![]; | 30 | let mut buffers = vec![]; |
31 | 31 | ||
32 | let idx = TokenBuffer::new_inner(tokens.to_vec(), &mut buffers, None); | 32 | let idx = TokenBuffer::new_inner(tokens, &mut buffers, None); |
33 | assert_eq!(idx, 0); | 33 | assert_eq!(idx, 0); |
34 | 34 | ||
35 | TokenBuffer { buffers } | 35 | TokenBuffer { buffers } |
36 | } | 36 | } |
37 | 37 | ||
38 | fn new_inner( | 38 | fn new_inner( |
39 | tokens: Vec<TokenTree>, | 39 | tokens: &[TokenTree], |
40 | buffers: &mut Vec<Box<[Entry]>>, | 40 | buffers: &mut Vec<Box<[Entry]>>, |
41 | next: Option<EntryPtr>, | 41 | next: Option<EntryPtr>, |
42 | ) -> usize { | 42 | ) -> usize { |
43 | let mut entries = vec![]; | 43 | let mut entries = vec![]; |
44 | let mut children = vec![]; | 44 | let mut children = vec![]; |
45 | 45 | ||
46 | for (idx, tt) in tokens.into_iter().enumerate() { | 46 | for (idx, tt) in tokens.iter().cloned().enumerate() { |
47 | match tt { | 47 | match tt { |
48 | TokenTree::Leaf(leaf) => { | 48 | TokenTree::Leaf(leaf) => { |
49 | entries.push(Entry::Leaf(leaf)); | 49 | entries.push(Entry::Leaf(leaf)); |
@@ -61,7 +61,7 @@ impl TokenBuffer { | |||
61 | 61 | ||
62 | for (child_idx, subtree) in children { | 62 | for (child_idx, subtree) in children { |
63 | let idx = TokenBuffer::new_inner( | 63 | let idx = TokenBuffer::new_inner( |
64 | subtree.token_trees.clone(), | 64 | &subtree.token_trees, |
65 | buffers, | 65 | buffers, |
66 | Some(EntryPtr(EntryId(res), child_idx + 1)), | 66 | Some(EntryPtr(EntryId(res), child_idx + 1)), |
67 | ); | 67 | ); |