Commit Graph

23 Commits

Author SHA1 Message Date
Noel Grandin
1fd27a7931 filter out AST in more plugins
I seem to have missed quite a few in

    commit 9f4d23c151
    filter out some of the AST in the plugins

This nets me another 14% improvement

Change-Id: I39b980b49ced560f768045dbedd3ddfef29306c1
Reviewed-on: https://gerrit.libreoffice.org/59501
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-23 16:34:48 +02:00
Stephan Bergmann
3cc5149a84 Avoid -Werror=deprecated-declarations with recent Clang trunk
...which first added alternative names to and then deprecated getLocBegin/End

Change-Id: Iaefb8ce259057abfa6cd20f0b63c0ef2949a96b2
Reviewed-on: https://gerrit.libreoffice.org/58820
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-10 15:14:03 +02:00
Noel Grandin
94ab8e4360 improve loplugin rewriter double source modification detection
because my new rewriter easily generates overlapping rewriting.

Move the code from flatten and salcall up into the pluginhandler, and
drop the simpler detection logic.

Change-Id: I3da51ac510954a5d4276cee0924cc5dc1fc9a734
Reviewed-on: https://gerrit.libreoffice.org/49493
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-10 06:54:27 +01:00
Noel Grandin
04bb9549e0 loplugin:flatten look for large if statement at end of function
the rewriter is capable of flattening the function
by returning early, and inverting simple conditions. More
complex conditions are just wrapped in "!(x)"

Change-Id: I028fd7b018dc7347c1b323b2a73ab99c18508faa
Reviewed-on: https://gerrit.libreoffice.org/45071
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-22 11:54:04 +01:00
Noel Grandin
4de9091c62 loplugin:flatten loosen condition
the description in the comment was right, but the code was not

Change-Id: I7c038e7453f4387d33ec6423c0c55446d6d0df47
Reviewed-on: https://gerrit.libreoffice.org/44680
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-14 06:43:21 +01:00
Stephan Bergmann
adf3cf074e Fix loplugin:flatten's skipping of if/then/else/if chains
(but which finds no new hits)

Change-Id: I5d5f351402797b662a08ec8dca301bd174e22a50
Reviewed-on: https://gerrit.libreoffice.org/44433
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-11-08 11:59:09 +01:00
Stephan Bergmann
0f5c7d8622 Remove obsolete comment
...that should have been removed in 2446d2b2fb
"Avoid expensive calls to containsPreprocessingConditionalInclusion"

Change-Id: I2ffe0ec7b6f1ec0b418979f2864bd5de79ab2c9a
2017-11-07 17:14:56 +01:00
Stephan Bergmann
2446d2b2fb Avoid expensive calls to containsPreprocessingConditionalInclusion
Change-Id: I42981a23f75298591b2c3b073aea66426220f3e2
2017-11-07 12:47:37 +01:00
Stephan Bergmann
b35bb38f18 Clean away temporarily added using declarations
Change-Id: I26734c13515394162d88351a1cbe2b20abdac865
2017-11-07 11:50:47 +01:00
Noel Grandin
38ccea5588 Improve performance of loplugin:flatten
...by avoiding calls to parentStmt.

Change-Id: I4f3d66a0529e9c3abf5c963bcf70db7a2afa1bf9
2017-10-06 12:44:57 +02:00
Stephan Bergmann
3d1b53a099 Also suppress loplugin:flatten in C++ class member functions...
...invovling preprocessing conditionals, to actually make the unhelpful warning
on Windows about OleEmbeddedObject::changeState go away.  And while at it, make
the check for preprocessing conditionals more targeted (similar to
1084e8be44 "More targeted check for preprocessing
conditionals in loplugin:blockblock").

Change-Id: I0300e0a547e969520a90cd126ea8f788cc17560f
Reviewed-on: https://gerrit.libreoffice.org/42975
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-10-05 09:38:31 +02:00
Stephan Bergmann
62274b24f9 Suppress loplugin:flatten in functions involving preprocessing conditionals
...as needed by clang-cl on Windows to avoid unhelpful warnings about
OleEmbeddedObject::changeState (embeddedobj/source/msole/oleembed.cxx)
containging an "if" in an "#ifdef _WIN32" block followed by "else throw".

Change-Id: I95bed29b9003db08499156ae7f885aeeea5a0158
Reviewed-on: https://gerrit.libreoffice.org/42963
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-30 13:28:43 +02:00
Noel Grandin
1ffba0e356 loplugin:flatten check for throw in then clause
also make the plugin ignore the case where we have var decl's in the
clause we want to flatten, which could lead to problematic extension of
variable lifetime

Change-Id: I3061f7104e8c6a460bf74f5eac325a516ec50c59
Reviewed-on: https://gerrit.libreoffice.org/42889
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-29 08:51:48 +02:00
Noel Grandin
298abfd91b disable flatten loplugin
<noelgrandin> sberg, new plugin flatten just went active
<sberg> noelgrandin, with a measure to avoid extending lifetime of (problematic) local vars?
<noelgrandin> sberg, no
<sberg> noelgrandin, how can you make it active then?
<noelgrandin> sberg, ok, will disable

Change-Id: I595d1a50ff34417faf73b777714f9dc92e2a43d2
2017-09-27 11:07:17 +02:00
Noel Grandin
cc1ed7fbce loplugin:flatten in various
Change-Id: I42dca691ffadbddad38a7e8f978b1da9d5d9a7b0
Reviewed-on: https://gerrit.libreoffice.org/42842
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-27 11:02:56 +02:00
Noel Grandin
ee6bdeec8d loplugin:flatten in svl..svx
and implement a check in the plugin to prevent us modifying the
same patch of source code twice. This logic should probably be moved
into plugin.cxx at some point.

Change-Id: I7ebff6424cc8733bb2c8f7dba75eaaec68649290
Reviewed-on: https://gerrit.libreoffice.org/42660
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-23 09:04:48 +02:00
Noel Grandin
a7ce8404be loplugin:flatten in pyuno..sc
Change-Id: I7ddc0b76532d26910f78642200750459508c2861
Reviewed-on: https://gerrit.libreoffice.org/42617
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-22 13:48:25 +02:00
Noel Grandin
b9de047454 loplugin:flatten in scaddins..sd
Change-Id: I190323ce910224f883c4370b2c752644a5a35edd
Reviewed-on: https://gerrit.libreoffice.org/42626
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-22 13:06:24 +02:00
Noel Grandin
b63609ba54 loplugin:flatten in framework..package
Change-Id: Ide8a97eae6e2fdc7d2dcccba1480ac55a9b555bc
Reviewed-on: https://gerrit.libreoffice.org/42593
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-22 08:30:10 +02:00
Stephan Bergmann
6ac0dc7003 -Werror=unused-but-set-variable
Change-Id: I8bdf8a4c04256ad665960dd6f0d71d032156a34b
2017-09-21 15:55:08 +02:00
Noel Grandin
3a481dde03 loplugin:flatten in editeng..extensions
Change-Id: I2b68f5640471ea827c09af1b5a319fb526a53b4b
Reviewed-on: https://gerrit.libreoffice.org/42579
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-21 15:29:20 +02:00
Noel Grandin
ac80f048f2 loplugin:flatten in basctl..configmgr
Change-Id: I674cad57ce30a885e126d3bcc921f8fcb53dc36d
Reviewed-on: https://gerrit.libreoffice.org/42577
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-21 15:18:57 +02:00
Noel Grandin
dc97ede7cf new loplugin flatten
look for places where we can flatten the control flow in a method by
exiting early with a throw, ie. instead of

   if (cond)
       stuff();
   else
       throw ex;

we  change it to:

   if (!cond)
      throw ex;
   stuff();

Change-Id: I8b6bdf883b325807c7e3a3ef698e4f4606e7d38b
2017-09-20 12:42:33 +02:00