aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/parsing/parser_impl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/src/parsing/parser_impl.rs')
-rw-r--r--crates/ra_syntax/src/parsing/parser_impl.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/ra_syntax/src/parsing/parser_impl.rs b/crates/ra_syntax/src/parsing/parser_impl.rs
index c0d2b6ec1..96de32fc2 100644
--- a/crates/ra_syntax/src/parsing/parser_impl.rs
+++ b/crates/ra_syntax/src/parsing/parser_impl.rs
@@ -54,7 +54,7 @@ pub(super) fn parse_with<S: TreeSink>(
54) -> S::Tree { 54) -> S::Tree {
55 let mut events = { 55 let mut events = {
56 let input = input::ParserInput::new(text, tokens); 56 let input = input::ParserInput::new(text, tokens);
57 let parser_impl = ParserImpl::new(input); 57 let parser_impl = ParserImpl::new(&input);
58 let mut parser_api = Parser(parser_impl); 58 let mut parser_api = Parser(parser_impl);
59 parser(&mut parser_api); 59 parser(&mut parser_api);
60 parser_api.0.into_events() 60 parser_api.0.into_events()
@@ -65,15 +65,15 @@ pub(super) fn parse_with<S: TreeSink>(
65/// Implementation details of `Parser`, extracted 65/// Implementation details of `Parser`, extracted
66/// to a separate struct in order not to pollute 66/// to a separate struct in order not to pollute
67/// the public API of the `Parser`. 67/// the public API of the `Parser`.
68pub(super) struct ParserImpl<S> { 68pub(super) struct ParserImpl<'a> {
69 token_source: S, 69 token_source: &'a dyn TokenSource,
70 pos: InputPosition, 70 pos: InputPosition,
71 events: Vec<Event>, 71 events: Vec<Event>,
72 steps: Cell<u32>, 72 steps: Cell<u32>,
73} 73}
74 74
75impl<S: TokenSource> ParserImpl<S> { 75impl<'a> ParserImpl<'a> {
76 fn new(token_source: S) -> ParserImpl<S> { 76 fn new(token_source: &'a dyn TokenSource) -> ParserImpl<'a> {
77 ParserImpl { 77 ParserImpl {
78 token_source, 78 token_source,
79 pos: InputPosition::new(), 79 pos: InputPosition::new(),