• Daniel Martí's avatar
    cmd/compile: remove some more gotos in gc · 7f88d3c1
    Daniel Martí authored
    Split typecheckrange into two, separating the bigger chunk of code that
    takes care of the range expression. It had to sometimes exit early,
    which was done via a goto in the larger func. This lets us simplify many
    declarations and the flow of the code. While at it, also replace the
    toomany int with a bool.
    
    In the case of walkselect, split it into two funcs too since using a
    defer for all the trailing work would be a bit much. It also lets us
    simplify the declarations and the flow of the code, since now
    walkselectcases has a narrower scope and straightforward signature.
    
    Also replace the gotos in typecheckaste with a lineno defer.
    
    Passes toolstash -cmp on std cmd.
    
    Change-Id: Iacfaa0a34c987c44f180a792c473558785cf6823
    Reviewed-on: https://go-review.googlesource.com/72374
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    7f88d3c1
range.go 12.3 KB