@@ -228,38 +228,49 @@ type FSharpParseFileResults(errors: FSharpErrorInfo[], input: Ast.ParsedInput op
228228| None-> ()
229229yield ! walkExprs( List.map( fun ( _ , v , _ ) -> v) fs|> List.choose id)
230230
231- | SynExpr.ObjExpr(_,_, bs, is,_,_) ->
231+ | SynExpr.ObjExpr(_, args, bs, is,_,_) ->
232+ match argswith
233+ | None-> ()
234+ | Some( arg,_) -> yield ! walkExprfalse arg
232235yield ! walkBinds bs
233236for ( InterfaceImpl(_, bs,_)) in isdo yield ! walkBinds bs
237+
234238| SynExpr.While( spWhile, e1, e2,_) ->
235239yield ! walkWhileSeqPt spWhile
236240yield ! walkExprfalse e1
237241yield ! walkExprtrue e2
242+
238243| SynExpr.JoinIn( e1, _ range, e2, _ range2) ->
239244yield ! walkExprfalse e1
240245yield ! walkExprfalse e2
246+
241247| SynExpr.For( spFor,_, e1,_, e2, e3,_) ->
242248yield ! walkForSeqPt spFor
243249yield ! walkExprfalse e1
244250yield ! walkExprtrue e2
245251yield ! walkExprtrue e3
252+
246253| SynExpr.ForEach( spFor,_,_,_, e1, e2,_) ->
247254yield ! walkForSeqPt spFor
248255yield ! walkExprfalse e1
249256yield ! walkExprtrue e2
257+
250258| SynExpr.MatchLambda(_ isExnMatch,_ argm, cl, spBind,_ wholem) ->
251259yield ! walkBindSeqPt spBind
252260for ( Clause(_, whenExpr, e,_,_)) in cldo
253261yield ! walkExprOptfalse whenExpr
254262yield ! walkExprtrue e
263+
255264| SynExpr.Lambda(_,_,_, e,_) ->
256265yield ! walkExprtrue e
266+
257267| SynExpr.Match( spBind, e, cl,_,_) ->
258268yield ! walkBindSeqPt spBind
259269yield ! walkExprfalse e
260270for ( Clause(_, whenExpr, e,_,_)) in cldo
261271yield ! walkExprOptfalse whenExpr
262272yield ! walkExprtrue e
273+
263274| SynExpr.LetOrUse(_,_, bs, e,_) ->
264275yield ! walkBinds bs
265276yield ! walkExprtrue e
@@ -275,21 +286,26 @@ type FSharpParseFileResults(errors: FSharpErrorInfo[], input: Ast.ParsedInput op
275286yield ! walkExprtrue e2
276287yield ! walkTrySeqPt spTry
277288yield ! walkFinallySeqPt spFinally
289+
278290| SynExpr.Sequential( spSeq,_, e1, e2,_) ->
279291yield ! walkExpr( match spSeqwith SuppressSequencePointOnStmtOfSequential-> false | _ -> true ) e1
280292yield ! walkExpr( match spSeqwith SuppressSequencePointOnExprOfSequential-> false | _ -> true ) e2
293+
281294| SynExpr.IfThenElse( e1, e2, e3opt, spBind,_,_,_) ->
282295yield ! walkBindSeqPt spBind
283296yield ! walkExprfalse e1
284297yield ! walkExprtrue e2
285298yield ! walkExprOpttrue e3opt
299+
286300| SynExpr.DotIndexedGet( e1, es,_,_) ->
287301yield ! walkExprfalse e1
288302yield ! walkExprs[ for ein esdo yield ! e.Exprs]
303+
289304| SynExpr.DotIndexedSet( e1, es, e2,_,_,_) ->
290305yield ! walkExprfalse e1
291306yield ! walkExprs[ for ein esdo yield ! e.Exprs]
292307yield ! walkExprfalse e2
308+
293309| SynExpr.DotNamedIndexedPropertySet( e1,_, e2, e3,_) ->
294310yield ! walkExprfalse e1
295311yield ! walkExprfalse e2
@@ -321,6 +337,10 @@ type FSharpParseFileResults(errors: FSharpErrorInfo[], input: Ast.ParsedInput op
321337| SynMemberDefn.Inherit(_, _, m) ->
322338// can break on the "inherit" clause
323339yield ! checkRange m
340+ | SynMemberDefn.ImplicitInherit(_, arg, _, m) ->
341+ // can break on the "inherit" clause
342+ yield ! checkRange m
343+ yield ! walkExprtrue arg
324344| _ -> () ]
325345
326346// Process declarations nested in a module that should be displayed in the left dropdown