diff --git a/gopls/internal/regtest/diagnostics/diagnostics_test.go b/gopls/internal/regtest/diagnostics/diagnostics_test.go index e5b346cb3d..b9802e2457 100644 --- a/gopls/internal/regtest/diagnostics/diagnostics_test.go +++ b/gopls/internal/regtest/diagnostics/diagnostics_test.go @@ -2185,3 +2185,33 @@ func F[T C](_ T) { } }) } + +func TestEditGoDirective(t *testing.T) { + testenv.NeedsGo1Point(t, 18) + const files = ` +-- go.mod -- +module mod.com + +go 1.16 +-- main.go -- +package main + +func F[T any](_ T) { +} +` + Run(t, files, func(t *testing.T, env *Env) { // Create a new workspace-level directory and empty file. + var d protocol.PublishDiagnosticsParams + env.Await( + OnceMet( + env.DiagnosticAtRegexpWithMessage("main.go", `T any`, "type parameters require"), + ReadDiagnostics("main.go", &d), + ), + ) + + env.ApplyQuickFixes("main.go", d.Diagnostics) + + env.Await( + EmptyDiagnostics("main.go"), + ) + }) +}