@@ -615,28 +615,30 @@ module ParsedInput =
615615
616616 and walkPatWithKind ( kind : EntityKind option ) pat =
617617 match pat with
618- | SynPat.Ands ( pats, _) -> List.tryPick walkPat pats
619- | SynPat.As ( pat1, pat2, _) -> List.tryPick walkPat [ pat1; pat2 ]
618+ | SynPat.Ands ( pats, _) -> walkPats pats
619+ | SynPat.As ( pat1, pat2, _) -> walkPats [ pat1; pat2 ]
620620 | SynPat.Typed ( pat, t, _) -> walkPat pat |> Option.orElseWith ( fun () -> walkType t)
621621 | SynPat.Attrib ( pat, Attributes attrs, _) -> walkPat pat |> Option.orElseWith ( fun () -> List.tryPick walkAttribute attrs)
622622 | SynPat.Or ( pat1, pat2, _, _)
623- | SynPat.ListCons ( pat1, pat2, _, _) -> List.tryPick walkPat [ pat1; pat2 ]
623+ | SynPat.ListCons ( pat1, pat2, _, _) -> walkPats [ pat1; pat2 ]
624624 | SynPat.LongIdent ( typarDecls = typars; argPats = ConstructorPats pats; range = r) ->
625625 ifPosInRange r ( fun _ -> kind)
626626 |> Option.orElseWith ( fun () ->
627627 typars
628628 |> Option.bind ( fun ( ValTyparDecls ( typars , constraints , _ )) ->
629629 List.tryPick walkTyparDecl typars
630630 |> Option.orElseWith ( fun () -> List.tryPick walkTypeConstraint constraints)))
631- |> Option.orElseWith ( fun () -> List.tryPick walkPat pats)
632- | SynPat.Tuple (_, pats, _) -> List.tryPick walkPat pats
631+ |> Option.orElseWith ( fun () -> walkPats pats)
632+ | SynPat.Tuple (_, pats, _) -> walkPats pats
633633 | SynPat.Paren ( pat, _) -> walkPat pat
634- | SynPat.ArrayOrList (_, pats, _) -> List.tryPick walkPat pats
634+ | SynPat.ArrayOrList (_, pats, _) -> walkPats pats
635635 | SynPat.IsInst ( t, _) -> walkType t
636636 | SynPat.QuoteExpr ( e, _) -> walkExpr e
637637 | _ -> None
638638
639- and walkPat = walkPatWithKind None
639+ and walkPat pat = walkPatWithKind None pat
640+
641+ and walkPats pats = List.tryPick walkPat pats
640642
641643 and walkBinding bind =
642644 let ( SynBinding ( attributes = Attributes attrs; headPat = pat; returnInfo = returnInfo; expr = e)) =
@@ -742,6 +744,8 @@ module ParsedInput =
742744
743745 | SynExpr.ComputationExpr (_, e, _) -> walkExprWithKind parentKind e
744746
747+ | SynExpr.Lambda ( parsedData = Some (_, e)) -> walkExprWithKind parentKind e
748+
745749 | SynExpr.Lambda ( body = e) -> walkExprWithKind parentKind e
746750
747751 | SynExpr.MatchLambda (_, _, synMatchClauseList, _, _) -> List.tryPick walkClause synMatchClauseList
@@ -1626,11 +1630,15 @@ module ParsedInput =
16261630 walkMemberSig sign
16271631 | SynTypeConstraint.WhereSelfConstrained ( ty, _) -> walkType ty
16281632
1633+ and walkPats pats =
1634+ for pat in pats do
1635+ walkPat pat
1636+
16291637 and walkPat pat =
16301638 match pat with
16311639 | SynPat.Tuple (_, pats, _)
16321640 | SynPat.ArrayOrList (_, pats, _)
1633- | SynPat.Ands ( pats, _) -> List.iter walkPat pats
1641+ | SynPat.Ands ( pats, _) -> walkPats pats
16341642 | SynPat.Named ( SynIdent ( ident, _), _, _, _) -> addIdent ident
16351643 | SynPat.Typed ( pat, t, _) ->
16361644 walkPat pat
@@ -1640,7 +1648,7 @@ module ParsedInput =
16401648 List.iter walkAttribute attrs
16411649 | SynPat.As ( pat1, pat2, _)
16421650 | SynPat.Or ( pat1, pat2, _, _)
1643- | SynPat.ListCons ( pat1, pat2, _, _) -> List.iter walkPat [ pat1; pat2 ]
1651+ | SynPat.ListCons ( pat1, pat2, _, _) -> walkPats [ pat1; pat2 ]
16441652 | SynPat.LongIdent ( longDotId = ident; typarDecls = typars; argPats = ConstructorPats pats) ->
16451653 addLongIdentWithDots ident
16461654
@@ -1649,7 +1657,7 @@ module ParsedInput =
16491657 List.iter walkTyparDecl typars
16501658 List.iter walkTypeConstraint constraints)
16511659
1652- List.iter walkPat pats
1660+ walkPats pats
16531661 | SynPat.Paren ( pat, _) -> walkPat pat
16541662 | SynPat.IsInst ( t, _) -> walkType t
16551663 | SynPat.QuoteExpr ( e, _) -> walkExpr e
@@ -1724,9 +1732,15 @@ module ParsedInput =
17241732 | SynExpr.Assert ( e, _)
17251733 | SynExpr.Lazy ( e, _)
17261734 | SynExpr.YieldOrReturnFrom (_, e, _) -> walkExpr e
1735+
1736+ | SynExpr.Lambda ( parsedData = Some( argPats, e)) ->
1737+ walkPats argPats
1738+ walkExpr e
1739+
17271740 | SynExpr.Lambda ( args = pats; body = e) ->
17281741 walkSimplePats pats
17291742 walkExpr e
1743+
17301744 | SynExpr.New (_, t, e, _)
17311745 | SynExpr.TypeTest ( e, t, _)
17321746 | SynExpr.Upcast ( e, t, _)
0 commit comments