This check finds function calls where the call arguments might be provided in an incorrect order, known as argument selection defects. It works by comparing the name of the argument with the name of the parameter in the function declaration.
A diagnostic is emitted if an argument name is similar to another argument than the one it is passed to currently. It uses case-insensitive comparison and implements multiple heuristics to lessen the number of noisy warnings.
False-positive warnings from this check are still useful as they indicate bad naming conventions for variables and parameters.
Originally implemented by @varjujan.
@barancsuk contributed by keeping the check further developed.