diff --git a/modfile/read.go b/modfile/read.go index de1b982..2d74868 100644 --- a/modfile/read.go +++ b/modfile/read.go @@ -877,6 +877,11 @@ func (in *input) parseLineBlock(start Position, token []string, lparen token) *L in.Error(fmt.Sprintf("syntax error (unterminated block started at %s:%d:%d)", in.filename, x.Start.Line, x.Start.LineRune)) case ')': rparen := in.lex() + // Don't preserve blank lines (denoted by a single empty comment, added above) + // at the end of the block. + if len(comments) == 1 && comments[0] == (Comment{}) { + comments = nil + } x.RParen.Before = comments x.RParen.Pos = rparen.pos if !in.peek().isEOL() { diff --git a/modfile/testdata/issue70632.golden b/modfile/testdata/issue70632.golden new file mode 100644 index 0000000..f559879 --- /dev/null +++ b/modfile/testdata/issue70632.golden @@ -0,0 +1,7 @@ +module tidy + +go 1.23.0 + +require ( + golang.org/x/time v0.8.0 +) diff --git a/modfile/testdata/issue70632.in b/modfile/testdata/issue70632.in new file mode 100644 index 0000000..e6e6b93 --- /dev/null +++ b/modfile/testdata/issue70632.in @@ -0,0 +1,12 @@ +module tidy + +go 1.23.0 + +require ( + + "golang.org/x/time" v0.8.0 + + + + +)