Skip to content

Commit 304ee33

Browse files
mstoykovdlclark
authored andcommitted
Return the actual symbols in the reversed range error
1 parent 8fc3b60 commit 304ee33

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

regexp_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,3 +1241,14 @@ func TestConcatAccidentalPatternCharge(t *testing.T) {
12411241
t.Fatal("Expected non-nil, got nil")
12421242
}
12431243
}
1244+
1245+
func TestGoodReverseOrderMessage(t *testing.T) {
1246+
_, err := Compile(`[h-c]`, ECMAScript)
1247+
if err == nil {
1248+
t.Fatal("expected error")
1249+
}
1250+
expected := "error parsing regexp: [h-c] range in reverse order in `[h-c]`"
1251+
if err.Error() != expected {
1252+
t.Fatalf("expected %q got %q", expected, err.Error())
1253+
}
1254+
}

syntax/parser.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const (
104104
ErrBadClassInCharRange = "cannot include class \\%v in character range"
105105
ErrUnterminatedBracket = "unterminated [] set"
106106
ErrSubtractionMustBeLast = "a subtraction must be the last element in a character class"
107-
ErrReversedCharRange = "[x-y] range in reverse order"
107+
ErrReversedCharRange = "[%c-%c] range in reverse order"
108108
)
109109

110110
func (e ErrorCode) String() string {
@@ -1571,7 +1571,7 @@ func (p *parser) scanCharSet(caseInsensitive, scanOnly bool) (*CharSet, error) {
15711571
} else {
15721572
// a regular range, like a-z
15731573
if chPrev > ch {
1574-
return nil, p.getErr(ErrReversedCharRange)
1574+
return nil, p.getErr(ErrReversedCharRange, chPrev, ch)
15751575
}
15761576
cc.addRange(chPrev, ch)
15771577
}

0 commit comments

Comments
 (0)