

If I'm understanding the second sentence correctly, when the result of a "pure" method is unused the IDE will flag usage of the method as unused and recommend its removal. That doesn't really give me any clues why it treats these two methods differently. This means that a function call that resolves to such a function can be safely removed if the execution result is not used in code afterwards. The attribute marks the function that has no impact on the program state or passed parameters used after the function execution. The comments in the class definition say: The thing I'm puzzled about is that the IDE inspection complains that I should add the JetBrains\PhpStorm\Pure attribute to the rules() method, but not the messages() method. Protected function getPhoneNumberMessage(): string $/", "max:16"] "phone_number.regex" => $this->getPhoneNumberMessage(), Two methods, both of which return a simple array that's partially populated by a method, but the IDE treats them differently. I've got a very simple FormRequest class in a Laravel project.
