|
|
|
@ -28,14 +28,25 @@ type Error struct {
|
|
|
|
|
Err error |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (err Error) prefix() string { |
|
|
|
|
switch { |
|
|
|
|
case err.Line > 0 || err.Column > 0: |
|
|
|
|
if err.Filename != "" { |
|
|
|
|
return fmt.Sprintf("%s:%v:%v", err.Filename, err.Line, err.Column) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return fmt.Sprintf("%v:%v", err.Line, err.Column) |
|
|
|
|
default: |
|
|
|
|
return err.Filename |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (err Error) Error() string { |
|
|
|
|
var s []string |
|
|
|
|
|
|
|
|
|
switch { |
|
|
|
|
case err.Line > 0 || err.Column > 0: |
|
|
|
|
s = append(s, fmt.Sprintf("%s:%v:%v", err.Filename, err.Line, err.Column)) |
|
|
|
|
case err.Filename != "": |
|
|
|
|
s = append(s, err.Filename) |
|
|
|
|
prefix := err.prefix() |
|
|
|
|
if prefix != "" { |
|
|
|
|
s = append(s, prefix) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err.Err != nil { |
|
|
|
|