1
0
mirror of https://github.com/golang/go synced 2024-11-26 10:28:19 -07:00

cmd/compile/internal/types2: review of decl.go

The changes between (equivalent, and reviewed) go/types/decl.go
and decl.go can be seen by comparing patchset 1 and 2. The actual
changes are removing the "// UNREVIEWED" marker and a minor comment
update.

The primary differences to go/types/decl.go are:
- use of syntax rather than go/ast package
- use of error_ objects to collect follow-on error info
- use of check.conf.Trace rather than global trace flag
- more aggressively marking variables as used in the presence errors
- not using a walkDecl abstraction for const/var/type declarations

Change-Id: I5cf26779c9939b686a3dbaa4d38fdd0c154a92ca
Reviewed-on: https://go-review.googlesource.com/c/go/+/305570
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Robert Griesemer 2021-03-29 11:36:44 -07:00
parent 0e8a72b62e
commit 34fb2b2ed5

View File

@ -1,4 +1,3 @@
// UNREVIEWED
// Copyright 2014 The Go Authors. All rights reserved. // Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
@ -325,7 +324,7 @@ func (check *Checker) validType(typ Type, path []Object) typeInfo {
} }
// don't report a 2nd error if we already know the type is invalid // don't report a 2nd error if we already know the type is invalid
// (e.g., if a cycle was detected earlier, via Checker.underlying). // (e.g., if a cycle was detected earlier, via under).
if t.underlying == Typ[Invalid] { if t.underlying == Typ[Invalid] {
t.info = invalid t.info = invalid
return invalid return invalid