]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmd/compile: set correct line number for multiple defaults in switch error
authorJosh Bleecher Snyder <josharian@gmail.com>
Tue, 31 May 2016 22:02:40 +0000 (15:02 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 22 Aug 2016 19:56:06 +0000 (19:56 +0000)
Fixes #15911.

Change-Id: I500533484de61aa09abe4cecb010445e3176324e
Reviewed-on: https://go-review.googlesource.com/26760
TryBot-Result: Gobot Gobot <gobot@golang.org>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/swt.go
test/switch6.go

index 09ce443530c1a427b2a5cb383521c545f93d13dc..07d324c593878d972703032b6b92878770aca0fc 100644 (file)
@@ -107,6 +107,7 @@ func typecheckswitch(n *Node) {
                if ncase.List.Len() == 0 {
                        // default
                        if def != nil {
+                               setlineno(ncase)
                                Yyerror("multiple defaults in switch (first at %v)", def.Line())
                        } else {
                                def = ncase
index bd62c620b6f6657e28eeafbe6a5eeb0fc675bf14..32392d8f73d439fd1936ba4decc901beaaf46e9f 100644 (file)
@@ -21,12 +21,12 @@ func f0(e error) {
 
 // Verify that the compiler rejects multiple default cases.
 func f1(e interface{}) {
-       switch e { // ERROR "multiple defaults in switch"
-       default:
+       switch e {
        default:
+       default: // ERROR "multiple defaults in switch"
        }
-       switch e.(type) { // ERROR "multiple defaults in switch"
-       default:
+       switch e.(type) {
        default:
+       default: // ERROR "multiple defaults in switch"
        }
 }