@@ -12,7 +12,7 @@ use crate::parser::pr::*;
1212use crate :: parser:: types:: type_expr;
1313use crate :: span:: Span ;
1414
15- pub fn expr_call ( ) -> impl Parser < TokenKind , Expr , Error = PError > {
15+ pub fn expr_call ( ) -> impl Parser < TokenKind , Expr , Error = PError > + Clone {
1616 let expr = expr ( ) ;
1717
1818 lambda_func ( expr. clone ( ) ) . or ( func_call ( expr) )
@@ -231,9 +231,9 @@ pub fn expr() -> impl Parser<TokenKind, Expr, Error = PError> + Clone {
231231 } )
232232}
233233
234- pub fn pipeline < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError >
234+ pub fn pipeline < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError > + Clone
235235where
236- E : Parser < TokenKind , Expr , Error = PError > ,
236+ E : Parser < TokenKind , Expr , Error = PError > + Clone ,
237237{
238238 // expr has to be a param, because it can be either a normal expr() or
239239 // a recursive expr called from within expr()
@@ -266,7 +266,7 @@ where
266266pub fn binary_op_parser < ' a , Term , Op > (
267267 term : Term ,
268268 op : Op ,
269- ) -> impl Parser < TokenKind , Expr , Error = PError > + ' a
269+ ) -> impl Parser < TokenKind , Expr , Error = PError > + ' a + Clone
270270where
271271 Term : Parser < TokenKind , Expr , Error = PError > + ' a ,
272272 Op : Parser < TokenKind , BinOp , Error = PError > + ' a ,
@@ -292,7 +292,7 @@ where
292292 . boxed ( )
293293}
294294
295- fn func_call < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError >
295+ fn func_call < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError > + Clone
296296where
297297 E : Parser < TokenKind , Expr , Error = PError > + Clone ,
298298{
@@ -344,7 +344,7 @@ where
344344 . labelled ( "function call" )
345345}
346346
347- fn lambda_func < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError >
347+ fn lambda_func < E > ( expr : E ) -> impl Parser < TokenKind , Expr , Error = PError > + Clone
348348where
349349 E : Parser < TokenKind , Expr , Error = PError > + Clone + ' static ,
350350{
@@ -404,7 +404,7 @@ where
404404 . labelled ( "function definition" )
405405}
406406
407- pub fn ident ( ) -> impl Parser < TokenKind , Ident , Error = PError > {
407+ pub fn ident ( ) -> impl Parser < TokenKind , Ident , Error = PError > + Clone {
408408 ident_part ( )
409409 . separated_by ( ctrl ( '.' ) )
410410 . at_least ( 1 )
0 commit comments