• Alberto Donizetti's avatar
    doc/go1.11: explain new vet typechecking behaviour in release notes · bccbf590
    Alberto Donizetti authored
    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/121455Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    bccbf590
go1.11.html 25.4 KB