staabm / phpstan-todo-by

Todo comments with expiration
https://staabm.github.io/2023/12/17/phpstan-todo-by-published.html
MIT License
173 stars 4 forks source link

Comments inside if statements are not parsed #111

Open thomasvisma opened 1 week ago

thomasvisma commented 1 week ago

Hi there,

we are using your package to identify TODOs with expired dates. First of all, great package and thanks for making it!

Recently we added a //todo 2024-09-10 inside an if statement and realized (after the deadline) that this was not picked up.

Issue

Comments inside if statements are not parsed, therefore no rules are triggered.

Version

phpstan-todo-by 0.1.27

Example

if (
// @todo 2024-08-01 Do something important 
$someStatement
) {
...
}

If the comment is moved to on top of the if, it will be parsed:

// @todo 2024-08-01 Do something important 
if (
$someStatement
) {
...
}
staabm commented 1 week ago

thanks for reporting. ATM we don't see all comments because of shortcommings on the phpstan end, see https://github.com/phpstan/phpstan/discussions/11701#discussioncomment-10660711

hopefully we can address it in the future

thomasvisma commented 1 week ago

Thanks for your quick reply, and also the comment you linked - very interesting. We wrote some custom rules that also return an empty array if no issues are found - I was not aware of the caching issue, thanks for pointing me to that!

Regarding the issue, luckily //todo comments inside if statements are very rare :) but let's hope improvements to the parsing will solve this issue at some point in the future

staabm commented 1 week ago

We wrote some custom rules that also return an empty array if no issues are found - I was not aware of the caching issue, thanks for pointing me to that!

note: the issue was about Collector rules. I did not yet check whether regular PHPStan\Rules\Rule are also affected.