From 242b5dc7800420a95af896bb16149e74837164a3 Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Thu, 3 Nov 2016 14:58:50 -0400 Subject: [PATCH] godoc: changes to support aliases Fixes golang.org/go#17763 Change-Id: I18012dcfd878db916cbb940c3a361a89341b9209 Reviewed-on: https://go-review.googlesource.com/32711 Reviewed-by: Robert Griesemer --- cmd/godoc/godoc_test.go | 2 +- godoc/index18.go | 4 ++++ godoc/linkify18.go | 2 ++ godoc/server18.go | 2 ++ godoc/snippet18.go | 4 ++++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/godoc/godoc_test.go b/cmd/godoc/godoc_test.go index 3b2335c1..8ab07f52 100644 --- a/cmd/godoc/godoc_test.go +++ b/cmd/godoc/godoc_test.go @@ -259,7 +259,7 @@ func testWeb(t *testing.T, withIndex bool) { }, }, { - path: "/search?q=notwithstanding", + path: "/search?q=ListenAndServe", match: []string{ "/src", }, diff --git a/godoc/index18.go b/godoc/index18.go index 49d5e95b..de48cd87 100644 --- a/godoc/index18.go +++ b/godoc/index18.go @@ -542,6 +542,10 @@ func (x *Indexer) visitSpec(kind SpotKind, spec ast.Spec) { } } + case *ast.AliasSpec: + x.visitIdent(kind, n.Name) + ast.Walk(x, n.Orig) + case *ast.ValueSpec: for _, n := range n.Names { x.visitIdent(kind, n) diff --git a/godoc/linkify18.go b/godoc/linkify18.go index 7ac0d7b5..5b9a0305 100644 --- a/godoc/linkify18.go +++ b/godoc/linkify18.go @@ -158,6 +158,8 @@ func identModesFor(node ast.Node) map[*ast.Ident]identMode { if name := n.Name; name != nil { m[name] = identDef } + case *ast.AliasSpec: + m[n.Name] = identVal case *ast.ValueSpec: for _, n := range n.Names { m[n] = identVal diff --git a/godoc/server18.go b/godoc/server18.go index 247c9d4d..05d824f4 100644 --- a/godoc/server18.go +++ b/godoc/server18.go @@ -427,6 +427,8 @@ func addNames(names map[string]bool, decl ast.Decl) { switch s := spec.(type) { case *ast.TypeSpec: names[s.Name.Name] = true + case *ast.AliasSpec: + names[s.Name.Name] = true case *ast.ValueSpec: for _, id := range s.Names { names[id.Name] = true diff --git a/godoc/snippet18.go b/godoc/snippet18.go index 72f15e8d..96c92a22 100644 --- a/godoc/snippet18.go +++ b/godoc/snippet18.go @@ -42,6 +42,10 @@ func findSpec(list []ast.Spec, id *ast.Ident) ast.Spec { if s.Name == id { return s } + case *ast.AliasSpec: + if s.Name == id { + return s + } case *ast.ValueSpec: for _, n := range s.Names { if n == id {