#include "clang/AST/Comment.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/Basic/CharInfo.h"
#include "llvm/Support/ErrorHandling.h"
#include <type_traits>
namespace clang {
namespace comments {
#define ABSTRACT_COMMENT …
#define COMMENT …
#include "clang/AST/CommentNodes.inc"
#undef COMMENT
#undef ABSTRACT_COMMENT
static_assert …;
const char *Comment::getCommentKindName() const { … }
namespace {
struct good { … };
struct bad { … };
template <typename T>
good implements_child_begin_end(Comment::child_iterator (T::*)() const) { … }
LLVM_ATTRIBUTE_UNUSED
static inline bad implements_child_begin_end(
Comment::child_iterator (Comment::*)() const) { … }
#define ASSERT_IMPLEMENTS_child_begin …
LLVM_ATTRIBUTE_UNUSED
static inline void CheckCommentASTNodes() { … }
#undef ASSERT_IMPLEMENTS_child_begin
}
Comment::child_iterator Comment::child_begin() const { … }
Comment::child_iterator Comment::child_end() const { … }
bool TextComment::isWhitespaceNoCache() const { … }
bool ParagraphComment::isWhitespaceNoCache() const { … }
static TypeLoc lookThroughTypedefOrTypeAliasLocs(TypeLoc &SrcTL) { … }
static bool getFunctionTypeLoc(TypeLoc TL, FunctionTypeLoc &ResFTL) { … }
const char *
ParamCommandComment::getDirectionAsString(ParamCommandPassDirection D) { … }
void DeclInfo::fill() { … }
StringRef ParamCommandComment::getParamName(const FullComment *FC) const { … }
StringRef TParamCommandComment::getParamName(const FullComment *FC) const { … }
}
}