diff options
author | Gabor Kelemen <kelemen.gabor2@nisz.hu> | 2019-10-04 00:03:09 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2019-10-04 09:08:49 +0200 |
commit | b3c072a4ee94c5f86723cdcc98ea08f46f981b4a (patch) | |
tree | dbbcc924f1aa83d37d0a7a03a048b9a0818faa49 | |
parent | 5d89d64846cd9fa56ffae47aae7c8c52a2a5feea (diff) |
find-unneeded-includes: ignore extra recommendations
When IWYU is used to check cxx files it also checks associated
hxx (but for .hxx -> .h too) files too and gives addition/removal recommendations
There is no documented way of disabling this.
Currently f-u-i does not differentiate between recommendations for the
checked file and its header and prints everything.
Which means sometimes I need to update .hxx files or blacklist warnings
that interestingly are not shown when the same .hxx is checked with IWYU.
The worst example is ucb/source/ucp/ftp/curl.hxx where IWYU gives recommendations
for /usr/include/x86_64-linux-gnu/curl/curl.h
Remedy this with considering the full
filename + should add these lines: / should remove these lines:
string as beginning of interesting recommendations
Also remove some now obsolete blacklist entries from yaml files
Change-Id: I1d139536992e4b56c699c31a4cc6491d373c2002
Reviewed-on: https://gerrit.libreoffice.org/80172
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rwxr-xr-x | bin/find-unneeded-includes | 14 | ||||
-rw-r--r-- | sc/IwyuFilter_sc.yaml | 6 | ||||
-rw-r--r-- | sd/IwyuFilter_sd.yaml | 5 | ||||
-rw-r--r-- | svtools/IwyuFilter_svtools.yaml | 6 | ||||
-rw-r--r-- | sw/IwyuFilter_sw.yaml | 7 | ||||
-rw-r--r-- | toolkit/IwyuFilter_toolkit.yaml | 3 | ||||
-rw-r--r-- | vcl/IwyuFilter_vcl.yaml | 3 |
7 files changed, 8 insertions, 36 deletions
diff --git a/bin/find-unneeded-includes b/bin/find-unneeded-includes index c89b69fc9d2a..8ba5a7d354a6 100755 --- a/bin/find-unneeded-includes +++ b/bin/find-unneeded-includes @@ -147,7 +147,7 @@ def unwrapInclude(include): return include[1:-1] -def processIWYUOutput(iwyuOutput, moduleRules): +def processIWYUOutput(iwyuOutput, moduleRules, fileName): inAdd = False toAdd = [] inRemove = False @@ -169,15 +169,17 @@ def processIWYUOutput(iwyuOutput, moduleRules): inAdd = False continue - match = re.match("(.*) should add these lines:$", line) + shouldAdd = fileName + " should add these lines:" + match = re.match(shouldAdd, line) if match: - currentFileName = match.group(1) + currentFileName = match.group(0).split(' ')[0] inAdd = True continue - match = re.match("(.*) should remove these lines:$", line) + shouldRemove = fileName + " should remove these lines:" + match = re.match(shouldRemove, line) if match: - currentFileName = match.group(1) + currentFileName = match.group(0).split(' ')[0] inRemove = True continue @@ -212,7 +214,7 @@ def run_tool(task_queue, failed_files): if not len(failed_files): print("[IWYU] " + invocation.split(' ')[-1]) p = subprocess.Popen(invocation, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - retcode = processIWYUOutput(p.communicate()[0].decode('utf-8').splitlines(), moduleRules) + retcode = processIWYUOutput(p.communicate()[0].decode('utf-8').splitlines(), moduleRules, invocation.split(' ')[-1]) if retcode == -1: print("ERROR: A file is probably not self contained, check this commands output:\n" + invocation) elif retcode > 0: diff --git a/sc/IwyuFilter_sc.yaml b/sc/IwyuFilter_sc.yaml index 6708f69fec8b..2743efdd96f2 100644 --- a/sc/IwyuFilter_sc.yaml +++ b/sc/IwyuFilter_sc.yaml @@ -58,9 +58,6 @@ blacklist: sc/inc/chgviset.hxx: # base class has to be a complete type - unotools/textsearch.hxx - sc/inc/colcontainer.hxx: - # Needed to silence the check on colcontainer.cxx - - column.hxx sc/inc/column.hxx: # base class has to be a complete type - mdds/flat_segment_tree.hpp @@ -384,9 +381,6 @@ blacklist: sc/source/filter/inc/formulabase.hxx: # Needed for typedef - com/sun/star/table/CellAddress.hpp - sc/source/filter/inc/fprogressbar.hxx: - # Avoid collision with fprogressbar.cxx checking - - progress.hxx sc/source/filter/inc/ooxformulaparser.hxx: # base class has to be a complete type - com/sun/star/lang/XInitialization.hpp diff --git a/sd/IwyuFilter_sd.yaml b/sd/IwyuFilter_sd.yaml index b5b715e0214e..d69c951a8bbd 100644 --- a/sd/IwyuFilter_sd.yaml +++ b/sd/IwyuFilter_sd.yaml @@ -124,8 +124,6 @@ blacklist: # base class has to be a complete type - com/sun/star/drawing/framework/XResourceFactory.hpp - com/sun/star/lang/XInitialization.hpp - # Don't stop on false positive while checking BasicViewFactory.cxx - - namespace vcl { class Window; } sd/source/ui/framework/factories/ChildWindowPane.hxx: # base class has to be a complete type - com/sun/star/lang/XEventListener.hpp @@ -466,9 +464,6 @@ blacklist: sd/source/ui/func/fuhhconv.cxx: # Needed for direct member access - com/sun/star/awt/XWindow.hpp - sd/source/ui/inc/fupoor.hxx: - # Don't stop on false positive while checking fupoor.cxx - - namespace sd { class Window; } sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx: # Needed for instantiation of function template specialization - Window.hxx diff --git a/svtools/IwyuFilter_svtools.yaml b/svtools/IwyuFilter_svtools.yaml index cebbeb954a74..9cc69c4f10fa 100644 --- a/svtools/IwyuFilter_svtools.yaml +++ b/svtools/IwyuFilter_svtools.yaml @@ -4,9 +4,3 @@ blacklist: svtools/source/dialogs/insdlg.cxx: # Needed on WIN - comphelper/classids.hxx - include/svtools/statusbarcontroller.hxx: - # Silence warning while checking statusbarcontroller.cxx - - cppuhelper/interfacecontainer.hxx - include/svtools/toolboxcontroller.hxx: - # Silence warning while checking toolboxcontroller.cxx - - cppuhelper/interfacecontainer.hxx diff --git a/sw/IwyuFilter_sw.yaml b/sw/IwyuFilter_sw.yaml index 0b80ae609177..4f9c0b3b3961 100644 --- a/sw/IwyuFilter_sw.yaml +++ b/sw/IwyuFilter_sw.yaml @@ -309,10 +309,6 @@ blacklist: - com/sun/star/util/XUpdatable.hpp # Needed for UnoImplPtr template - unobaseclass.hxx - include/svtools/unoevent.hxx: - # Don't give false positives checking sw/source/core/inc/unoevent.hxx - - com/sun/star/container/XNameReplace.hpp - - com/sun/star/lang/XServiceInfo.hpp sw/source/core/inc/unoflatpara.hxx: # Base class needs complete type - com/sun/star/beans/XPropertySet.hpp @@ -440,9 +436,6 @@ blacklist: sw/qa/extras/ww8import/ww8import.cxx: # Needed for for-loop range - com/sun/star/graphic/XGraphic.hpp - include/sal/types.h: - # Ignore warning during checking source/filter/ww8/types.hxx - - sal/typesizes.h sw/source/filter/ww8/ww8scan.hxx: # OSL_BIGENDIAN is being checked - osl/endian.h diff --git a/toolkit/IwyuFilter_toolkit.yaml b/toolkit/IwyuFilter_toolkit.yaml index 4d2ab3248bec..b29efcf83049 100644 --- a/toolkit/IwyuFilter_toolkit.yaml +++ b/toolkit/IwyuFilter_toolkit.yaml @@ -4,9 +4,6 @@ blacklist: toolkit/source/awt/vclxmenu.cxx: # Needed for direct member access - vcl/window.hxx - include/toolkit/controls/geometrycontrolmodel.hxx: - # Silence warning while checking geometrycontrolmodel.cxx - - toolkit/controls/geometrycontrolmodel_impl.hxx toolkit/source/helper/servicenames.cxx: # Needed for extern array declarations - toolkit/helper/servicenames.hxx diff --git a/vcl/IwyuFilter_vcl.yaml b/vcl/IwyuFilter_vcl.yaml index bd85127e0f2e..e99d502e2739 100644 --- a/vcl/IwyuFilter_vcl.yaml +++ b/vcl/IwyuFilter_vcl.yaml @@ -44,9 +44,6 @@ blacklist: vcl/source/gdi/configsettings.cxx: # Needed for OSL_DEBUG_LEVEL > 2 - sal/log.hxx - include/vcl/mtfxmldump.hxx: - # Silence warning about include/vcl/mtfxmldump.hxx - - vcl/metaactiontypes.hxx vcl/source/gdi/salgdilayout.cxx: # Needed on WIN32 - desktop/exithelper.h |