]> Cypherpunks repositories - gostls13.git/commit
doc/go1.11: explain new vet typechecking behaviour in release notes
authorAlberto Donizetti <alb.donizetti@gmail.com>
Thu, 28 Jun 2018 18:22:13 +0000 (20:22 +0200)
committerAndrew Bonventre <andybons@golang.org>
Tue, 17 Jul 2018 16:44:23 +0000 (16:44 +0000)
commitbccbf59046b9d1289f3cbf0240d02b8ae550e0ac
treecb84b5f27207ab1904766f3297929defdda6d51b
parent57b5a71d7c897a2f3a21ba8b875bb9264faed326
doc/go1.11: explain new vet typechecking behaviour in release notes

Since Go1.10, go test runs vet on the tests before executing them.

Moreover, the vet tool typechecks the package under analysis with
go/types before running. In Go1.10, a typechecking failure just caused
a warning to be printed. In Go1.11, a typechecking failure will cause
vet to exit with a fatal error (see Issue #21287).

This means that starting with Go1.11, tests that don't typecheck will
fail immediately. This would not normally be an issue, since a test
that doesn't typecheck shouldn't even compile, and it should already
be broken.

Unfortunately, there's a bug in gc that makes it accept programs with
unused variables inside a closure (Issue #3059). This means that a
test with an unused variable inside a closure, that compiled and
passed in Go1.10, will fail in the typechecking step of vet starting
with Go1.11.

Explain this in the 1.11 release notes.

Fixes #26109

Change-Id: I970c1033ab6bc985d8c64bd24f56e854af155f96
Reviewed-on: https://go-review.googlesource.com/121455
Reviewed-by: Ian Lance Taylor <iant@golang.org>
doc/go1.11.html