TomasNajman thank you for the sample.
The || operator has higher priority than the && operator, and it's left associative. (not the same as the boolean or and and operators).
The order of execution and the result won't be affected.
You can play with the small example here: https://onlinephp.io/c/c9699
<?php
function a(){ echo __FUNCTION__; return true; }
function b(){ echo __FUNCTION__; return false; }
function c(){ echo __FUNCTION__; return true; }
function d(){ echo __FUNCTION__; return false; }
var_dump(
(a() && b()) || (c() && d())
);
var_dump(
a() && b() || (c() && d())
);
var_dump(
(a() && b()) || c() && d()
);
var_dump(
a() && b() || c() && d()
);
We have had a minor bug with PHP7102 already, so we are always glad for more samples and checkups by users. Please, if you have anything else, or if you think this diagnostic is misleading, we're happy to discuss.