12#include "llvm/ADT/StringMap.h"
13#include "llvm/ADT/StringRef.h"
14#include "gtest/gtest.h"
24TEST_F(AddUsingTest, Prepare) {
27 WithContextValue WithConfig(
Config::Key, std::move(Cfg));
29 const std::string Header = R
"cpp(
30#define NS(name) one::two::name
31namespace ban { void foo() {} }
32namespace banana { void foo() {} }
35template<typename TT> class tt {};
37enum ee { ee_enum_value };
43 cc operator|(const cc& x) const { return x; }
53 "void fun() { o^n^e^:^:^t^w^o^:^:^c^c^:^:^m^m(); }");
55 "void fun() { o^n^e^:^:^t^w^o^:^:^c^c^:^:^s^t inst; }");
57 "void fun() { o^n^e^:^:^t^w^o^:^:^c^c^:^:^s^t inst; }");
62 "template<typename TT> using foo = one::tt<T^T>;");
65 "void fun() { one::two::cc() ^| one::two::cc(); }");
76 ExtraArgs.push_back(
"-xc++-header");
82TEST_F(AddUsingTest, Crash1072) {
85 const char *
Code = R
"cpp(
86 namespace ns { class A; }
98 llvm::StringRef TestSource;
99 llvm::StringRef ExpectedSource;
112namespace {using one::two::ff;
125 ::one::t^wo::cc inst;
130namespace {using ::one::two::cc;
170using one::two::ff;using one::two::ee;
200using one::oo;using one::two::ff;
223namespace {using one::two::ff;
251#define NS_BEGIN(name) namespace name {
261#define NS_BEGIN(name) namespace name {
274#define CALL(name) name()
281#define CALL(name) name()
291namespace foo { void fun(); }
300namespace foo { void fun(); }
319using ::one::two::ff;using ::one::two::ee;
338using ::one::two::ff;using ::one::two::ee;
357using one::two::ff;using one::two::ee;
387namespace {using two::cc;
413 using yy = one::two::cc;
422 using yy = one::two::cc;
453using one::two::ee::ee_one;
458using one::two::cc;using one::two::ee::ee_one;
489 switch(one::two::ee{}) { case two::ee_^one:break; }
495using one::two::ee_one;
498 switch(one::two::ee{}) { case ee_one:break; }
504 one::f^unc_temp<int>();
526 llvm::StringMap<std::string> EditedFiles;
527 for (
const auto &Case : Cases) {
528 ExtraFiles[
"test.hpp"] = R
"cpp(
536 struct st { struct nested {}; };
541template<typename T> struct vec {};
542template <typename T> void func_temp();
543template <typename T> T var_temp();
546 ExtraArgs.push_back(
"-fno-ms-compatibility");
547 EXPECT_EQ(apply(Case.TestSource, &EditedFiles), Case.ExpectedSource);
std::vector< llvm::unique_function< void(const Params &, Config &) const > > Apply
#define TWEAK_TEST(TweakID)
#define EXPECT_AVAILABLE(MarkedCode)
#define EXPECT_UNAVAILABLE(MarkedCode)
TEST_F(BackgroundIndexTest, NoCrashOnErrorFile)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
static clangd::Key< Config > Key
Context key which can be used to set the current Config.
struct clang::clangd::Config::@5 Style
Style of the codebase.
std::vector< std::string > FullyQualifiedNamespaces