From 0dfb6fb4907c770269d5530f210567e371eebeaa Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 29 Apr 2021 21:38:43 -0700 Subject: [PATCH] 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 --- src/go/ast/commentmap.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 { -- 2.50.0