mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal/types2: better error reporting framework (starting point)
Until now, errors which came with additional details (e.g., a declaration cycle error followed by the list of objects involved in the cycle, one per line) were reported as an ordinary error followed by "secondary" errors, with the secondary errors marked as such by having a tab-indented error message. This approach often required clients to filter these secondary errors (as they are not new errors, they are just clarifying a previously reported error). This CL introduces a new internal error_ type which permits accumulating various error information that may then be reported as a single error. Change-Id: I25b2f094facd37e12737e517f7ef8853d465ff77 Reviewed-on: https://go-review.googlesource.com/c/go/+/296689 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
parent
142a76530c
commit
acd7cb5887
10 changed files with 173 additions and 71 deletions
|
|
@ -41,14 +41,6 @@ func check2(noders []*noder) {
|
|||
CompilerErrorMessages: true, // use error strings matching existing compiler errors
|
||||
Error: func(err error) {
|
||||
terr := err.(types2.Error)
|
||||
if len(terr.Msg) > 0 && terr.Msg[0] == '\t' {
|
||||
// types2 reports error clarifications via separate
|
||||
// error messages which are indented with a tab.
|
||||
// Ignore them to satisfy tools and tests that expect
|
||||
// only one error in such cases.
|
||||
// TODO(gri) Need to adjust error reporting in types2.
|
||||
return
|
||||
}
|
||||
base.ErrorfAt(m.makeXPos(terr.Pos), "%s", terr.Msg)
|
||||
},
|
||||
Importer: &gcimports{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue