• Daniel Martí's avatar
    cmd/compile: make duplicate expr cases readable · 495f55d2
    Daniel Martí authored
    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: 's avatarMatthew Dempsky <mdempsky@google.com>
    495f55d2
switch5.go 2.21 KB