• Justin Nuß's avatar
    encoding/csv: report line start line in errors · 5d14ac74
    Justin Nuß authored
    Errors returned by Reader contain the line where the Reader originally
    encountered the error. This can be suboptimal since that line does not
    always correspond with the line the current record/field started at.
    
    This can easily happen with LazyQuotes as seen in #19019, but also
    happens for example when a quoted fields has no closing quote and
    the parser hits EOF before it finds another quote.
    
    When this happens finding the erroneous field can be somewhat
    complicated and time consuming, and in most cases it would be better to
    report the line where the record started.
    
    This change updates Reader to keep track of the line on which a record
    begins and uses it for errors instead of the current line, making it
    easier to find errors.
    
    Although a user-visible change, this should have no impact on existing
    code, since most users don't explicitly work with the line in the error
    and probably already expect the new behaviour.
    
    Updates #19019
    
    Change-Id: Ic9bc70fad2651c69435d614d537e7a9266819b05
    Reviewed-on: https://go-review.googlesource.com/52830Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    5d14ac74
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...