From fef14fdd1dc9106f872e75aae4fcd814abc47080 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 20 Jan 2022 17:23:07 -0800 Subject: [PATCH] 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 Run-TryBot: Robert Griesemer Reviewed-by: Robert Findley TryBot-Result: Gopher Robot --- src/cmd/compile/internal/types2/decl.go | 4 +++- src/cmd/compile/internal/types2/typexpr.go | 2 +- src/go/types/decl.go | 4 +++- src/go/types/typexpr.go | 2 +- 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-- -- 2.50.0