Page MenuHomePhabricator

Remove the "preg_quote()" lint rule and update the "__CLASS__" lint rule

Authored by epriestley on Feb 26 2020, 4:58 PM.



Depends on D21031. Ref T11968. This clears some lint with the word "Future", but is just a minor cleanup patch not really related to the main goal in that task.

We currently warn on preg_quote() with no second parameter, but this is valid and correct:

preg_match('('.preg_quote($x).')', ...)

This is the modern recommended style for this sort of expression, so the warning is often a false positive; drop it.

The "CLASS" warning looks for hard-coded class names in strings, but currently looks for them as a word anywhere in the string.

This is often a false positive and sometimes makes error messages or exceptions untranslatable. For example, translators can't do anything with this:

Filesystem path "%s" does not exist.

...if it's written as:

%s path "%s" does not exist.

...just because it happens to appear in the class "Filesystem". Some other classes, including "Future", suffer from this.

Even when the detection is correct, it's clunky and a mistake here (failing to update the class name in an error message) is unlikely to ever do any real damage.

Test Plan

Ran unit tests and arc lint.

Diff Detail

rARC Arcanist
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Feb 26 2020, 4:58 PM
epriestley requested review of this revision.Feb 26 2020, 4:59 PM
This revision was not accepted when it landed; it landed in state Needs Review.Mar 6 2020, 5:14 PM
This revision was automatically updated to reflect the committed changes.