compilerplugins: move isUnoIncludeFile to base class

to reduce copy-pasted code

Change-Id: I7728d85dea7d0161998c326d6648ca681a8250d0
This commit is contained in:
Noel Grandin
2014-06-24 12:47:28 +02:00
parent 5406e237ea
commit a74193306a
6 changed files with 31 additions and 119 deletions

View File

@@ -17,6 +17,7 @@
#include <clang/Lex/Lexer.h>
#include "pluginhandler.hxx"
#include "compat.hxx"
/*
Base classes for plugin actions.
@@ -73,6 +74,28 @@ Stmt* Plugin::parentStmt( Stmt* stmt )
return const_cast< Stmt* >( parents[ stmt ] );
}
bool Plugin::isInUnoIncludeFile(SourceLocation spellingLocation) const {
StringRef name {
compiler.getSourceManager().getFilename(spellingLocation) };
return compat::isInMainFile(compiler.getSourceManager(), spellingLocation)
? (name == SRCDIR "/cppu/source/cppu/compat.cxx"
|| name == SRCDIR "/cppuhelper/source/compat.cxx"
|| name == SRCDIR "/sal/osl/all/compat.cxx")
: (name.startswith(SRCDIR "/include/com/")
|| name.startswith(SRCDIR "/include/cppu/")
|| name.startswith(SRCDIR "/include/cppuhelper/")
|| name.startswith(SRCDIR "/include/osl/")
|| name.startswith(SRCDIR "/include/rtl/")
|| name.startswith(SRCDIR "/include/sal/")
|| name.startswith(SRCDIR "/include/salhelper/")
|| name.startswith(SRCDIR "/include/systools/")
|| name.startswith(SRCDIR "/include/typelib/")
|| name.startswith(SRCDIR "/include/uno/")
|| name.startswith(SRCDIR "/workdir/")
|| name == SRCDIR "/include/comphelper/implbase_var.hxx");
}
namespace
{
class ParentBuilder