check __callStatic purity instead of the pseudoMethod purity #6953
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #3180, users reported that pseudo methods with
@method static
plus a return type were pure by default.It was not accurate, it's just that impurity was not checked. In #6724, I added code to check purity through __callStatic by checking the pure attribute of the pseudo method that was called.
It was successful in flagging impure calls in pure context but I did not see that the pure calls in pure context were now broken because I used the pure flag of the pseudo method (that is never flagged) instead of the pure flag of __callStatic itself.
This is now fixed and both way works, so this will fix #6941