• Ian Lance Taylor's avatar
    cmd/cover: don't crash on non-gofmt'ed input · 8b8625a3
    Ian Lance Taylor authored
    Without the change to cover.go, the new test fails with
    
    panic: overlapping edits: [4946,4950)->"", [4947,4947)->"thisNameMustBeVeryLongToCauseOverflowOfCounterIncrementStatementOntoNextLineForTest.Count[112]++;"
    
    The original code inserts "else{", deletes "else", and then positions
    a new block just after the "}" that must come before the "else".
    That works on gofmt'ed code, but fails if the code looks like "}else".
    When there is no space between the "{" and the "else", the new block
    is inserted into a location that we are deleting, leading to the
    "overlapping edits" mentioned above.
    
    This CL fixes this case by not deleting the "else" but just using the
    one that is already there. That requires adjust the block offset to
    come after the "{" that we insert.
    
    Fixes #23927
    
    Change-Id: I40ef592490878765bbce6550ddb439e43ac525b2
    Reviewed-on: https://go-review.googlesource.com/98935
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
    8b8625a3
cover_test.go 7.6 KB