Fix error position reporting in multiline script (#827)

This commit is contained in:
Andreev Fedor
2025-09-08 10:40:52 +02:00
committed by GitHub
parent 98b021a54c
commit fd562c5c2a
2 changed files with 14 additions and 2 deletions
+11
View File
@@ -1757,6 +1757,17 @@ func TestEval_exposed_error(t *testing.T) {
require.Equal(t, 1, fileError.Line)
}
func TestCompile_exposed_error_with_multiline_script(t *testing.T) {
_, err := expr.Compile("{\n\ta: 1,\n\tb: #,\n\tc: 3,\n}")
require.Error(t, err)
fileError, ok := err.(*file.Error)
require.True(t, ok, "error should be of type *file.Error")
require.Equal(t, "unexpected token Operator(\"#\") (3:5)\n | b: #,\n | ....^", fileError.Error())
require.Equal(t, 4, fileError.Column)
require.Equal(t, 3, fileError.Line)
}
func TestIssue105(t *testing.T) {
type A struct {
Field string
+3 -2
View File
@@ -31,12 +31,13 @@ func (e *Error) Bind(source Source) *Error {
break
}
if r == '\n' {
lineStart = i
lineStart = i + 1
e.Line++
e.Column = 0
} else {
e.Column++
}
runeCount++
e.Column++
}
lineEnd := lineStart + strings.IndexByte(src[lineStart:], '\n')