Commit 879786a
committed
Tests/Tokenizer: fix bug in the
This commit fixes a bug in `RecurseScopeMapDefaultKeywordConditionsTest
::testSwitchDefault()`. Among other things, this method checks whether
tokens within the scope of a `default` have `T_DEFAULT` set as the scope
condition.
Due to a bug, `testSwitchDefault()` would never check if the scope
condition is set for the tokens within the scope of a `T_DEFAULT` token
when `$conditionStop` is not `null`. `$conditionStop` is used when
`T_DEFAULT` uses curlies to open and close the scope. In those cases,
scope conditions are not set all the way until the scope closer.
Instead, they are only until just before a T_BREAK|T_RETURN|T_CONTINUE.
`simple_switch_default_with_curlies` test case is the only one that
currently sets `$conditionStop` to something other than `null`. But it
passes an offset value of the condition stop while the code was
expecting an absolute value of the index of the token where the scope
condition stops being set. Passing an offset meant that when `$end` was
set to be equal to `$conditionStop` it would always be less than `$i`
and the assertion inside the `for` loop would never run.
The code was now changed to calculate the correct value for `$end` when
`$conditionStop` is not null. It was also necessary to update the value
for `$conditionStop` in `simple_switch_default_with_curlies` as it was
pointing to the wrong token.
This uncovered an inconsistency in the tokenizer that might need to be
addressed in a separate issue. When `T_DEFAULT` doesn't use curlies the
tokenizer sets `scope_condition` for all the tokens until the token just
before `T_BREAK|T_RETURN|T_CONTINUE`. But when there are curlies,
`scope_condition` is set including for `T_BREAK|T_RETURN|T_CONTINUE`. It
needs to be determined if this behavior is intentional or not.default keyword tests1 parent a463796 commit 879786a
1 file changed
Lines changed: 2 additions & 2 deletions
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
166 | 166 | | |
167 | 167 | | |
168 | 168 | | |
169 | | - | |
| 169 | + | |
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
| |||
0 commit comments