]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: make duplicate expr cases readable
authorDaniel Martí <mvdan@mvdan.cc>
Wed, 26 Apr 2017 11:04:08 +0000 (12:04 +0100)
committerMatthew Dempsky <mdempsky@google.com>
Fri, 19 May 2017 18:11:51 +0000 (18:11 +0000)
commit495f55d27d16b2b8deee4b7e79186b07336f6765
tree906a7c101581e92d6dcb616b429af02b8b90c599
parent4dcba023c62d7f7968abc54fa5d38d2bf11412ba
cmd/compile: make duplicate expr cases readable

Instead of just printing the value, print the original node to make the
error more human-friendly. Also print the value if its string form is
different than the original node, to make sure it's obvious what value
was duplicated.

This means that "case '@', '@':", which used to print:

duplicate case 64 in switch

Will now print:

duplicate case '@' (value 64) in switch

Factor this logic out into its own function to reuse it in range cases
and any other place where we might want to print a node and its value in
the future.

Also needed to split the errorcheck files because expression switch case
duplicates are now detected earlier, so they stop the compiler before it
gets to generating the AST and detecting the type switch case
duplicates.

Fixes #20112.

Change-Id: I9009b50dec0d0e705e5de9c9ccb08f1dce8a5a99
Reviewed-on: https://go-review.googlesource.com/41852
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/swt.go
test/switch5.go
test/switch7.go [new file with mode: 0644]