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" } }