aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_mbe/src/syntax_bridge.rs
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2019-04-08 08:58:02 +0100
committerEdwin Cheng <[email protected]>2019-04-08 08:58:02 +0100
commit2697ecaa64570841f0ed2a3ca5bc02cf41dccc4a (patch)
tree4d1e37b88e7322abc247cf42915714cee91a5a7e /crates/ra_mbe/src/syntax_bridge.rs
parenta7254201df07fb929ca689857d7472564d484c3e (diff)
Use SubtreeWalker instread of flatten TtToken
Diffstat (limited to 'crates/ra_mbe/src/syntax_bridge.rs')
-rw-r--r--crates/ra_mbe/src/syntax_bridge.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/ra_mbe/src/syntax_bridge.rs b/crates/ra_mbe/src/syntax_bridge.rs
index b0fb91a63..19c17bd55 100644
--- a/crates/ra_mbe/src/syntax_bridge.rs
+++ b/crates/ra_mbe/src/syntax_bridge.rs
@@ -105,16 +105,16 @@ fn convert_tt(
105 Some(res) 105 Some(res)
106} 106}
107 107
108struct TtTreeSink<'a> { 108struct TtTreeSink<'a, Q: Querier> {
109 buf: String, 109 buf: String,
110 src_querier: Querier<'a>, 110 src_querier: &'a Q,
111 text_pos: TextUnit, 111 text_pos: TextUnit,
112 token_pos: usize, 112 token_pos: usize,
113 inner: SyntaxTreeBuilder, 113 inner: SyntaxTreeBuilder,
114} 114}
115 115
116impl<'a> TtTreeSink<'a> { 116impl<'a, Q: Querier> TtTreeSink<'a, Q> {
117 fn new(src_querier: Querier<'a>) -> TtTreeSink { 117 fn new(src_querier: &'a Q) -> Self {
118 TtTreeSink { 118 TtTreeSink {
119 buf: String::new(), 119 buf: String::new(),
120 src_querier, 120 src_querier,
@@ -125,10 +125,10 @@ impl<'a> TtTreeSink<'a> {
125 } 125 }
126} 126}
127 127
128impl<'a> TreeSink for TtTreeSink<'a> { 128impl<'a, Q: Querier> TreeSink for TtTreeSink<'a, Q> {
129 fn token(&mut self, kind: SyntaxKind, n_tokens: u8) { 129 fn token(&mut self, kind: SyntaxKind, n_tokens: u8) {
130 for _ in 0..n_tokens { 130 for _ in 0..n_tokens {
131 self.buf += self.src_querier.token(self.token_pos).1; 131 self.buf += &self.src_querier.token(self.token_pos).1;
132 self.token_pos += 1; 132 self.token_pos += 1;
133 } 133 }
134 self.text_pos += TextUnit::of_str(&self.buf); 134 self.text_pos += TextUnit::of_str(&self.buf);