Bug 450744 - QString::toLower()/toUpper().endsWith()/.startsWith()
Summary: QString::toLower()/toUpper().endsWith()/.startsWith()
Status: REPORTED
Alias: None
Product: clazy
Classification: Developer tools
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Unassigned bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-23 10:11 UTC by martonmiklos
Modified: 2022-02-23 10:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description martonmiklos 2022-02-23 10:11:22 UTC
I recently came across a code which used the following method to check file extension:

if (fileName.toLower().endsWith(".xml"))

Clearly the author was not aware that the endsWith/startsWith has a second argument for the case sensitivity.

I think it would be beneficial to add a clazy warning to highlight this. 

To summarize:
Throw a warning like "use the cs argument of the endsWith/startsWith" in the case if:
There is a chained call of toLower()/toUpper().endsWith()/.startsWith()
And the endsWith() startsWith() has a single constant argument which does not contain any upper/lower case characters.

I do not know if it is achievable by the clazy (having access to the arguments, types, etc.)
If the idea has positive feedback I could look into implementing it.