aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2022-01-20 17:23:07 -0800
committerRobert Griesemer <gri@golang.org>2022-01-24 21:27:30 +0000
commitfef14fdd1dc9106f872e75aae4fcd814abc47080 (patch)
tree3427bc34df896d8065f88bdfaca7116eda64c453
parent2abfa30f9e0041e932411816ba07d68060eec304 (diff)
downloadgo-fef14fdd1dc9106f872e75aae4fcd814abc47080.tar.gz
go-fef14fdd1dc9106f872e75aae4fcd814abc47080.zip
go/types, types2: slightly better tracing output (debugging support)
Change-Id: I48804eba94ec455c4764d52af148f4210faf7d94 Reviewed-on: https://go-review.googlesource.com/c/go/+/379836 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
-rw-r--r--src/cmd/compile/internal/types2/decl.go4
-rw-r--r--src/cmd/compile/internal/types2/typexpr.go2
-rw-r--r--src/go/types/decl.go4
-rw-r--r--src/go/types/typexpr.go2
4 files changed, 8 insertions, 4 deletions
diff --git a/src/cmd/compile/internal/types2/decl.go b/src/cmd/compile/internal/types2/decl.go
index 41093cb637..710ae5f9c8 100644
--- a/src/cmd/compile/internal/types2/decl.go
+++ b/src/cmd/compile/internal/types2/decl.go
@@ -278,7 +278,9 @@ loop:
check.trace(obj.Pos(), "## cycle contains: %d values, %d type definitions", nval, ndef)
}
defer func() {
- if !valid {
+ if valid {
+ check.trace(obj.Pos(), "=> cycle is valid")
+ } else {
check.trace(obj.Pos(), "=> error: cycle is invalid")
}
}()
diff --git a/src/cmd/compile/internal/types2/typexpr.go b/src/cmd/compile/internal/types2/typexpr.go
index 0c7bd62643..991df9a082 100644
--- a/src/cmd/compile/internal/types2/typexpr.go
+++ b/src/cmd/compile/internal/types2/typexpr.go
@@ -211,7 +211,7 @@ func goTypeName(typ Type) string {
//
func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) {
if check.conf.Trace {
- check.trace(e0.Pos(), "type %s", e0)
+ check.trace(e0.Pos(), "-- type %s", e0)
check.indent++
defer func() {
check.indent--
diff --git a/src/go/types/decl.go b/src/go/types/decl.go
index 043f02491d..279220bec0 100644
--- a/src/go/types/decl.go
+++ b/src/go/types/decl.go
@@ -277,7 +277,9 @@ loop:
check.trace(obj.Pos(), "## cycle contains: %d values, %d type definitions", nval, ndef)
}
defer func() {
- if !valid {
+ if valid {
+ check.trace(obj.Pos(), "=> cycle is valid")
+ } else {
check.trace(obj.Pos(), "=> error: cycle is invalid")
}
}()
diff --git a/src/go/types/typexpr.go b/src/go/types/typexpr.go
index 1e629e3fdb..451662e598 100644
--- a/src/go/types/typexpr.go
+++ b/src/go/types/typexpr.go
@@ -209,7 +209,7 @@ func goTypeName(typ Type) string {
//
func (check *Checker) typInternal(e0 ast.Expr, def *Named) (T Type) {
if trace {
- check.trace(e0.Pos(), "type %s", e0)
+ check.trace(e0.Pos(), "-- type %s", e0)
check.indent++
defer func() {
check.indent--