@@ -83,8 +83,8 @@ module public AstTraversal =
8383abstract VisitComponentInfo : SynComponentInfo -> 'T option
8484default this.VisitComponentInfo ( _ ) = None
8585/// VisitLetOrUse allows overriding behavior when visiting module or local let or use bindings
86- abstract VisitLetOrUse : SynBinding list * range -> 'T option
87- default this.VisitLetOrUse ( _ , _ ) = None
86+ abstract VisitLetOrUse : TraversePath * ( SynBinding -> 'T option ) * SynBinding list * range -> 'T option
87+ default this.VisitLetOrUse ( _ , _ , _ , _ ) = None
8888/// VisitType allows overriding behavior when visiting simple pats
8989abstract VisitSimplePats : SynSimplePat list -> 'T option
9090default this.VisitSimplePats ( _ ) = None
@@ -158,7 +158,7 @@ module public AstTraversal =
158158| SynModuleDecl.ModuleAbbrev(_ ident, _ longIdent, _ range) -> None
159159| SynModuleDecl.NestedModule(_ synComponentInfo, _ isRec, synModuleDecls, _, _ range) -> synModuleDecls|> List.map( fun x -> dive x x.Range( traverseSynModuleDecl path)) |> pick decl
160160| SynModuleDecl.Let(_, synBindingList, range) ->
161- match visitor.VisitLetOrUse( synBindingList, range) with
161+ match visitor.VisitLetOrUse( path , traverseSynBinding path , synBindingList, range) with
162162| Some x-> Some x
163163| None-> synBindingList|> List.map( fun x -> dive x x.RangeOfBindingAndRhs( traverseSynBinding path)) |> pick decl
164164| SynModuleDecl.DoExpr(_ sequencePointInfoForBinding, synExpr, _ range) -> traverseSynExpr path synExpr
@@ -364,7 +364,7 @@ module public AstTraversal =
364364|> pick expr
365365| SynExpr.TypeApp( synExpr, _, _ synTypeList, _ commas, _, _, _ range) -> traverseSynExpr synExpr
366366| SynExpr.LetOrUse(_, _, synBindingList, synExpr, range) ->
367- match visitor.VisitLetOrUse( synBindingList, range) with
367+ match visitor.VisitLetOrUse( path , traverseSynBinding path , synBindingList, range) with
368368| Some x-> Some x
369369| None->
370370[ yield ! synBindingList|> List.map( fun x -> dive x x.RangeOfBindingAndRhs( traverseSynBinding path))
@@ -586,7 +586,7 @@ module public AstTraversal =
586586] |> pick m
587587| SynMemberDefn.AutoProperty(_ attribs, _ isStatic, _ id, _ tyOpt, _ propKind, _, _ xmlDoc, _ access, synExpr, _, _) -> traverseSynExpr path synExpr
588588| SynMemberDefn.LetBindings( synBindingList, _, _, range) ->
589- match visitor.VisitLetOrUse( synBindingList, range) with
589+ match visitor.VisitLetOrUse( path , traverseSynBinding path , synBindingList, range) with
590590| Some x-> Some x
591591| None-> synBindingList|> List.map( fun x -> dive x x.RangeOfBindingAndRhs( traverseSynBinding path)) |> pick m
592592| SynMemberDefn.AbstractSlot(_ synValSig, _ memberFlags, _ range) -> None