diff --git a/gopls/internal/regtest/failures_test.go b/gopls/internal/regtest/failures_test.go
new file mode 100644
index 0000000..0b62496
--- /dev/null
+++ b/gopls/internal/regtest/failures_test.go
@@ -0,0 +1,70 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package regtest
+
+import (
+	"log"
+	"testing"
+)
+
+// This test passes (TestHoverOnError in definition_test.go) without
+// the //line directive
+func TestHoverFailure(t *testing.T) {
+	const mod = `
+-- go.mod --
+module mod.com
+-- a.y --
+DWIM(main)
+
+-- main.go --
+//line a.y:1
+package main
+
+func main() {
+	var err error
+	err.Error()
+}`
+	withOptions(SkipLogs()).run(t, mod, func(t *testing.T, env *Env) {
+		env.OpenFile("main.go")
+		content, _ := env.Hover("main.go", env.RegexpSearch("main.go", "Error"))
+		// without the //line comment content would be non-nil
+		if content != nil {
+			t.Fatalf("expected nil hover content for Error")
+		}
+	})
+}
+
+// badPackageDup contains a duplicate definition of the 'a' const.
+// this is from diagnostics_test.go,
+const badPackageDup = `
+-- go.mod --
+module mod.com
+-- a.go --
+package consts
+
+const a = 1
+-- b.go --
+package consts
+//line gen.go:5
+const a = 2
+`
+
+func TestFailingDiagnosticClearingOnEdit(t *testing.T) {
+	runner.Run(t, badPackageDup, func(t *testing.T, env *Env) {
+		log.SetFlags(log.Lshortfile)
+		env.OpenFile("b.go")
+		env.Await(env.AnyDiagnosticAtCurrentVersion("a.go"))
+		// no diagnostics for either b.go or 'gen.go', but there should be
+		env.Await(NoDiagnostics("b.go"))
+
+		// Fix the error by editing the const name in b.go to `b`.
+		env.RegexpReplace("b.go", "(a) = 2", "b")
+		env.Await(
+			EmptyDiagnostics("a.go"),
+			// expected, as there have never been any diagnostics for b.go
+			NoDiagnostics("b.go"),
+		)
+	})
+}
