llvm/clang/lib/AST/Comment.cpp

//===--- Comment.cpp - Comment AST node implementation --------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#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 {

// Check that no comment class has a non-trival destructor. They are allocated
// with a BumpPtrAllocator and therefore their destructor is not executed.
#define ABSTRACT_COMMENT
#define COMMENT
#include "clang/AST/CommentNodes.inc"
#undef COMMENT
#undef ABSTRACT_COMMENT

// DeclInfo is also allocated with a BumpPtrAllocator.
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

} // end unnamed namespace

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 {}

} // end namespace comments
} // end namespace clang