From 72eebe5c4b8d40a6b01a8c4e65a3edaaf952ce52 Mon Sep 17 00:00:00 2001 From: Derek Parker Date: Sat, 9 May 2015 12:53:25 -0500 Subject: [PATCH] Handle 'next'ing in deferred funcs --- source/source.go | 2 +- source/source_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/source.go b/source/source.go index c83257fe..3f25fb17 100644 --- a/source/source.go +++ b/source/source.go @@ -196,7 +196,7 @@ func (s *Searcher) NextLines(fname string, line int) (lines []int, err error) { return true } - if dn, ok := n.(*ast.DeferStmt); ok { + if dn, ok := n.(*ast.DeferStmt); ok && line < pos.Line { endpos := s.fileset.Position(dn.End()) deferEndLine = endpos.Line return false diff --git a/source/source_test.go b/source/source_test.go index 721c6c83..5d546c4b 100644 --- a/source/source_test.go +++ b/source/source_test.go @@ -41,6 +41,7 @@ func TestNextLines(t *testing.T) { {30, []int{32}}, {62, []int{63}}, {67, []int{71}}, + {68, []int{69}}, } for i, c := range cases { lines, err := v.NextLines(tf, c.line)