modfile: remove end-of-line comments in removeLine

I added this test case while updating documentation for
golang/go#45965, and it failed. This CL fixes the behavior,
and the next CL in the stack documents it.

For golang/go#45965

Change-Id: Ia68dbd33530eec138745c6e291b096a9fa1e1d58
Reviewed-on: https://go-review.googlesource.com/c/mod/+/323170
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
diff --git a/modfile/read.go b/modfile/read.go
index 2a961ca..81e7609 100644
--- a/modfile/read.go
+++ b/modfile/read.go
@@ -196,6 +196,7 @@
 
 func (x *FileSyntax) removeLine(line *Line) {
 	line.Token = nil
+	line.Comments.Suffix = nil
 }
 
 // Cleanup cleans up the file syntax x after any edit operations.
diff --git a/modfile/rule_test.go b/modfile/rule_test.go
index d581ba2..2ec24ea 100644
--- a/modfile/rule_test.go
+++ b/modfile/rule_test.go
@@ -33,6 +33,32 @@
 		`,
 	},
 	{
+		`existing2`,
+		`
+		module m
+		require (
+			x.y/z v1.2.3 // first
+			x.z/a v0.1.0 // first-a
+		)
+		require x.y/z v1.4.5 // second
+		require (
+			x.y/z v1.6.7 // third
+			x.z/a v0.2.0 // third-a
+		)
+		`,
+		"x.y/z", "v1.8.9",
+		`
+		module m
+
+		require (
+			x.y/z v1.8.9 // first
+			x.z/a v0.1.0 // first-a
+		)
+
+		require x.z/a v0.2.0 // third-a
+		`,
+	},
+	{
 		`new`,
 		`
 		module m
@@ -892,7 +918,9 @@
 	for _, tt := range addRequireTests {
 		t.Run(tt.desc, func(t *testing.T) {
 			testEdit(t, tt.in, tt.out, true, func(f *File) error {
-				return f.AddRequire(tt.path, tt.vers)
+				err := f.AddRequire(tt.path, tt.vers)
+				f.Cleanup()
+				return err
 			})
 		})
 	}