]> Cypherpunks repositories - gostls13.git/commit
go/types: don't update package-external types when checking validity
authorRobert Griesemer <gri@golang.org>
Mon, 21 Oct 2019 21:25:45 +0000 (14:25 -0700)
committerRobert Griesemer <gri@golang.org>
Tue, 22 Oct 2019 16:13:55 +0000 (16:13 +0000)
commit51504f0a2d65a7f7fcf63c25c2cb306a6863d07d
tree75a0ef4b5fddff17101c5a06bfc0cd7cce1201fe
parent19d2a1cc2c76a14b4d5066c871b3f3c11125e147
go/types: don't update package-external types when checking validity

The recently added type-validity check uses a new field of Named
types for marking (to detect cycles). That field was modified even
if the type was not part of the current package or belonged to the
Universe scope (error type). This led to race conditions if the
package's type was imported by multiple, concurrently type-checked
packages.

A test would be nice but it's a bit cumbersome to set one up.
Verified manually that package-external types are left alone.

Fixes #35049.

Change-Id: I51686bef47fcca48b99b91ecb1b2e9d58e135ea6
Reviewed-on: https://go-review.googlesource.com/c/go/+/202483
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/go/types/decl.go