Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | function-args-by-*: Add an option to warn for overridden methods | Sergio Martins | 2018-03-17 | 10 | -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 methods | Sergio Martins | 2018-03-17 | 8 | -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_PROPERTY | Sergio Martins | 2018-03-17 | 6 | -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-pmf | Sergio Martins | 2018-03-17 | 13 | -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_VERSION | Sergio Martins | 2018-03-14 | 3 | -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 enabled | Sergio Martins | 2018-03-13 | 1 | -1/+1 | |
| | | ||||||
* | | Merge branch '1.3' into master | Sergio Martins | 2018-03-13 | 3 | -0/+15 | |
|\| | ||||||
| * | Don't recommend QStringLiteral in Q_GLOBAL_STATIC_WITH_ARGS | Sergio Martins | 2018-03-13 | 3 | -0/+15 | |
| | | | | | | | | | | | | Doesn't compile since it got noexcept BUG: 391807 | |||||
* | | Fix build on macOS, compiler doesn't seem too smart | Sergio Martins | 2018-03-12 | 1 | -1/+1 | |
| | | ||||||
* | | Introduce wrong-qevent-cast | Sergio Martins | 2018-03-11 | 13 | -16/+412 | |
| | | | | | | | | Warns when QEvents are cast to possibly the wrong class | |||||
* | | generate.py: Make it work on Windows | Sergio Martins | 2018-03-08 | 1 | -7/+7 | |
| | | ||||||
* | | Move reserve-candiates to level3 | Sergio Martins | 2018-03-04 | 8 | -12/+12 | |
| | | | | | | | | As it has quite a few false-positives | |||||
* | | generate.py: Detect check moves between levels | Sergio Martins | 2018-03-04 | 1 | -19/+58 | |
| | | | | | | | | | | Meaning changing the level in checks.json will automatically move the files to the correct place. | |||||
* | | Normalize filenames for checks | Sergio Martins | 2018-03-04 | 34 | -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-key | Sergio Martins | 2018-03-03 | 11 | -0/+132 | |
| | | | | | | | | Disabled by default, as there are valid use cases. | |||||
* | | Introduce fixits for qt-keywords check | Sergio Martins | 2018-03-03 | 7 | -6/+57 | |
| | | ||||||
* | | Introduce qt-keywords check | Sergio Martins | 2018-03-03 | 13 | -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 Martins | 2018-03-03 | 12 | -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 defined | Sergio Martins | 2018-03-03 | 2 | -0/+13 | |
| | | ||||||
* | | generate.py: Allow to specify which checks to generate | Sergio Martins | 2018-03-03 | 1 | -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 Qt | Sergio Martins | 2018-03-03 | 1 | -3/+6 | |
| | | | | | | | | Not QT. | |||||
* | | generate.py: Fix bug where files wouldn't be created | Sergio Martins | 2018-03-03 | 1 | -6/+6 | |
| | | ||||||
* | | checks.json: 'categories' is not a mandatory key | Sergio Martins | 2018-03-03 | 1 | -1/+2 | |
| | | ||||||
* | | generate.py: Also generate Changelog entry when creating a new check | Sergio Martins | 2018-03-03 | 1 | -2/+13 | |
| | | ||||||
* | | generate.py: Print a message when nothing was needed to be generated | Sergio Martins | 2018-03-03 | 1 | -11/+43 | |
| | | ||||||
* | | cleanup | Sergio Martins | 2018-03-03 | 1 | -15/+5 | |
| | | ||||||
* | | cleanup | Sergio Martins | 2018-03-03 | 1 | -20/+24 | |
| | | ||||||
* | | generate.py: Also generate the check's cpp and header from template | Sergio Martins | 2018-03-03 | 3 | -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 files | Sergio Martins | 2018-03-02 | 3 | -0/+33 | |
| | | ||||||
* | | generate.py: Generate README's for checks that don't have one | Sergio Martins | 2018-03-02 | 2 | -0/+20 | |
| | | | | | | | | Detected two checks with readme in wrong folder. | |||||
* | | Move these two readmes into correct level | Sergio Martins | 2018-03-02 | 2 | -0/+0 | |
| | | ||||||
* | | generate.py: Print help if no arguments given | Sergio Martins | 2018-03-02 | 1 | -0/+2 | |
| | | ||||||
* | | Allow to run generate.py from any folder, not just top-level | Sergio Martins | 2018-03-02 | 1 | -5/+8 | |
| | | ||||||
* | | README: Fix anchors of urls for manual level | Sergio Martins | 2018-03-02 | 2 | -18/+25 | |
| | | | | | | | | They were pointing to an inexistant path | |||||
* | | generate.py now also generates the README.md's list of checks | Sergio Martins | 2018-03-02 | 2 | -31/+54 | |
| | | | | | | | | No more manual editing. | |||||
* | | Fix unit-test | Sergio Martins | 2018-03-02 | 2 | -10/+10 | |
| | | ||||||
* | | generate.py now also generates CheckSources.cmake | Sergio Martins | 2018-03-02 | 6 | -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 alphabetically | Sergio Martins | 2018-03-02 | 1 | -41/+40 | |
| | | ||||||
* | | cmake: Move the check filenames into a separate file | Sergio Martins | 2018-03-02 | 2 | -79/+80 | |
| | | | | | | | | To make it easier to build only some checks during development | |||||
* | | Added CLAZY_HEADER_FILTER env variable | Sergio Martins | 2018-02-28 | 3 | -2/+13 | |
| | | | | | | | | | | | | In case you can't use -isystem due to a weird build system. CCBUG: 391212 | |||||
* | | unneeded-cast: Revamp this check a bit | Sergio Martins | 2018-02-25 | 9 | -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 Martins | 2018-02-25 | 1 | -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 Martins | 2018-02-25 | 1 | -0/+40 | |
| | | ||||||
* | | unneeded-cast: Prefer qobject_cast over dynamic_cast by default | Sergio Martins | 2018-02-24 | 9 | -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-cast | Sergio Martins | 2018-02-24 | 17 | -46/+47 | |
| | | | | | | | | Preparing to warn for qobject_casts too. | |||||
* | | copyable-polymorphic: Include class name in warning message | Sergio Martins | 2018-02-24 | 2 | -4/+4 | |
| | | ||||||
* | | copyable-polymorphic: minor performance optimization | Sergio Martins | 2018-02-24 | 1 | -8/+7 | |
| | | | | | | | | Only call Utils::copyAssign() if needed | |||||
* | | README: Updated documentation for each level | Sergio Martins | 2018-02-23 | 2 | -11/+11 | |
| | | | | | | | | level2 has actually very few false-positives nowadays. | |||||
* | | Update README, also include checks from manual level | Sergio Martins | 2018-02-23 | 3 | -26/+44 | |
| | | ||||||
* | | Rename HiddenLevel to ManualLevel | Sergio Martins | 2018-02-23 | 23 | -28/+27 | |
| | | | | | | | | | | It's not really hidden, it's just manual. Checks here should be explicitly enabled. |