Skip to content

Commit 5753505

Browse files
committed
Sketch shonky and! addition to AST
1 parent 92df296 commit 5753505

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/fsharp/ast.fs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,14 @@ and
480480

481481

482482

483+
and
484+
[<NoEquality; NoComparison;RequireQualifiedAccess>]
485+
SynAndBangExpr =
486+
/// AndBang(isUse, bindings, body, wholeRange)
487+
///
488+
/// F# syntax: and! pat = expr in expr (Must follow on directly from a let! / and!)
489+
| AndBang of isUse:bool * bindings:SynBinding list * body:SynAndBangExpr * range:range
490+
| EndOfAndBangChain of SynExpr
483491
and
484492
[<NoEquality; NoComparison;RequireQualifiedAccess>]
485493
SynExpr =
@@ -690,10 +698,11 @@ and
690698

691699
/// SynExpr.LetOrUseBang(spBind, isUse, isFromSource, pat, rhsExpr, bodyExpr, mWholeExpr).
692700
///
693-
/// F# syntax: let! pat = expr in expr
694-
/// F# syntax: use! pat = expr in expr
701+
/// F# syntax: let! pat = expr in expr'
702+
/// F# syntax: use! pat = expr in expr'
703+
/// where expr' admits an immediate and!
695704
/// Computation expressions only
696-
| LetOrUseBang of bindSeqPoint:SequencePointInfoForBinding * isUse:bool * isFromSource:bool * SynPat * SynExpr * SynExpr * range:range
705+
| LetOrUseBang of bindSeqPoint:SequencePointInfoForBinding * isUse:bool * isFromSource:bool * SynPat * SynExpr * SynAndBangExpr * range:range
697706

698707
/// F# syntax: match! expr with pat1 -> expr | ... | patN -> exprN
699708
| MatchBang of matchSeqPoint:SequencePointInfoForBinding * expr:SynExpr * clauses:SynMatchClause list * isExnMatch:bool * range:range (* bool indicates if this is an exception match in a computation expression which throws unmatched exceptions *)

0 commit comments

Comments
 (0)