From 5d733ef37e81489f2f92255a57b19ead08e97ad7 Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Tue, 13 Jun 2017 12:13:33 -0400 Subject: [PATCH] godoc: fix crash in -analysis Fixes golang/go#20641 Change-Id: I499b4b8da2899c4b606ce3eedd30caab57607a85 Reviewed-on: https://go-review.googlesource.com/45570 Reviewed-by: Robert Griesemer Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- godoc/analysis/analysis.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/godoc/analysis/analysis.go b/godoc/analysis/analysis.go index c185e5ea..b79286c5 100644 --- a/godoc/analysis/analysis.go +++ b/godoc/analysis/analysis.go @@ -299,7 +299,7 @@ type analysis struct { result *Result prog *ssa.Program ops []chanOp // all channel ops in program - allNamed []*types.Named // all named types in the program + allNamed []*types.Named // all "defined" (formerly "named") types in the program ptaConfig pointer.Config path2url map[string]string // maps openable path to godoc file URL (/src/fmt/print.go) pcgs map[*ssa.Package]*packageCallGraph @@ -475,7 +475,9 @@ func Run(pta bool, result *Result) { for _, info := range iprog.AllPackages { for _, obj := range info.Defs { if obj, ok := obj.(*types.TypeName); ok { - a.allNamed = append(a.allNamed, obj.Type().(*types.Named)) + if named, ok := obj.Type().(*types.Named); ok { + a.allNamed = append(a.allNamed, named) + } } } }