• Robert Griesemer's avatar
    cmd/compile, cmd/compile/internal/syntax: print relative column info · 0c884d08
    Robert Griesemer authored
    This change enables printing of relative column information if a
    prior line directive specified a valid column. If there was no
    line directive, or the line directive didn't specify a column
    (or the -C flag is specified), no column information is shown in
    file positions.
    
    Implementation: Column values (and line values, for that matter)
    that are zero are interpreted as "unknown". A line directive that
    doesn't specify a column records that as a zero column in the
    respective PosBase data structure. When computing relative columns,
    a relative value is zero of the base's column value is zero.
    When formatting a position, a zero column value is not printed.
    
    To make this work without special cases, the PosBase for a file
    is given a concrete (non-0:0) position 1:1 with the PosBase's
    line and column also being 1:1. In other words, at the position
    1:1 of a file, it's relative positions are starting with 1:1 as
    one would expect.
    
    In the package syntax, this requires self-recursive PosBases for
    file bases, matching what cmd/internal/src.PosBase was already
    doing. In src.PosBase, file and inlining bases also need to be
    based at 1:1 to indicate "known" positions.
    
    This change completes the cmd/compiler part of the issue below.
    
    Fixes #22662.
    
    Change-Id: I6c3d2dee26709581fba0d0261b1d12e93f1cba1a
    Reviewed-on: https://go-review.googlesource.com/97375Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    0c884d08
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...