[include-fixer] Simplify unittest code.
Summary: The InMemorySymbolIndex only constructs hard-coded Class symbols from a string map. The patch provide a flexable way in InMemorySymbolIndex to create a custom SymbolInfo in the include-fixer unittest. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20232 llvm-svn: 269427
This commit is contained in:
parent
b79ab27853
commit
631e5f23f9
|
@ -15,24 +15,9 @@ namespace clang {
|
|||
namespace include_fixer {
|
||||
|
||||
InMemorySymbolIndex::InMemorySymbolIndex(
|
||||
const std::map<std::string, std::vector<std::string>> &LookupTable) {
|
||||
for (const auto &Entry : LookupTable) {
|
||||
llvm::StringRef Identifier(Entry.first);
|
||||
llvm::SmallVector<llvm::StringRef, 8> Names;
|
||||
Identifier.split(Names, "::");
|
||||
for (const auto &Header : Entry.second) {
|
||||
std::vector<SymbolInfo::Context> Contexts;
|
||||
for (auto IdentiferContext = Names.rbegin() + 1;
|
||||
IdentiferContext != Names.rend(); ++IdentiferContext) {
|
||||
Contexts.emplace_back(SymbolInfo::ContextType::Namespace,
|
||||
*IdentiferContext);
|
||||
}
|
||||
|
||||
SymbolInfo Symbol(Names.back(), SymbolInfo::SymbolKind::Class, Header,
|
||||
Contexts, 1);
|
||||
this->LookupTable[Symbol.getName()].push_back(Symbol);
|
||||
}
|
||||
}
|
||||
const std::vector<SymbolInfo> &Symbols) {
|
||||
for (const auto &Symbol : Symbols)
|
||||
LookupTable[Symbol.getName()].push_back(Symbol);
|
||||
}
|
||||
|
||||
std::vector<SymbolInfo>
|
||||
|
|
|
@ -21,8 +21,7 @@ namespace include_fixer {
|
|||
/// Xref database with fixed content.
|
||||
class InMemorySymbolIndex : public SymbolIndex {
|
||||
public:
|
||||
InMemorySymbolIndex(
|
||||
const std::map<std::string, std::vector<std::string>> &LookupTable);
|
||||
InMemorySymbolIndex(const std::vector<find_all_symbols::SymbolInfo> &Symbols);
|
||||
|
||||
std::vector<clang::find_all_symbols::SymbolInfo>
|
||||
search(llvm::StringRef Identifier) override;
|
||||
|
|
|
@ -92,7 +92,7 @@ llvm::Optional<SymbolInfo> CreateSymbolInfo(const NamedDecl *ND,
|
|||
return llvm::None;
|
||||
|
||||
return SymbolInfo(ND->getNameAsString(), Type, FilePath.str(),
|
||||
GetContexts(ND), SM.getExpansionLineNumber(Loc));
|
||||
SM.getExpansionLineNumber(Loc), GetContexts(ND));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -70,8 +70,8 @@ namespace clang {
|
|||
namespace find_all_symbols {
|
||||
|
||||
SymbolInfo::SymbolInfo(llvm::StringRef Name, SymbolKind Type,
|
||||
llvm::StringRef FilePath,
|
||||
const std::vector<Context> &Contexts, int LineNumber)
|
||||
llvm::StringRef FilePath, int LineNumber,
|
||||
const std::vector<Context> &Contexts)
|
||||
: Name(Name), Type(Type), FilePath(FilePath), Contexts(Contexts),
|
||||
LineNumber(LineNumber) {}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ public:
|
|||
SymbolInfo() : Type(SymbolKind::Unknown), LineNumber(-1) {};
|
||||
|
||||
SymbolInfo(llvm::StringRef Name, SymbolKind Type, llvm::StringRef FilePath,
|
||||
const std::vector<Context> &Contexts, int LineNumber);
|
||||
int LineNumber, const std::vector<Context> &Contexts);
|
||||
|
||||
/// \brief Get symbol name.
|
||||
llvm::StringRef getName() const;
|
||||
|
|
|
@ -62,18 +62,20 @@ int includeFixerMain(int argc, const char **argv) {
|
|||
std::map<std::string, std::vector<std::string>> SymbolsMap;
|
||||
SmallVector<StringRef, 4> SemicolonSplits;
|
||||
StringRef(Input).split(SemicolonSplits, ";");
|
||||
std::vector<find_all_symbols::SymbolInfo> Symbols;
|
||||
for (StringRef Pair : SemicolonSplits) {
|
||||
auto Split = Pair.split('=');
|
||||
std::vector<std::string> Headers;
|
||||
SmallVector<StringRef, 4> CommaSplits;
|
||||
Split.second.split(CommaSplits, ",");
|
||||
for (StringRef Header : CommaSplits)
|
||||
Headers.push_back(Header.trim());
|
||||
SymbolsMap[Split.first.trim()] = std::move(Headers);
|
||||
Symbols.push_back(find_all_symbols::SymbolInfo(
|
||||
Split.first.trim(),
|
||||
find_all_symbols::SymbolInfo::SymbolKind::Unknown, Header.trim(), 1,
|
||||
{}));
|
||||
}
|
||||
SymbolIndexMgr->addSymbolIndex(
|
||||
llvm::make_unique<include_fixer::InMemorySymbolIndex>(
|
||||
std::move(SymbolsMap)));
|
||||
llvm::make_unique<include_fixer::InMemorySymbolIndex>(Symbols));
|
||||
break;
|
||||
}
|
||||
case yaml: {
|
||||
|
|
|
@ -13,12 +13,13 @@
|
|||
#include "unittests/Tooling/RewriterTestContext.h"
|
||||
#include "clang/Tooling/Tooling.h"
|
||||
#include "gtest/gtest.h"
|
||||
using namespace clang;
|
||||
|
||||
namespace clang {
|
||||
namespace include_fixer {
|
||||
namespace {
|
||||
|
||||
using find_all_symbols::SymbolInfo;
|
||||
|
||||
static bool runOnCode(tooling::ToolAction *ToolAction, StringRef Code,
|
||||
StringRef FileName,
|
||||
const std::vector<std::string> &ExtraArgs) {
|
||||
|
@ -47,16 +48,21 @@ static bool runOnCode(tooling::ToolAction *ToolAction, StringRef Code,
|
|||
static std::string runIncludeFixer(
|
||||
StringRef Code,
|
||||
const std::vector<std::string> &ExtraArgs = std::vector<std::string>()) {
|
||||
std::map<std::string, std::vector<std::string>> SymbolsMap = {
|
||||
{"std::string", {"<string>"}},
|
||||
{"std::sting", {"\"sting\""}},
|
||||
{"std::string::size_type", {"<string>"}},
|
||||
{"a::b::foo", {"dir/otherdir/qux.h"}},
|
||||
std::vector<SymbolInfo> Symbols = {
|
||||
SymbolInfo("string", SymbolInfo::SymbolKind::Class, "<string>", 1,
|
||||
{{SymbolInfo::ContextType::Namespace, "std"}}),
|
||||
SymbolInfo("sting", SymbolInfo::SymbolKind::Class, "\"sting\"", 1,
|
||||
{{SymbolInfo::ContextType::Namespace, "std"}}),
|
||||
SymbolInfo("size_type", SymbolInfo::SymbolKind::Variable, "<string>", 1,
|
||||
{{SymbolInfo::ContextType::Namespace, "string"},
|
||||
{SymbolInfo::ContextType::Namespace, "std"}}),
|
||||
SymbolInfo("foo", SymbolInfo::SymbolKind::Class, "\"dir/otherdir/qux.h\"",
|
||||
1, {{SymbolInfo::ContextType::Namespace, "b"},
|
||||
{SymbolInfo::ContextType::Namespace, "a"}}),
|
||||
};
|
||||
auto SymbolIndexMgr = llvm::make_unique<include_fixer::SymbolIndexManager>();
|
||||
SymbolIndexMgr->addSymbolIndex(
|
||||
llvm::make_unique<include_fixer::InMemorySymbolIndex>(
|
||||
std::move(SymbolsMap)));
|
||||
llvm::make_unique<include_fixer::InMemorySymbolIndex>(Symbols));
|
||||
|
||||
std::vector<clang::tooling::Replacement> Replacements;
|
||||
IncludeFixerActionFactory Factory(*SymbolIndexMgr, Replacements);
|
||||
|
|
|
@ -89,12 +89,6 @@ private:
|
|||
MockReporter Reporter;
|
||||
};
|
||||
|
||||
SymbolInfo CreateSymbolInfo(StringRef Name, SymbolInfo::SymbolKind Type,
|
||||
StringRef FilePath, int LineNumber,
|
||||
const std::vector<SymbolInfo::Context> &Contexts) {
|
||||
return SymbolInfo(Name, Type, FilePath, Contexts, LineNumber);
|
||||
}
|
||||
|
||||
TEST_F(FindAllSymbolsTest, VariableSymbols) {
|
||||
static const char Code[] = R"(
|
||||
extern int xargc;
|
||||
|
@ -104,19 +98,17 @@ TEST_F(FindAllSymbolsTest, VariableSymbols) {
|
|||
})";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo(
|
||||
"xargc", SymbolInfo::SymbolKind::Variable, HeaderName, 2, {});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("xargc", SymbolInfo::SymbolKind::Variable, HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol =
|
||||
CreateSymbolInfo("SSSS", SymbolInfo::SymbolKind::Variable, HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("SSSS", SymbolInfo::SymbolKind::Variable, HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol =
|
||||
CreateSymbolInfo("XXXX", SymbolInfo::SymbolKind::Variable, HeaderName, 5,
|
||||
{{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("XXXX", SymbolInfo::SymbolKind::Variable, HeaderName, 5,
|
||||
{{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -130,12 +122,12 @@ TEST_F(FindAllSymbolsTest, ExternCSymbols) {
|
|||
})";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo(
|
||||
"C_Func", SymbolInfo::SymbolKind::Function, HeaderName, 3, {});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("C_Func", SymbolInfo::SymbolKind::Function, HeaderName, 3, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("C_struct", SymbolInfo::SymbolKind::Class,
|
||||
HeaderName, 4, {});
|
||||
Symbol =
|
||||
SymbolInfo("C_struct", SymbolInfo::SymbolKind::Class, HeaderName, 4, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -155,17 +147,17 @@ TEST_F(FindAllSymbolsTest, CXXRecordSymbols) {
|
|||
)";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo("Glob", SymbolInfo::SymbolKind::Class,
|
||||
HeaderName, 2, {});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("Glob", SymbolInfo::SymbolKind::Class, HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("A", SymbolInfo::SymbolKind::Class, HeaderName, 6,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("A", SymbolInfo::SymbolKind::Class, HeaderName, 6,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("AAA", SymbolInfo::SymbolKind::Class, HeaderName, 7,
|
||||
{{SymbolInfo::ContextType::Record, "A"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("AAA", SymbolInfo::SymbolKind::Class, HeaderName, 7,
|
||||
{{SymbolInfo::ContextType::Record, "A"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_FALSE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -187,8 +179,8 @@ TEST_F(FindAllSymbolsTest, CXXRecordSymbolsTemplate) {
|
|||
)";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo("T_TEMP", SymbolInfo::SymbolKind::Class,
|
||||
HeaderName, 3, {});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("T_TEMP", SymbolInfo::SymbolKind::Class, HeaderName, 3, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -209,22 +201,21 @@ TEST_F(FindAllSymbolsTest, FunctionSymbols) {
|
|||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol =
|
||||
CreateSymbolInfo("gg", SymbolInfo::SymbolKind::Function, HeaderName, 3,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
SymbolInfo("gg", SymbolInfo::SymbolKind::Function, HeaderName, 3,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("f", SymbolInfo::SymbolKind::Function, HeaderName,
|
||||
4, {{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("f", SymbolInfo::SymbolKind::Function, HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol =
|
||||
CreateSymbolInfo("SSSFFF", SymbolInfo::SymbolKind::Function, HeaderName,
|
||||
5, {{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("SSSFFF", SymbolInfo::SymbolKind::Function, HeaderName, 5,
|
||||
{{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("fun", SymbolInfo::SymbolKind::Function, HeaderName,
|
||||
10, {{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
Symbol = SymbolInfo("fun", SymbolInfo::SymbolKind::Function, HeaderName, 10,
|
||||
{{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, "na"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -237,29 +228,29 @@ TEST_F(FindAllSymbolsTest, NamespaceTest) {
|
|||
)";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo("X1", SymbolInfo::SymbolKind::Variable,
|
||||
HeaderName, 2, {});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("X1", SymbolInfo::SymbolKind::Variable, HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("X2", SymbolInfo::SymbolKind::Variable, HeaderName,
|
||||
3, {{SymbolInfo::ContextType::Namespace, ""}});
|
||||
Symbol = SymbolInfo("X2", SymbolInfo::SymbolKind::Variable, HeaderName, 3,
|
||||
{{SymbolInfo::ContextType::Namespace, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("X3", SymbolInfo::SymbolKind::Variable, HeaderName,
|
||||
4, {{SymbolInfo::ContextType::Namespace, ""},
|
||||
{SymbolInfo::ContextType::Namespace, ""}});
|
||||
Symbol = SymbolInfo("X3", SymbolInfo::SymbolKind::Variable, HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::Namespace, ""},
|
||||
{SymbolInfo::ContextType::Namespace, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("X4", SymbolInfo::SymbolKind::Variable, HeaderName,
|
||||
5, {{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, ""}});
|
||||
Symbol = SymbolInfo("X4", SymbolInfo::SymbolKind::Variable, HeaderName, 5,
|
||||
{{SymbolInfo::ContextType::Namespace, "nb"},
|
||||
{SymbolInfo::ContextType::Namespace, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
TEST_F(FindAllSymbolsTest, DecayedTypeTest) {
|
||||
static const char Code[] = "void DecayedFunc(int x[], int y[10]) {}";
|
||||
runFindAllSymbols(Code);
|
||||
SymbolInfo Symbol = CreateSymbolInfo(
|
||||
SymbolInfo Symbol = SymbolInfo(
|
||||
"DecayedFunc", SymbolInfo::SymbolKind::Function, HeaderName, 1, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
@ -272,16 +263,16 @@ TEST_F(FindAllSymbolsTest, CTypedefTest) {
|
|||
)";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo(
|
||||
"size_t_", SymbolInfo::SymbolKind::TypedefName, HeaderName, 2, {});
|
||||
SymbolInfo Symbol = SymbolInfo("size_t_", SymbolInfo::SymbolKind::TypedefName,
|
||||
HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("X", SymbolInfo::SymbolKind::TypedefName,
|
||||
HeaderName, 3, {});
|
||||
Symbol =
|
||||
SymbolInfo("X", SymbolInfo::SymbolKind::TypedefName, HeaderName, 3, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("XX", SymbolInfo::SymbolKind::TypedefName,
|
||||
HeaderName, 4, {});
|
||||
Symbol =
|
||||
SymbolInfo("XX", SymbolInfo::SymbolKind::TypedefName, HeaderName, 4, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
@ -297,45 +288,42 @@ TEST_F(FindAllSymbolsTest, EnumTest) {
|
|||
)";
|
||||
runFindAllSymbols(Code);
|
||||
|
||||
SymbolInfo Symbol = CreateSymbolInfo(
|
||||
"Glob_E", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("G1", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 2,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "Glob_E"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("G2", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 2,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "Glob_E"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("Altitude", SymbolInfo::SymbolKind::EnumDecl,
|
||||
HeaderName, 3, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
Symbol = CreateSymbolInfo("high", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 3,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "Altitude"}});
|
||||
EXPECT_FALSE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("A1", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::EnumDecl, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
Symbol = CreateSymbolInfo("A2", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 4,
|
||||
{{SymbolInfo::ContextType::EnumDecl, ""}});
|
||||
SymbolInfo Symbol =
|
||||
SymbolInfo("Glob_E", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 2, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol =
|
||||
CreateSymbolInfo("A_ENUM", SymbolInfo::SymbolKind::EnumDecl, HeaderName,
|
||||
7, {{SymbolInfo::ContextType::Record, "A"}});
|
||||
SymbolInfo("G1", SymbolInfo::SymbolKind::EnumConstantDecl, HeaderName, 2,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "Glob_E"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol =
|
||||
SymbolInfo("G2", SymbolInfo::SymbolKind::EnumConstantDecl, HeaderName, 2,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "Glob_E"}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = SymbolInfo("Altitude", SymbolInfo::SymbolKind::EnumDecl, HeaderName,
|
||||
3, {});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
Symbol =
|
||||
SymbolInfo("high", SymbolInfo::SymbolKind::EnumConstantDecl, HeaderName,
|
||||
3, {{SymbolInfo::ContextType::EnumDecl, "Altitude"}});
|
||||
EXPECT_FALSE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = CreateSymbolInfo("X1", SymbolInfo::SymbolKind::EnumDecl, HeaderName,
|
||||
7, {{SymbolInfo::ContextType::EnumDecl, "A_ENUM"},
|
||||
{SymbolInfo::ContextType::Record, "A"}});
|
||||
Symbol = SymbolInfo("A1", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 4, {{SymbolInfo::ContextType::EnumDecl, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
Symbol = SymbolInfo("A2", SymbolInfo::SymbolKind::EnumConstantDecl,
|
||||
HeaderName, 4, {{SymbolInfo::ContextType::EnumDecl, ""}});
|
||||
EXPECT_TRUE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = SymbolInfo("A_ENUM", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 7,
|
||||
{{SymbolInfo::ContextType::Record, "A"}});
|
||||
EXPECT_FALSE(hasSymbol(Symbol));
|
||||
|
||||
Symbol = SymbolInfo("X1", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 7,
|
||||
{{SymbolInfo::ContextType::EnumDecl, "A_ENUM"},
|
||||
{SymbolInfo::ContextType::Record, "A"}});
|
||||
EXPECT_FALSE(hasSymbol(Symbol));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue