`$a <=> $b` returns `-1` if `$a` is lesser, `1` if `$b` is lesser,
and `0` if they are equal, which are exactly the values 'sort()'
callbacks are supposed to return.
It also enables the neat idiom `$a[x] <=> $b[x] ?: $a[y] <=> $b[y]`
to sort arrays of objects first by 'x', and by 'y' if they are equal.
* Replace a common pattern like `return $a < $b ? -1 : 1` with the
new operator (and similar patterns with the variables, the numbers
or the comparison inverted). Some of the uses were previously not
correctly handling the variables being equal; this is now
automatically fixed.
* Also replace `return $a - $b`, which is equivalent to `return
$a <=> $b` if both variables are integers but less intuitive.
* (Do not replace `return strcmp( $a, $b )`. It is also equivalent
when both variables are strings, but if any of the variables is not,
'strcmp()' converts it to a string before comparison, which could
give different results than '<=>', so changing this would require
careful review and isn't worth it.)
* Also replace `return $a > $b`, which presumably sort of works most
of the time (returns `1` if `$b` is lesser, and `0` if they are
equal or `$a` is lesser) but is erroneous.
Change-Id: I19a3d2fc8fcdb208c10330bd7a42c4e05d7f5cf3
And fix the only incompatibility in findDeprecated.php. It's OK to throw
exceptions on invalid files since we lint all PHP files so there
should be no invalid ones.
Change-Id: Ie5913c2aae4b521a4b6f805e911e4e2764386b45
The old PhpParser had dynamic class_alias() calls in its autoloader
which caused HHVM RepoAuthoritative compilation to fail with a fatal
error. These b/c aliases were removed in 2.0.
Change-Id: I6e2e3412204249a50a5806c33f48f426ab8c4511
Add a maintenance script, findDeprecated.php, which iterates through
$IP/include/**.php, looking for functions and methods which have been marked as
deprecated (via a '@deprecated' tag in the doc-block), and then prints a
detailed report indicating the version, file, line and version of each
deprecated interface.
Change-Id: I9518a52b8c51ee972552a94f5367c1faa7e04a3a