]> Cypherpunks repositories - gostls13.git/commitdiff
go/ast: print CommentMap contents in source order
authorRobert Griesemer <gri@golang.org>
Fri, 30 Apr 2021 04:38:43 +0000 (21:38 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 30 Apr 2021 16:04:36 +0000 (16:04 +0000)
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 <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/go/ast/commentmap.go

index 2a653a60ac9b3ec13f0566f5e938a1bf37b85a9f..5161ea70b7640d088e918a5299c61bea7d313717 100644 (file)
@@ -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 {