@@ -312,8 +312,9 @@ module public AstTraversal =
312312 dive synExpr2 synExpr2.Range traverseSynExpr
313313 dive synExpr3 synExpr3.Range traverseSynExpr]
314314|> pick expr
315- | SynExpr.ForEach(_ sequencePointInfoForForLoop, _ seqExprOnly, _ isFromSource, _ synPat, synExpr, synExpr2, _ range) ->
316- [ dive synExpr synExpr.Range traverseSynExpr
315+ | SynExpr.ForEach(_ sequencePointInfoForForLoop, _ seqExprOnly, _ isFromSource, synPat, synExpr, synExpr2, _ range) ->
316+ [ dive synPat synPat.Range traversePat
317+ dive synExpr synExpr.Range traverseSynExpr
317318 dive synExpr2 synExpr2.Range traverseSynExpr]
318319|> pick expr
319320| SynExpr.ArrayOrListOfSeqExpr(_, synExpr, _ range) -> traverseSynExpr synExpr
@@ -434,8 +435,9 @@ module public AstTraversal =
434435| SynExpr.ImplicitZero(_ range) -> None
435436| SynExpr.YieldOrReturn(_, synExpr, _ range) -> traverseSynExpr synExpr
436437| SynExpr.YieldOrReturnFrom(_, synExpr, _ range) -> traverseSynExpr synExpr
437- | SynExpr.LetOrUseBang(_ sequencePointInfoForBinding, _, _, _ synPat, synExpr, synExpr2, _ range) ->
438- [ dive synExpr synExpr.Range traverseSynExpr
438+ | SynExpr.LetOrUseBang(_ sequencePointInfoForBinding, _, _, synPat, synExpr, synExpr2, _ range) ->
439+ [ dive synPat synPat.Range traversePat
440+ dive synExpr synExpr.Range traverseSynExpr
439441 dive synExpr2 synExpr2.Range traverseSynExpr]
440442|> pick expr
441443| SynExpr.DoBang( synExpr, _ range) -> traverseSynExpr synExpr
@@ -598,13 +600,17 @@ module public AstTraversal =
598600let path = TraverseStep.MatchClause mc:: path
599601let defaultTraverse mc =
600602match mcwith
601- | ( SynMatchClause.Clause(_ synPat, synExprOption, synExpr, _ range, _ sequencePointInfoForTarget) as all) ->
602- [
603+ | ( SynMatchClause.Clause( synPat, synExprOption, synExpr, _ range, _ sequencePointInfoForTarget) as all) ->
604+ [ dive synPat synPat.Range traversePat]
605+ @
606+ ([
603607match synExprOptionwith
604608| None-> ()
605609| Some guard-> yield guard
606610yield synExpr
607- ] |> List.map( fun x -> dive x x.Range( traverseSynExpr path)) |> pick all.Range all
611+ ]
612+ |> List.map( fun x -> dive x x.Range( traverseSynExpr path))
613+ )|> pick all.Range all
608614 visitor.VisitMatchClause( defaultTraverse, mc)
609615
610616and traverseSynBinding path b =