From 789265387ff52550e7d48b4e6f4c6bce831c1248 Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Thu, 11 Feb 2016 22:52:19 -0500 Subject: [PATCH] cmd/guru: freevars: reenable test of labels (and improve output) Change-Id: Icb7747d0856a4be2de52e143b793b52a725d297c Reviewed-on: https://go-review.googlesource.com/19437 Reviewed-by: Alan Donovan --- cmd/guru/freevars.go | 2 +- cmd/guru/testdata/src/freevars/main.go | 5 ++--- cmd/guru/testdata/src/freevars/main.golden | 7 +++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/guru/freevars.go b/cmd/guru/freevars.go index c4ff6590..39b04d48 100644 --- a/cmd/guru/freevars.go +++ b/cmd/guru/freevars.go @@ -184,7 +184,7 @@ func (r *freevarsResult) display(printf printfFunc) { for _, ref := range r.refs { // Avoid printing "type T T". var typstr string - if ref.kind != "type" { + if ref.kind != "type" && ref.kind != "label" { typstr = " " + types.TypeString(ref.typ, qualifier) } printf(ref.obj, "%s %s%s", ref.kind, ref.ref, typstr) diff --git a/cmd/guru/testdata/src/freevars/main.go b/cmd/guru/testdata/src/freevars/main.go index 5820a02c..c6aa08d2 100644 --- a/cmd/guru/testdata/src/freevars/main.go +++ b/cmd/guru/testdata/src/freevars/main.go @@ -33,9 +33,8 @@ func main() { f(x) // @freevars fv3 "f.x." - // TODO(adonovan): enable when go/types supports labels. -loop: // #@freevars fv-def-label "loop:" +loop: // @freevars fv-def-label "loop:" for { - break loop // #@freevars fv-ref-label "break loop" + break loop // @freevars fv-ref-label "break loop" } } diff --git a/cmd/guru/testdata/src/freevars/main.golden b/cmd/guru/testdata/src/freevars/main.golden index b9eeab21..a3bc0c95 100644 --- a/cmd/guru/testdata/src/freevars/main.golden +++ b/cmd/guru/testdata/src/freevars/main.golden @@ -16,3 +16,10 @@ var y rune Free identifiers: var x int +-------- @freevars fv-def-label -------- +No free identifiers. + +-------- @freevars fv-ref-label -------- +Free identifiers: +label loop +