From: Josh Bleecher Snyder Date: Tue, 31 May 2016 22:02:40 +0000 (-0700) Subject: cmd/compile: set correct line number for multiple defaults in switch error X-Git-Tag: go1.8beta1~1718 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cf20525bf414c8268d8fe111460767d52f03df44;p=gostls13.git cmd/compile: set correct line number for multiple defaults in switch error Fixes #15911. Change-Id: I500533484de61aa09abe4cecb010445e3176324e Reviewed-on: https://go-review.googlesource.com/26760 TryBot-Result: Gobot Gobot Run-TryBot: Josh Bleecher Snyder Reviewed-by: Matthew Dempsky --- diff --git a/src/cmd/compile/internal/gc/swt.go b/src/cmd/compile/internal/gc/swt.go index 09ce443530..07d324c593 100644 --- a/src/cmd/compile/internal/gc/swt.go +++ b/src/cmd/compile/internal/gc/swt.go @@ -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 diff --git a/test/switch6.go b/test/switch6.go index bd62c620b6..32392d8f73 100644 --- a/test/switch6.go +++ b/test/switch6.go @@ -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" } }