Closed as not planned
Description
I've been tripped up by this a number of times already, so putting this out here for consideration.
If the $start
and $end
token positions you pass to findPrevious()
are the same, the function will work as expected. However, the same can not be said about the findNext()
method as in that case it will always return false
.
This is caused by the findPrevious()
method treating the end position as inclusive for ($i = $start; $i >= $end; $i--)
, while the findNext()
method treats it as exclusive for ($i = $start; $i < $end; $i++)
.
There are two possible solutions for this:
- Either check for
$start
and$end
being the same and adding 1 to the$end
in that case before entering the loop. This will lead to the least difference with current behaviour. - PR Issue #1319: findnext inconsistency, option 1 #1320 - Or make the loop in
findNext()
inclusive as well. This might lead to more breakage, but would make the functions more consistent in use. - PR Issue #1319: findnext inconsistency, option 2 #1321
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Ready for Release