From: Robert Griesemer Date: Fri, 30 Apr 2021 04:38:43 +0000 (-0700) Subject: go/ast: print CommentMap contents in source order X-Git-Tag: go1.17beta1~340 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0dfb6fb490;p=gostls13.git go/ast: print CommentMap contents in source order Sort the comment map entries before printing. Makes it easier to use the output for debugging. For #39753. Change-Id: Ic8e7d27dd2df59173e2c3a04a6b71ae966703885 Reviewed-on: https://go-review.googlesource.com/c/go/+/315370 Trust: Robert Griesemer Reviewed-by: Robert Findley --- diff --git a/src/go/ast/commentmap.go b/src/go/ast/commentmap.go index 2a653a60ac..5161ea70b7 100644 --- a/src/go/ast/commentmap.go +++ b/src/go/ast/commentmap.go @@ -315,9 +315,17 @@ loop: } func (cmap CommentMap) String() string { + // print map entries in sorted order + var nodes []Node + for node := range cmap { + nodes = append(nodes, node) + } + sort.Sort(byInterval(nodes)) + var buf bytes.Buffer fmt.Fprintln(&buf, "CommentMap {") - for node, comment := range cmap { + for _, node := range nodes { + comment := cmap[node] // print name of identifiers; print node type for other nodes var s string if ident, ok := node.(*Ident); ok {