Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit 690630d

Browse files
committed
Extract pattern guard parsing
1 parent 8d3ba46 commit 690630d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/napkin_core.ml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3095,20 +3095,22 @@ and parseWhileExpression p =
30953095
let loc = mkLoc startPos p.prevEndPos in
30963096
Ast_helper.Exp.while_ ~loc expr1 expr2
30973097

3098+
and parsePatternGuard p =
3099+
match p.Parser.token with
3100+
| When ->
3101+
Parser.next p;
3102+
Some (parseExpr ~context:WhenExpr p)
3103+
| _ ->
3104+
None
3105+
30983106
and parsePatternMatchCase p =
30993107
Parser.beginRegion p;
31003108
Parser.leaveBreadcrumb p Grammar.PatternMatchCase;
31013109
match p.Parser.token with
31023110
| Token.Bar ->
31033111
Parser.next p;
31043112
let lhs = parsePattern p in
3105-
let guard = match p.Parser.token with
3106-
| When ->
3107-
Parser.next p;
3108-
Some (parseExpr ~context:WhenExpr p)
3109-
| _ ->
3110-
None
3111-
in
3113+
let guard = parsePatternGuard p in
31123114
let () = match p.token with
31133115
| EqualGreater -> Parser.next p
31143116
| _ -> Recover.recoverEqualGreater p

0 commit comments

Comments
 (0)