]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix printing of OCASE nodes
authorJosh Bleecher Snyder <josharian@gmail.com>
Wed, 25 May 2016 21:08:13 +0000 (14:08 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 23 Aug 2016 05:26:45 +0000 (05:26 +0000)
Switch lowering splits each case expression out
into its own OCASE node.

Change-Id: Ifcb72b99975ed36da8540f6e43343e9aa2058572
Reviewed-on: https://go-review.googlesource.com/26769
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/fmt.go
src/cmd/compile/internal/gc/syntax.go

index 9cf0fbd4134cc94ccf8fcbb282ed9767e1addf90..cbc4c93a130c46abe4d9c74caf7dee45fbf16762 100644 (file)
@@ -886,13 +886,20 @@ func stmtfmt(n *Node) string {
 
                f += fmt.Sprintf(" { %v }", n.List)
 
-       case OCASE, OXCASE:
+       case OXCASE:
                if n.List.Len() != 0 {
                        f += fmt.Sprintf("case %v: %v", hconv(n.List, FmtComma), n.Nbody)
                } else {
                        f += fmt.Sprintf("default: %v", n.Nbody)
                }
 
+       case OCASE:
+               if n.Left != nil {
+                       f += fmt.Sprintf("case %v: %v", n.Left, n.Nbody)
+               } else {
+                       f += fmt.Sprintf("default: %v", n.Nbody)
+               }
+
        case OBREAK,
                OCONTINUE,
                OGOTO,
index b02c70eb946fbc02225272118840341d75721fba..3608d17c34d768a68bbb9a2455303a52922b03fd 100644 (file)
@@ -425,7 +425,7 @@ const (
        // statements
        OBLOCK    // { List } (block of code)
        OBREAK    // break
-       OCASE     // case List: Nbody (select case after processing; List==nil means default)
+       OCASE     // case Left: Nbody (select case after processing; Left==nil means default)
        OXCASE    // case List: Nbody (select case before processing; List==nil means default)
        OCONTINUE // continue
        ODEFER    // defer Left (Left must be call)