aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | function-args-by-*: Add an option to warn for overridden methodsSergio Martins2018-03-1710-3/+96
| | | | | | | | | | | | | | | | Warning for overridden methods is disabled by default, but can be enabled with: export CLAZY_EXTRA_OPTIONS=function-args-by-value-warn-for-overridden-methods (or s/value/ref)
* | function-args-by-*: don't warn for overridden methodsSergio Martins2018-03-178-9/+87
| | | | | | | | | | | | | | As the user often can't change its signature. If it's a base method then it will warn. BUG: 391812
* | fully-qualified-moc-types: Also warn for Q_PROPERTYSergio Martins2018-03-176-37/+320
| | | | | | | | | | | | | | | | If the property is a gadget. enums and QObject's don't need to be fully qualified. CCMAIL: mathias.hasselmann@kdab.com CCMAIL: filipe.azevedo@kdab.com
* | Introduce static-pmfSergio Martins2018-03-1713-1/+150
| | | | | | | | | | | | | | Storing pointer to member functions in static variables is not advisable on MingW. Breaks connect(). CCMAIL: mathias.hasselmann@kdab.com
* | qstring-arg: Don't warn when inside QT_REQUIRE_VERSIONSergio Martins2018-03-143-5/+12
| | | | | | | | | | | | | | That should be fixed in Qt Added explicit ctor as a drive by BUG: 391851
* | README: Instruct users to only report bugs without distcc/icecc enabledSergio Martins2018-03-131-1/+1
| |
* | Merge branch '1.3' into masterSergio Martins2018-03-133-0/+15
|\|
| * Don't recommend QStringLiteral in Q_GLOBAL_STATIC_WITH_ARGSSergio Martins2018-03-133-0/+15
| | | | | | | | | | | | Doesn't compile since it got noexcept BUG: 391807
* | Fix build on macOS, compiler doesn't seem too smartSergio Martins2018-03-121-1/+1
| |
* | Introduce wrong-qevent-castSergio Martins2018-03-1113-16/+412
| | | | | | | | Warns when QEvents are cast to possibly the wrong class
* | generate.py: Make it work on WindowsSergio Martins2018-03-081-7/+7
| |
* | Move reserve-candiates to level3Sergio Martins2018-03-048-12/+12
| | | | | | | | As it has quite a few false-positives
* | generate.py: Detect check moves between levelsSergio Martins2018-03-041-19/+58
| | | | | | | | | | Meaning changing the level in checks.json will automatically move the files to the correct place.
* | Normalize filenames for checksSergio Martins2018-03-0434-49/+49
| | | | | | | | | | Having all of them in the same format makes easier to move checks to another level via script, when needed
* | Introducing qhash-with-char-pointer-keySergio Martins2018-03-0311-0/+132
| | | | | | | | Disabled by default, as there are valid use cases.
* | Introduce fixits for qt-keywords checkSergio Martins2018-03-037-6/+57
| |
* | Introduce qt-keywords checkSergio Martins2018-03-0313-1/+173
| | | | | | | | | | | | | | Although QT_NO_KEYWORDS is useful we can still have a fixit in clazy. Warns for emit, slot, signal and foreach. Disabled by default. FixIt will come next.
* | Also pass the macro info in MacroExpands()Sergio Martins2018-03-0312-14/+15
| | | | | | | | It's needed if we want to know in which file the macro was defined.
* | Add util method that tells us if QT_NO_KEYWORDS is definedSergio Martins2018-03-032-0/+13
| |
* | generate.py: Allow to specify which checks to generateSergio Martins2018-03-031-3/+13
| | | | | | | | | | | | | | | | This is useful to decrease build times while developing a new check , as touching Utils*h classes will trigger long rebuilds. By doing ./generate.py --generate <my-check> only my check will be built.
* | checks starting with qt- should have classname starting with QtSergio Martins2018-03-031-3/+6
| | | | | | | | Not QT.
* | generate.py: Fix bug where files wouldn't be createdSergio Martins2018-03-031-6/+6
| |
* | checks.json: 'categories' is not a mandatory keySergio Martins2018-03-031-1/+2
| |
* | generate.py: Also generate Changelog entry when creating a new checkSergio Martins2018-03-031-2/+13
| |
* | generate.py: Print a message when nothing was needed to be generatedSergio Martins2018-03-031-11/+43
| |
* | cleanupSergio Martins2018-03-031-15/+5
| |
* | cleanupSergio Martins2018-03-031-20/+24
| |
* | generate.py: Also generate the check's cpp and header from templateSergio Martins2018-03-033-3/+134
| | | | | | | | | | deduces copyright year and author from GIT_AUTHOR_NAME env Now all the boiler plate is taken care of when creating a new check.
* | generate.py: Generate unit-test folder and filesSergio Martins2018-03-023-0/+33
| |
* | generate.py: Generate README's for checks that don't have oneSergio Martins2018-03-022-0/+20
| | | | | | | | Detected two checks with readme in wrong folder.
* | Move these two readmes into correct levelSergio Martins2018-03-022-0/+0
| |
* | generate.py: Print help if no arguments givenSergio Martins2018-03-021-0/+2
| |
* | Allow to run generate.py from any folder, not just top-levelSergio Martins2018-03-021-5/+8
| |
* | README: Fix anchors of urls for manual levelSergio Martins2018-03-022-18/+25
| | | | | | | | They were pointing to an inexistant path
* | generate.py now also generates the README.md's list of checksSergio Martins2018-03-022-31/+54
| | | | | | | | No more manual editing.
* | Fix unit-testSergio Martins2018-03-022-10/+10
| |
* | generate.py now also generates CheckSources.cmakeSergio Martins2018-03-026-28/+73
| | | | | | | | | | This makes it easier to compile only 1 check, useful during development to reduce build times, you just trim down checks.json and generate
* | Sort Checks.h alphabeticallySergio Martins2018-03-021-41/+40
| |
* | cmake: Move the check filenames into a separate fileSergio Martins2018-03-022-79/+80
| | | | | | | | To make it easier to build only some checks during development
* | Added CLAZY_HEADER_FILTER env variableSergio Martins2018-02-283-2/+13
| | | | | | | | | | | | In case you can't use -isystem due to a weird build system. CCBUG: 391212
* | unneeded-cast: Revamp this check a bitSergio Martins2018-02-259-16/+129
| | | | | | | | | | Now warns of unneeded qobject-casts and static_casts too. Like casting to itself, or casting to base class.
* | Fix TypeUtils::derivesFrom()Sergio Martins2018-02-251-0/+1
| | | | | | | | | | When comparing pointers of record decls better use the canonical form, so we don't fail for typedefs
* | Add QtUtils::is_qobject_cast(Stmt)Sergio Martins2018-02-251-0/+40
| |
* | unneeded-cast: Prefer qobject_cast over dynamic_cast by defaultSergio Martins2018-02-249-19/+35
| | | | | | | | | | | | | | To disable this behavior you'll need to set: CLAZY_EXTRA_OPTIONS=unneeded-cast-prefer-dynamic-cast-over-qobject This is a better default for Qt.
* | Rename bogus-dynamic-cast to unneeded-castSergio Martins2018-02-2417-46/+47
| | | | | | | | Preparing to warn for qobject_casts too.
* | copyable-polymorphic: Include class name in warning messageSergio Martins2018-02-242-4/+4
| |
* | copyable-polymorphic: minor performance optimizationSergio Martins2018-02-241-8/+7
| | | | | | | | Only call Utils::copyAssign() if needed
* | README: Updated documentation for each levelSergio Martins2018-02-232-11/+11
| | | | | | | | level2 has actually very few false-positives nowadays.
* | Update README, also include checks from manual levelSergio Martins2018-02-233-26/+44
| |
* | Rename HiddenLevel to ManualLevelSergio Martins2018-02-2323-28/+27
| | | | | | | | | | It's not really hidden, it's just manual. Checks here should be explicitly enabled.