golang/go

cmd/go: test -coverprofile should ask compiler to drop (incorrect) position information

Open

#67.938 geöffnet am 11. Juni 2024

Auf GitHub ansehen
 (8 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Go (19.008 Forks)batch import
GoCommandNeedsFixgabywinshelp wanted

Repository-Metriken

Stars
 (133.883 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

% cat x.go
package p

func f(int) string

func g() {
	b := f(1)
	collect := func(min, max, stop int) []int {
		return nil
	}
	b := f(2)
	_ = collect
}
% go test -coverprofile=c.out x.go
# command-line-arguments
./x.go:6:2: `b' declared and not used
./x.go:10:35: no new variables on left side of :=

There is no column 35 on the line b := f(2), making the error message very confusing. The problem is that cover has inserted text into the lines. When the compiler did not print column information, that was invisible. Now it's not.

To make it invisible again, the compiler should add a flag to drop position information, and then the go command should use that flag when compiling with test coverage.

Contributor Guide