@@ -3,34 +3,31 @@ use chumsky::prelude::Parser;
33use chumsky:: prelude:: * ;
44use chumsky:: text:: whitespace;
55
6- pub fn expr < ' src > ( ) -> impl Parser <
7- ' src ,
8- & ' src str ,
9- Vec < Expr < ' src > > ,
10- extra:: Err < Rich < ' src , char > > ,
6+ pub fn expr < ' a > ( ) -> impl Parser <
7+ ' a ,
8+ & ' a str ,
9+ Vec < Expr < ' a > > ,
10+ extra:: Err < Rich < ' a , char > > ,
1111> {
1212 choice ( ( expr_use ( ) , expr_other ( ) ) )
1313 . repeated ( )
1414 . collect :: < Vec < _ > > ( )
1515}
1616
17- fn expr_use < ' src > ( ) -> impl Parser <
18- ' src ,
19- & ' src str ,
20- Expr < ' src > ,
21- extra:: Err < Rich < ' src , char > > ,
22- > {
17+ fn expr_use < ' a > ( )
18+ -> impl Parser < ' a , & ' a str , Expr < ' a > , extra:: Err < Rich < ' a , char > > >
19+ {
2320 just ( "use" )
2421 . ignore_then ( expr_use_rec ( ) )
2522 . then_ignore ( lexeme ( ";" ) . or_not ( ) )
2623 . map ( Expr :: Use )
2724}
2825
29- fn expr_use_rec < ' src > ( ) -> impl Parser <
30- ' src ,
31- & ' src str ,
32- ExprUse < ' src > ,
33- extra:: Err < Rich < ' src , char > > ,
26+ fn expr_use_rec < ' a > ( ) -> impl Parser <
27+ ' a ,
28+ & ' a str ,
29+ ExprUse < ' a > ,
30+ extra:: Err < Rich < ' a , char > > ,
3431> {
3532 recursive ( |expr_use_rec| {
3633 let item = expr_use_tok ( )
@@ -65,24 +62,18 @@ fn expr_use_rec<'src>() -> impl Parser<
6562 } )
6663}
6764
68- fn expr_use_tok < ' src > ( ) -> impl Parser <
69- ' src ,
70- & ' src str ,
71- & ' src str ,
72- extra:: Err < Rich < ' src , char > > ,
73- > + Clone {
65+ fn expr_use_tok < ' a > ( )
66+ -> impl Parser < ' a , & ' a str , & ' a str , extra:: Err < Rich < ' a , char > > >
67+ + Clone {
7468 token ( text:: ascii:: ident ( ) ) . and_is (
7569 keyword_except ( & [ "crate" , "super" , "self" , "Self" ] )
7670 . not ( ) ,
7771 )
7872}
7973
80- fn expr_other < ' src > ( ) -> impl Parser <
81- ' src ,
82- & ' src str ,
83- Expr < ' src > ,
84- extra:: Err < Rich < ' src , char > > ,
85- > {
74+ fn expr_other < ' a > ( )
75+ -> impl Parser < ' a , & ' a str , Expr < ' a > , extra:: Err < Rich < ' a , char > > >
76+ {
8677 any ( )
8778 . and_is ( expr_use ( ) . not ( ) )
8879 . repeated ( )
@@ -91,40 +82,40 @@ fn expr_other<'src>() -> impl Parser<
9182 . map ( Expr :: Other )
9283}
9384
94- fn token < ' src > (
85+ fn token < ' a > (
9586 tok : impl Parser <
96- ' src ,
97- & ' src str ,
98- & ' src str ,
99- extra:: Err < Rich < ' src , char > > ,
87+ ' a ,
88+ & ' a str ,
89+ & ' a str ,
90+ extra:: Err < Rich < ' a , char > > ,
10091 > + Clone ,
10192) -> impl Parser <
102- ' src ,
103- & ' src str ,
104- & ' src str ,
105- extra:: Err < Rich < ' src , char > > ,
93+ ' a ,
94+ & ' a str ,
95+ & ' a str ,
96+ extra:: Err < Rich < ' a , char > > ,
10697> + Clone {
10798 whitespace ( ) . or_not ( ) . ignore_then ( tok)
10899}
109100
110- fn lexeme < ' src > (
111- seq : & ' src str ,
101+ fn lexeme < ' a > (
102+ seq : & ' a str ,
112103) -> impl Parser <
113- ' src ,
114- & ' src str ,
115- & ' src str ,
116- extra:: Err < Rich < ' src , char > > ,
104+ ' a ,
105+ & ' a str ,
106+ & ' a str ,
107+ extra:: Err < Rich < ' a , char > > ,
117108> + Clone {
118109 token ( just ( seq) )
119110}
120111
121- fn keyword_except < ' src > (
112+ fn keyword_except < ' a > (
122113 except : & [ & str ] ,
123114) -> impl Parser <
124- ' src ,
125- & ' src str ,
126- & ' src str ,
127- extra:: Err < Rich < ' src , char > > ,
115+ ' a ,
116+ & ' a str ,
117+ & ' a str ,
118+ extra:: Err < Rich < ' a , char > > ,
128119> + Clone {
129120 choice (
130121 [
0 commit comments