From 7f690802ea7e390e6ecb292dc522bb5b99d3f59b Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Sat, 17 May 2014 11:58:09 +0300 Subject: [PATCH] CppParser: remove unnecessary #includes Use forward declarations to avoid the need to include lots of clang headers. This drops the compilation time for CppParser from 17.8 seconds to 14.1 seconds for me. Signed-off-by: Tomi Valkeinen --- src/CppParser/CXXABI.h | 2 -- src/CppParser/Comments.cpp | 1 + src/CppParser/Parser.cpp | 3 +++ src/CppParser/Parser.h | 32 ++++++++++++++------------------ src/CppParser/Target.h | 3 --- 5 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/CppParser/CXXABI.h b/src/CppParser/CXXABI.h index 943c43e7..02e7a302 100644 --- a/src/CppParser/CXXABI.h +++ b/src/CppParser/CXXABI.h @@ -15,8 +15,6 @@ #ifndef LLVM_CLANG_AST_CXXABI_H #define LLVM_CLANG_AST_CXXABI_H -#include "clang/AST/Type.h" - namespace clang { class ASTContext; diff --git a/src/CppParser/Comments.cpp b/src/CppParser/Comments.cpp index 20216881..74621cdc 100644 --- a/src/CppParser/Comments.cpp +++ b/src/CppParser/Comments.cpp @@ -7,6 +7,7 @@ #include "Parser.h" +#include #include using namespace CppSharp::CppParser; diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 91a264f1..2be6f7a5 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -7,6 +7,7 @@ #include "Parser.h" +#include #include #include #include @@ -21,7 +22,9 @@ #include #include #include +#include #include +#include #include #include #include diff --git a/src/CppParser/Parser.h b/src/CppParser/Parser.h index 0f1155c4..8648a2bb 100644 --- a/src/CppParser/Parser.h +++ b/src/CppParser/Parser.h @@ -7,26 +7,12 @@ #pragma once -#include -#include -#include -#include -#include -#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "CXXABI.h" +#include +#include "CXXABI.h" #include "CppParser.h" #include @@ -37,6 +23,16 @@ namespace clang { namespace CodeGen { class CodeGenTypes; } + struct ASTTemplateArgumentListInfo; + class FunctionTemplateSpecialization; + class FunctionTemplateSpecializationInfo; + class PreprocessingRecord; + class PreprocessedEntity; + class RawComment; + class TemplateSpecializationTypeLoc; + class TemplateArgumentList; + class VTableLayout; + class VTableComponent; } #define Debug printf diff --git a/src/CppParser/Target.h b/src/CppParser/Target.h index 6fdda70c..c977ffe7 100644 --- a/src/CppParser/Target.h +++ b/src/CppParser/Target.h @@ -7,13 +7,10 @@ #pragma once -#include "AST.h" #include "Helpers.h" namespace CppSharp { namespace CppParser { -using namespace CppSharp::CppParser::AST; - enum struct ParserIntType { NoInt = 0,