data: NameHierarchy class
* replaced vector of strings as name hierarchy by a new NameHierarchy class. * Adjusted code in ASTVisitor, Storage and various test cases.
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "helper/TestFileManager.h"
|
||||
|
||||
|
||||
class CxxParserTestSuite: public CxxTest::TestSuite
|
||||
{
|
||||
public:
|
||||
@@ -2329,7 +2330,7 @@ public:
|
||||
TS_ASSERT_EQUALS(client->templateArgumentTypes[0], "test<int>->int <0:0 0:0>");
|
||||
}
|
||||
|
||||
void test_cxx_parser_finds_template_default_argument_type_of_template_function()
|
||||
void test_cxx_parser_finds_type_template_default_argument_type_of_template_function()
|
||||
{
|
||||
std::shared_ptr<TestParserClient> client = parseCode(
|
||||
"template <typename T = int>\n"
|
||||
@@ -2347,7 +2348,33 @@ public:
|
||||
TS_ASSERT_EQUALS(client->templateDefaultArgumentTypes[0], "int -> test<typename T>::T <1:24 1:26>");
|
||||
}
|
||||
|
||||
void test_cxx_parser_does_not_find_default_argument_type_for_non_type_bool_template_parameter_of_template_function()
|
||||
{
|
||||
std::shared_ptr<TestParserClient> client = parseCode(
|
||||
"template <bool T = true>\n"
|
||||
"void test()\n"
|
||||
"{\n"
|
||||
"};\n"
|
||||
);
|
||||
|
||||
TS_ASSERT_EQUALS(client->templateDefaultArgumentTypes.size(), 0);
|
||||
}
|
||||
|
||||
void test_cxx_parser_finds_template_template_default_argument_type_of_template_function()
|
||||
{
|
||||
std::shared_ptr<TestParserClient> client = parseCode(
|
||||
"template <typename T>\n"
|
||||
"class A\n"
|
||||
"{};\n"
|
||||
"template <template<typename> class T = A>\n"
|
||||
"void test()\n"
|
||||
"{\n"
|
||||
"};\n"
|
||||
);
|
||||
|
||||
TS_ASSERT_EQUALS(client->templateDefaultArgumentTypes.size(), 1);
|
||||
TS_ASSERT_EQUALS(client->templateDefaultArgumentTypes[0], "A<typename T> -> test<template<typename> typename T>::T<typename> <4:40 4:40>");
|
||||
}
|
||||
|
||||
void test_cxx_parser_parses_multiple_files()
|
||||
{
|
||||
@@ -2403,28 +2430,28 @@ private:
|
||||
}
|
||||
|
||||
virtual Id onTypedefParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, const ParseTypeUsage& underlyingType,
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, const ParseTypeUsage& underlyingType,
|
||||
AccessType access
|
||||
)
|
||||
{
|
||||
std::string str = addAccessPrefix(underlyingType.dataType->getFullTypeName() + " -> " + utility::join(nameHierarchy, "::"), access);
|
||||
std::string str = addAccessPrefix(underlyingType.dataType->getFullTypeName() + " -> " + nameHierarchy.getFullName(), access);
|
||||
typedefs.push_back(addLocationSuffix(str, location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onClassParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, AccessType access,
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessType access,
|
||||
const ParseLocation& scopeLocation)
|
||||
{
|
||||
classes.push_back(addLocationSuffix(addAccessPrefix(utility::join(nameHierarchy, "::"), access), location, scopeLocation));
|
||||
classes.push_back(addLocationSuffix(addAccessPrefix(nameHierarchy.getFullName(), access), location, scopeLocation));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onStructParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, AccessType access,
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessType access,
|
||||
const ParseLocation& scopeLocation)
|
||||
{
|
||||
structs.push_back(addLocationSuffix(addAccessPrefix(utility::join(nameHierarchy, "::"), access), location, scopeLocation));
|
||||
structs.push_back(addLocationSuffix(addAccessPrefix(nameHierarchy.getFullName(), access), location, scopeLocation));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2472,30 +2499,30 @@ private:
|
||||
}
|
||||
|
||||
virtual Id onNamespaceParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, const ParseLocation& scopeLocation)
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, const ParseLocation& scopeLocation)
|
||||
{
|
||||
namespaces.push_back(addLocationSuffix(utility::join(nameHierarchy, "::"), location, scopeLocation));
|
||||
namespaces.push_back(addLocationSuffix(nameHierarchy.getFullName(), location, scopeLocation));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onEnumParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, AccessType access,
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessType access,
|
||||
const ParseLocation& scopeLocation)
|
||||
{
|
||||
enums.push_back(addLocationSuffix(addAccessPrefix(utility::join(nameHierarchy, "::"), access), location, scopeLocation));
|
||||
enums.push_back(addLocationSuffix(addAccessPrefix(nameHierarchy.getFullName(), access), location, scopeLocation));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onEnumConstantParsed(const ParseLocation& location, const std::vector<std::string>& nameHierarchy)
|
||||
virtual Id onEnumConstantParsed(const ParseLocation& location, const NameHierarchy& nameHierarchy)
|
||||
{
|
||||
enumConstants.push_back(addLocationSuffix(utility::join(nameHierarchy, "::"), location));
|
||||
enumConstants.push_back(addLocationSuffix(nameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onInheritanceParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& nameHierarchy, const std::vector<std::string>& baseNameHierarchy, AccessType access)
|
||||
const ParseLocation& location, const NameHierarchy& nameHierarchy, const NameHierarchy& baseNameHierarchy, AccessType access)
|
||||
{
|
||||
std::string str = utility::join(nameHierarchy, "::") + " : " + addAccessPrefix(utility::join(baseNameHierarchy, "::"), access);
|
||||
std::string str = nameHierarchy.getFullName() + " : " + addAccessPrefix(baseNameHierarchy.getFullName(), access);
|
||||
inheritances.push_back(addLocationSuffix(str, location));
|
||||
return 0;
|
||||
}
|
||||
@@ -2521,37 +2548,37 @@ private:
|
||||
}
|
||||
|
||||
virtual Id onFieldUsageParsed(
|
||||
const ParseLocation& location, const ParseFunction& user, const std::vector<std::string>& usedNameHierarchy)
|
||||
const ParseLocation& location, const ParseFunction& user, const NameHierarchy& usedNameHierarchy)
|
||||
{
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + utility::join(usedNameHierarchy, "::"), location));
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + usedNameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onGlobalVariableUsageParsed(
|
||||
const ParseLocation& location, const ParseFunction& user, const std::vector<std::string>& usedNameHierarchy)
|
||||
const ParseLocation& location, const ParseFunction& user, const NameHierarchy& usedNameHierarchy)
|
||||
{
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + utility::join(usedNameHierarchy, "::"), location));
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + usedNameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onGlobalVariableUsageParsed(
|
||||
const ParseLocation& location, const ParseVariable& user, const std::vector<std::string>& usedNameHierarchy)
|
||||
const ParseLocation& location, const ParseVariable& user, const NameHierarchy& usedNameHierarchy)
|
||||
{
|
||||
usages.push_back(addLocationSuffix(variableStr(user) + " -> " + utility::join(usedNameHierarchy, "::"), location));
|
||||
usages.push_back(addLocationSuffix(variableStr(user) + " -> " + usedNameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onEnumConstantUsageParsed(
|
||||
const ParseLocation& location, const ParseFunction& user, const std::vector<std::string>& usedNameHierarchy)
|
||||
const ParseLocation& location, const ParseFunction& user, const NameHierarchy& usedNameHierarchy)
|
||||
{
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + utility::join(usedNameHierarchy, "::"), location));
|
||||
usages.push_back(addLocationSuffix(functionStr(user) + " -> " + usedNameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onEnumConstantUsageParsed(
|
||||
const ParseLocation& location, const ParseVariable& user, const std::vector<std::string>& usedNameHierarchy)
|
||||
const ParseLocation& location, const ParseVariable& user, const NameHierarchy& usedNameHierarchy)
|
||||
{
|
||||
usages.push_back(addLocationSuffix(variableStr(user) + " -> " + utility::join(usedNameHierarchy, "::"), location));
|
||||
usages.push_back(addLocationSuffix(variableStr(user) + " -> " + usedNameHierarchy.getFullName(), location));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2568,51 +2595,51 @@ private:
|
||||
}
|
||||
|
||||
virtual Id onTemplateArgumentTypeParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& templateArgumentTypeNameHierarchy,
|
||||
const std::vector<std::string>& templateRecordNameHierarchy)
|
||||
const ParseLocation& location, const NameHierarchy& templateArgumentTypeNameHierarchy,
|
||||
const NameHierarchy& templateRecordNameHierarchy)
|
||||
{
|
||||
templateArgumentTypes.push_back(
|
||||
addLocationSuffix(utility::join(templateRecordNameHierarchy, "::") + "->" + utility::join(templateArgumentTypeNameHierarchy, "::"), location)
|
||||
addLocationSuffix(templateRecordNameHierarchy.getFullName() + "->" + templateArgumentTypeNameHierarchy.getFullName(), location)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onTemplateDefaultArgumentTypeParsed(
|
||||
const ParseTypeUsage& defaultArgumentType, const std::vector<std::string>& templateArgumentTypeNameHierarchy)
|
||||
const ParseTypeUsage& defaultArgumentType, const NameHierarchy& templateArgumentTypeNameHierarchy)
|
||||
{
|
||||
templateDefaultArgumentTypes.push_back(
|
||||
addLocationSuffix(utility::join(defaultArgumentType.dataType->getTypeNameHierarchy(), "::") + " -> " + utility::join(templateArgumentTypeNameHierarchy, "::"), defaultArgumentType.location)
|
||||
addLocationSuffix(defaultArgumentType.dataType->getTypeNameHierarchy().getFullName() + " -> " + templateArgumentTypeNameHierarchy.getFullName(), defaultArgumentType.location)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onTemplateRecordParameterTypeParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& templateParameterTypeNameHierarchy,
|
||||
const std::vector<std::string>& templateRecordNameHierarchy)
|
||||
const ParseLocation& location, const NameHierarchy& templateParameterTypeNameHierarchy,
|
||||
const NameHierarchy& templateRecordNameHierarchy)
|
||||
{
|
||||
templateParameterTypes.push_back(
|
||||
addLocationSuffix(utility::join(templateParameterTypeNameHierarchy, "::"), location)
|
||||
addLocationSuffix(templateParameterTypeNameHierarchy.getFullName(), location)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onTemplateRecordSpecializationParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& specializedRecordNameHierarchy,
|
||||
const RecordType specializedRecordType, const std::vector<std::string>& specializedFromNameHierarchy)
|
||||
const ParseLocation& location, const NameHierarchy& specializedRecordNameHierarchy,
|
||||
const RecordType specializedRecordType, const NameHierarchy& specializedFromNameHierarchy)
|
||||
{
|
||||
templateSpecializations.push_back(
|
||||
addLocationSuffix(std::string(specializedRecordType == ParserClient::RECORD_CLASS ? "class" : "struct") + " " +
|
||||
utility::join(specializedRecordNameHierarchy, "::") + " -> " + utility::join(specializedFromNameHierarchy, "::"), location)
|
||||
specializedRecordNameHierarchy.getFullName() + " -> " + specializedFromNameHierarchy.getFullName(), location)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual Id onTemplateFunctionParameterTypeParsed(
|
||||
const ParseLocation& location, const std::vector<std::string>& templateParameterTypeNameHierarchy,
|
||||
const ParseLocation& location, const NameHierarchy& templateParameterTypeNameHierarchy,
|
||||
const ParseFunction function)
|
||||
{
|
||||
templateParameterTypes.push_back(
|
||||
addLocationSuffix(utility::join(templateParameterTypeNameHierarchy, "::"), location)
|
||||
addLocationSuffix(templateParameterTypeNameHierarchy.getFullName(), location)
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -13,13 +13,13 @@ class DataTypeTestSuite: public CxxTest::TestSuite
|
||||
public:
|
||||
void test_datatype_created_with_name_has_no_qualifiers_or_modifiers()
|
||||
{
|
||||
NamedDataType dataType(utility::splitToVector("int", "::"));
|
||||
NamedDataType dataType(createNameHierarchy("int"));
|
||||
TS_ASSERT_EQUALS("int", dataType.getFullTypeName());
|
||||
}
|
||||
|
||||
void test_datatype_created_with_name_and_const_qualifier_has_no_modifiers()
|
||||
{
|
||||
NamedDataType dataType(utility::splitToVector("int", "::"));
|
||||
NamedDataType dataType(createNameHierarchy("int"));
|
||||
dataType.addQualifier(DataType::QUALIFIER_CONST);
|
||||
TS_ASSERT_EQUALS("int const", dataType.getFullTypeName());
|
||||
}
|
||||
@@ -28,34 +28,34 @@ public:
|
||||
//{
|
||||
// DataTypeQualifierList qualifierList;
|
||||
// DataTypeModifierStack modifierStack;
|
||||
// DataType dataType(utility::splitToVector("int", "::"), qualifierList, modifierStack);
|
||||
// DataType dataType(createNameHierarchy("int"), qualifierList, modifierStack);
|
||||
// TS_ASSERT_EQUALS("int", dataType.getFullTypeName());
|
||||
//}
|
||||
|
||||
void test_datatype_created_with_name_and_array_modifier_has_array_modifier()
|
||||
{
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(utility::splitToVector("int", "::"));
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(createNameHierarchy("int"));
|
||||
std::shared_ptr<DataType> dataType2 = std::make_shared<ArrayModifiedDataType>(dataType1);
|
||||
TS_ASSERT_EQUALS("int []", dataType2->getFullTypeName());
|
||||
}
|
||||
|
||||
void test_datatype_created_with_name_and_pointer_modifier_has_pointer_modifier()
|
||||
{
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(utility::splitToVector("int", "::"));
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(createNameHierarchy("int"));
|
||||
std::shared_ptr<DataType> dataType2 = std::make_shared<PointerModifiedDataType>(dataType1);
|
||||
TS_ASSERT_EQUALS("int *", dataType2->getFullTypeName());
|
||||
}
|
||||
|
||||
void test_datatype_created_with_name_and_reference_modifier_has_reference_modifier()
|
||||
{
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(utility::splitToVector("int", "::"));
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(createNameHierarchy("int"));
|
||||
std::shared_ptr<DataType> dataType2 = std::make_shared<ReferenceModifiedDataType>(dataType1);
|
||||
TS_ASSERT_EQUALS("int &", dataType2->getFullTypeName());
|
||||
}
|
||||
|
||||
void test_datatype_created_with_name_and_const_pointer_modifier_has_const_pointer_modifier()
|
||||
{
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(utility::splitToVector("int", "::"));
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(createNameHierarchy("int"));
|
||||
std::shared_ptr<DataType> dataType2 = std::make_shared<PointerModifiedDataType>(dataType1);
|
||||
dataType2->addQualifier(DataType::QUALIFIER_CONST);
|
||||
TS_ASSERT_EQUALS("int * const", dataType2->getFullTypeName());
|
||||
@@ -63,9 +63,20 @@ public:
|
||||
|
||||
void test_datatype_created_with_name_and_pointer_pointer_modifier_has_pointer_pointer_modifier()
|
||||
{
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(utility::splitToVector("int", "::"));
|
||||
std::shared_ptr<DataType> dataType1 = std::make_shared<NamedDataType>(createNameHierarchy("int"));
|
||||
std::shared_ptr<DataType> dataType2 = std::make_shared<PointerModifiedDataType>(dataType1);
|
||||
std::shared_ptr<DataType> dataType3 = std::make_shared<PointerModifiedDataType>(dataType2);
|
||||
TS_ASSERT_EQUALS("int * *", dataType3->getFullTypeName());
|
||||
}
|
||||
|
||||
private:
|
||||
NameHierarchy createNameHierarchy(std::string s) const
|
||||
{
|
||||
NameHierarchy nameHierarchy;
|
||||
for (std::string element: utility::splitToVector(s, "::"))
|
||||
{
|
||||
nameHierarchy.push(std::make_shared<NameElement>(element));
|
||||
}
|
||||
return nameHierarchy;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -11,7 +11,7 @@ public:
|
||||
void test_add_node()
|
||||
{
|
||||
SearchIndex index;
|
||||
SearchNode* node = index.addNode(utility::splitToVector("util", "::"));
|
||||
SearchNode* node = index.addNode(createNameHierarchy("util"));
|
||||
|
||||
TS_ASSERT(node);
|
||||
TS_ASSERT_EQUALS("util", node->getName());
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
void test_get_node()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util", "::"));
|
||||
index.addNode(createNameHierarchy("util"));
|
||||
SearchNode* node = index.getNode("util");
|
||||
|
||||
TS_ASSERT(node);
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
void test_add_hierarchy_node()
|
||||
{
|
||||
SearchIndex index;
|
||||
SearchNode* node = index.addNode(utility::splitToVector("util::math::pow", "::"));
|
||||
SearchNode* node = index.addNode(createNameHierarchy("util::math::pow"));
|
||||
|
||||
TS_ASSERT(node);
|
||||
TS_ASSERT_EQUALS("pow", node->getName());
|
||||
@@ -64,8 +64,8 @@ public:
|
||||
void test_reuse_hierarchy_node()
|
||||
{
|
||||
SearchIndex index;
|
||||
SearchNode* node1 = index.addNode(utility::splitToVector("math::pow", "::"));
|
||||
SearchNode* node2 = index.addNode(utility::splitToVector("math::floor", "::"));
|
||||
SearchNode* node1 = index.addNode(createNameHierarchy("math::pow"));
|
||||
SearchNode* node2 = index.addNode(createNameHierarchy("math::floor"));
|
||||
|
||||
TS_ASSERT(node1);
|
||||
TS_ASSERT(node2);
|
||||
@@ -79,8 +79,8 @@ public:
|
||||
void test_remove_nodes()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util::math::pow", "::"));
|
||||
index.addNode(utility::splitToVector("util::math::floor", "::"));
|
||||
index.addNode(createNameHierarchy("util::math::pow"));
|
||||
index.addNode(createNameHierarchy("util::math::floor"));
|
||||
|
||||
index.removeNode(index.getNode("util::math::pow"));
|
||||
|
||||
@@ -98,8 +98,8 @@ public:
|
||||
void test_remove_unreferenced_nodes()
|
||||
{
|
||||
SearchIndex index;
|
||||
SearchNode* node1 = index.addNode(utility::splitToVector("util::math::pow", "::"));
|
||||
SearchNode* node2 = index.addNode(utility::splitToVector("util::math::floor", "::"));
|
||||
SearchNode* node1 = index.addNode(createNameHierarchy("util::math::pow"));
|
||||
SearchNode* node2 = index.addNode(createNameHierarchy("util::math::floor"));
|
||||
|
||||
node1->addTokenId(1);
|
||||
node2->addTokenId(2);
|
||||
@@ -128,8 +128,8 @@ public:
|
||||
void test_clear()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("math", "::"));
|
||||
index.addNode(utility::splitToVector("string", "::"));
|
||||
index.addNode(createNameHierarchy("math"));
|
||||
index.addNode(createNameHierarchy("string"));
|
||||
|
||||
TS_ASSERT(index.getNode("math"));
|
||||
|
||||
@@ -142,9 +142,9 @@ public:
|
||||
void test_fuzzy_matching()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util", "::"));
|
||||
index.addNode(utility::splitToVector("math", "::"));
|
||||
index.addNode(utility::splitToVector("string", "::"));
|
||||
index.addNode(createNameHierarchy("util"));
|
||||
index.addNode(createNameHierarchy("math"));
|
||||
index.addNode(createNameHierarchy("string"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("u");
|
||||
|
||||
@@ -168,8 +168,8 @@ public:
|
||||
void test_fuzzy_matching_is_case_insensitive()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util", "::"));
|
||||
index.addNode(utility::splitToVector("MATH", "::"));
|
||||
index.addNode(createNameHierarchy("util"));
|
||||
index.addNode(createNameHierarchy("MATH"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("t");
|
||||
|
||||
@@ -187,9 +187,9 @@ public:
|
||||
void test_fuzzy_matching_wheighs_by_distance_and_alphabet()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util", "::"));
|
||||
index.addNode(utility::splitToVector("math", "::"));
|
||||
index.addNode(utility::splitToVector("string", "::"));
|
||||
index.addNode(createNameHierarchy("util"));
|
||||
index.addNode(createNameHierarchy("math"));
|
||||
index.addNode(createNameHierarchy("string"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("t");
|
||||
|
||||
@@ -211,8 +211,8 @@ public:
|
||||
void test_fuzzy_matching_wheighs_higher_by_uppercase()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("uTil", "::"));
|
||||
index.addNode(utility::splitToVector("string", "::"));
|
||||
index.addNode(createNameHierarchy("uTil"));
|
||||
index.addNode(createNameHierarchy("string"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("t");
|
||||
|
||||
@@ -224,8 +224,8 @@ public:
|
||||
void test_fuzzy_matching_wheighs_higher_on_consecutive_letters()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("oaabbcc", "::"));
|
||||
index.addNode(utility::splitToVector("ocbcabc", "::"));
|
||||
index.addNode(createNameHierarchy("oaabbcc"));
|
||||
index.addNode(createNameHierarchy("ocbcabc"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("abc");
|
||||
|
||||
@@ -237,9 +237,9 @@ public:
|
||||
void test_fuzzy_matching_in_hierarchy()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util::math::ceil", "::"));
|
||||
index.addNode(utility::splitToVector("util::math::floor", "::"));
|
||||
index.addNode(utility::splitToVector("util::string::concat", "::"));
|
||||
index.addNode(createNameHierarchy("util::math::ceil"));
|
||||
index.addNode(createNameHierarchy("util::math::floor"));
|
||||
index.addNode(createNameHierarchy("util::string::concat"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("t");
|
||||
|
||||
@@ -261,9 +261,9 @@ public:
|
||||
void test_fuzzy_matching_in_hierarchy_respects_collin()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("util::math::ceil", "::"));
|
||||
index.addNode(utility::splitToVector("util::math::floor", "::"));
|
||||
index.addNode(utility::splitToVector("util::string::concat", "::"));
|
||||
index.addNode(createNameHierarchy("util::math::ceil"));
|
||||
index.addNode(createNameHierarchy("util::math::floor"));
|
||||
index.addNode(createNameHierarchy("util::string::concat"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("u:i");
|
||||
|
||||
@@ -281,8 +281,8 @@ public:
|
||||
void test_fuzzy_matching_in_hierarchy_weighs_front_letters_higher()
|
||||
{
|
||||
SearchIndex index;
|
||||
index.addNode(utility::splitToVector("abc::dfe::ghi", "::"));
|
||||
index.addNode(utility::splitToVector("abc::hgi", "::"));
|
||||
index.addNode(createNameHierarchy("abc::dfe::ghi"));
|
||||
index.addNode(createNameHierarchy("abc::hgi"));
|
||||
|
||||
std::vector<SearchMatch> matches = index.runFuzzySearchAndGetMatches("g");
|
||||
|
||||
@@ -290,4 +290,15 @@ public:
|
||||
TS_ASSERT_EQUALS("abc::dfe::ghi", matches[0].fullName);
|
||||
TS_ASSERT_EQUALS("abc::hgi", matches[1].fullName);
|
||||
}
|
||||
|
||||
private:
|
||||
NameHierarchy createNameHierarchy(std::string s) const
|
||||
{
|
||||
NameHierarchy nameHierarchy;
|
||||
for (std::string element: utility::splitToVector(s, "::"))
|
||||
{
|
||||
nameHierarchy.push(std::make_shared<NameElement>(element));
|
||||
}
|
||||
return nameHierarchy;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -324,14 +324,25 @@ private:
|
||||
public:
|
||||
Node* createNodeHierarchy(Node::NodeType type, const std::string& name)
|
||||
{
|
||||
SearchNode* searchNode = m_index.addNode(utility::splitToVector(name, "::"));
|
||||
NameHierarchy nameHierarchy;
|
||||
for (std::string element: utility::splitToVector(name, "::"))
|
||||
{
|
||||
nameHierarchy.push(std::make_shared<NameElement>(element));
|
||||
}
|
||||
SearchNode* searchNode = m_index.addNode(nameHierarchy);
|
||||
return StorageGraph::createNodeHierarchy(type, searchNode);
|
||||
}
|
||||
|
||||
Node* createNodeHierarchyWithDistinctSignature(
|
||||
Node::NodeType type, const std::string& name, Id signatureId
|
||||
){
|
||||
SearchNode* searchNode = m_index.addNode(utility::splitToVector(name, "::"));
|
||||
)
|
||||
{
|
||||
NameHierarchy nameHierarchy;
|
||||
for (std::string element: utility::splitToVector(name, "::"))
|
||||
{
|
||||
nameHierarchy.push(std::make_shared<NameElement>(element));
|
||||
}
|
||||
SearchNode* searchNode = m_index.addNode(nameHierarchy);
|
||||
std::shared_ptr<TokenComponentSignature> signature = std::make_shared<TokenComponentSignature>(signatureId);
|
||||
return StorageGraph::createNodeHierarchyWithDistinctSignature(type, searchNode, signature);
|
||||
}
|
||||
|
||||
+62
-52
@@ -25,7 +25,7 @@ public:
|
||||
void test_storage_saves_typedef()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onTypedefParsed(validLocation(1), utility::splitToVector("type", "::"), typeUsage("int"), ParserClient::ACCESS_NONE);
|
||||
Id id = storage.onTypedefParsed(validLocation(1), createNameHierarchy("type"), typeUsage("int"), ParserClient::ACCESS_NONE);
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
void test_storage_saves_class()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onClassParsed(validLocation(1), utility::splitToVector("Class", "::"), ParserClient::ACCESS_NONE, validLocation(2));
|
||||
Id id = storage.onClassParsed(validLocation(1), createNameHierarchy("Class"), ParserClient::ACCESS_NONE, validLocation(2));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
void test_storage_saves_struct()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onStructParsed(validLocation(1), utility::splitToVector("Struct", "::"), ParserClient::ACCESS_NONE, validLocation(2));
|
||||
Id id = storage.onStructParsed(validLocation(1), createNameHierarchy("Struct"), ParserClient::ACCESS_NONE, validLocation(2));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
void test_storage_saves_global_variable()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onGlobalVariableParsed(validLocation(42), ParseVariable(typeUsage("char"), utility::splitToVector("Global", "::"), false));
|
||||
Id id = storage.onGlobalVariableParsed(validLocation(42), ParseVariable(typeUsage("char"), createNameHierarchy("Global"), false));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -98,7 +98,7 @@ public:
|
||||
void test_storage_saves_global_variable_static()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onGlobalVariableParsed(validLocation(7), ParseVariable(typeUsage("char"), utility::splitToVector("Global", "::"), true));
|
||||
Id id = storage.onGlobalVariableParsed(validLocation(7), ParseVariable(typeUsage("char"), createNameHierarchy("Global"), true));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onFieldParsed(
|
||||
validLocation(3), ParseVariable(typeUsage("bool"), utility::splitToVector("m_field", "::"), false), ParserClient::ACCESS_NONE
|
||||
validLocation(3), ParseVariable(typeUsage("bool"), createNameHierarchy("m_field"), false), ParserClient::ACCESS_NONE
|
||||
);
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
@@ -136,7 +136,7 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onFieldParsed(
|
||||
validLocation(11), ParseVariable(typeUsage("bool"), utility::splitToVector("Struct::m_field", "::"), false), ParserClient::ACCESS_PUBLIC
|
||||
validLocation(11), ParseVariable(typeUsage("bool"), createNameHierarchy("Struct::m_field"), false), ParserClient::ACCESS_PUBLIC
|
||||
);
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
@@ -170,7 +170,7 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onFunctionParsed(
|
||||
validLocation(14), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")), validLocation(41)
|
||||
validLocation(14), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")), validLocation(41)
|
||||
);
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
@@ -201,7 +201,7 @@ public:
|
||||
TestStorage storage;
|
||||
Id id = storage.onMethodParsed(
|
||||
validLocation(9),
|
||||
ParseFunction(typeUsage("void"), utility::splitToVector("isMethod", "::"), parameters("bool")),
|
||||
ParseFunction(typeUsage("void"), createNameHierarchy("isMethod"), parameters("bool")),
|
||||
ParserClient::ACCESS_NONE,
|
||||
ParserClient::ABSTRACTION_NONE,
|
||||
validLocation(4)
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
TestStorage storage;
|
||||
Id id = storage.onMethodParsed(
|
||||
validLocation(1),
|
||||
ParseFunction(typeUsage("void"), utility::splitToVector("isMethod", "::"), parameters("bool"), true),
|
||||
ParseFunction(typeUsage("void"), createNameHierarchy("isMethod"), parameters("bool"), true),
|
||||
ParserClient::ACCESS_NONE,
|
||||
ParserClient::ABSTRACTION_NONE,
|
||||
validLocation(4)
|
||||
@@ -253,7 +253,7 @@ public:
|
||||
TestStorage storage;
|
||||
Id id = storage.onMethodParsed(
|
||||
validLocation(1),
|
||||
ParseFunction(typeUsage("void"), utility::splitToVector("Class::isMethod", "::"), parameters("bool")),
|
||||
ParseFunction(typeUsage("void"), createNameHierarchy("Class::isMethod"), parameters("bool")),
|
||||
ParserClient::ACCESS_PROTECTED,
|
||||
ParserClient::ABSTRACTION_VIRTUAL,
|
||||
validLocation(4)
|
||||
@@ -287,7 +287,7 @@ public:
|
||||
void test_storage_saves_namespace()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onNamespaceParsed(validLocation(1), utility::splitToVector("utility", "::"), validLocation(2));
|
||||
Id id = storage.onNamespaceParsed(validLocation(1), createNameHierarchy("utility"), validLocation(2));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -304,7 +304,7 @@ public:
|
||||
void test_storage_saves_enum()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onEnumParsed(validLocation(17), utility::splitToVector("Category", "::"), ParserClient::ACCESS_NONE, validLocation(23));
|
||||
Id id = storage.onEnumParsed(validLocation(17), createNameHierarchy("Category"), ParserClient::ACCESS_NONE, validLocation(23));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -322,7 +322,7 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id =
|
||||
storage.onEnumParsed(validLocation(1), utility::splitToVector("Class::Category", "::"),
|
||||
storage.onEnumParsed(validLocation(1), createNameHierarchy("Class::Category"),
|
||||
ParserClient::ACCESS_PRIVATE, validLocation(2)
|
||||
);
|
||||
|
||||
@@ -347,7 +347,7 @@ public:
|
||||
void test_storage_saves_enum_constant()
|
||||
{
|
||||
TestStorage storage;
|
||||
Id id = storage.onEnumConstantParsed(validLocation(1), utility::splitToVector("VALUE", "::"));
|
||||
Id id = storage.onEnumConstantParsed(validLocation(1), createNameHierarchy("VALUE"));
|
||||
|
||||
Node* node = storage.getNodeWithId(id);
|
||||
TS_ASSERT(node);
|
||||
@@ -362,11 +362,11 @@ public:
|
||||
void test_storage_saves_class_inheritance()
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onClassParsed(validLocation(), utility::splitToVector("ClassA", "::"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onClassParsed(validLocation(), utility::splitToVector("ClassB", "::"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onClassParsed(validLocation(), createNameHierarchy("ClassA"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onClassParsed(validLocation(), createNameHierarchy("ClassB"), ParserClient::ACCESS_NONE, validLocation());
|
||||
Id id =
|
||||
storage.onInheritanceParsed(validLocation(5), utility::splitToVector("ClassB", "::"),
|
||||
utility::splitToVector("ClassA", "::"), ParserClient::ACCESS_PUBLIC
|
||||
storage.onInheritanceParsed(validLocation(5), createNameHierarchy("ClassB"),
|
||||
createNameHierarchy("ClassA"), ParserClient::ACCESS_PUBLIC
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -387,11 +387,11 @@ public:
|
||||
void test_storage_saves_struct_inheritance()
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onStructParsed(validLocation(), utility::splitToVector("StructA", "::"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onStructParsed(validLocation(), utility::splitToVector("StructB", "::"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onStructParsed(validLocation(), createNameHierarchy("StructA"), ParserClient::ACCESS_NONE, validLocation());
|
||||
storage.onStructParsed(validLocation(), createNameHierarchy("StructB"), ParserClient::ACCESS_NONE, validLocation());
|
||||
Id id =
|
||||
storage.onInheritanceParsed(validLocation(5), utility::splitToVector("StructB", "::"),
|
||||
utility::splitToVector("StructA", "::"), ParserClient::ACCESS_PUBLIC
|
||||
storage.onInheritanceParsed(validLocation(5), createNameHierarchy("StructB"),
|
||||
createNameHierarchy("StructA"), ParserClient::ACCESS_PUBLIC
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -413,8 +413,8 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
|
||||
ParseFunction a(typeUsage("void"), utility::splitToVector("A::isMethod", "::"), parameters("bool"));
|
||||
ParseFunction b(typeUsage("void"), utility::splitToVector("B::isMethod", "::"), parameters("bool"));
|
||||
ParseFunction a(typeUsage("void"), createNameHierarchy("A::isMethod"), parameters("bool"));
|
||||
ParseFunction b(typeUsage("void"), createNameHierarchy("B::isMethod"), parameters("bool"));
|
||||
|
||||
storage.onMethodParsed(validLocation(9), a, ParserClient::ACCESS_PRIVATE, ParserClient::ABSTRACTION_VIRTUAL, validLocation(4));
|
||||
storage.onMethodParsed(validLocation(7), b, ParserClient::ACCESS_PRIVATE, ParserClient::ABSTRACTION_NONE, validLocation(3));
|
||||
@@ -432,15 +432,15 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")), validLocation()
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")), validLocation()
|
||||
);
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("void"), utility::splitToVector("func", "::"), parameters("bool")), validLocation()
|
||||
validLocation(), ParseFunction(typeUsage("void"), createNameHierarchy("func"), parameters("bool")), validLocation()
|
||||
);
|
||||
Id id = storage.onCallParsed(
|
||||
validLocation(9),
|
||||
ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")),
|
||||
ParseFunction(typeUsage("void"), utility::splitToVector("func", "::"), parameters("bool"))
|
||||
ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")),
|
||||
ParseFunction(typeUsage("void"), createNameHierarchy("func"), parameters("bool"))
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -458,15 +458,15 @@ public:
|
||||
void test_storage_saves_call_in_global_variable_declaration()
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onGlobalVariableParsed(validLocation(), ParseVariable(typeUsage("bool"), utility::splitToVector("global", "::"), false));
|
||||
storage.onGlobalVariableParsed(validLocation(), ParseVariable(typeUsage("bool"), createNameHierarchy("global"), false));
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")), validLocation()
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")), validLocation()
|
||||
);
|
||||
|
||||
Id id = storage.onCallParsed(
|
||||
validLocation(7),
|
||||
ParseVariable(typeUsage("bool"), utility::splitToVector("global", "::"), false),
|
||||
ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char"))
|
||||
ParseVariable(typeUsage("bool"), createNameHierarchy("global"), false),
|
||||
ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char"))
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -485,16 +485,16 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")), validLocation()
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")), validLocation()
|
||||
);
|
||||
storage.onFieldParsed(
|
||||
validLocation(), ParseVariable(typeUsage("bool"), utility::splitToVector("Foo::m_field", "::"), false), ParserClient::ACCESS_PRIVATE
|
||||
validLocation(), ParseVariable(typeUsage("bool"), createNameHierarchy("Foo::m_field"), false), ParserClient::ACCESS_PRIVATE
|
||||
);
|
||||
|
||||
Id id = storage.onFieldUsageParsed(
|
||||
validLocation(7),
|
||||
ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")),
|
||||
utility::splitToVector("Foo::m_field", "::")
|
||||
ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")),
|
||||
createNameHierarchy("Foo::m_field")
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -513,14 +513,14 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")), validLocation()
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")), validLocation()
|
||||
);
|
||||
storage.onGlobalVariableParsed(validLocation(), ParseVariable(typeUsage("bool"), utility::splitToVector("global", "::"), false));
|
||||
storage.onGlobalVariableParsed(validLocation(), ParseVariable(typeUsage("bool"), createNameHierarchy("global"), false));
|
||||
|
||||
Id id = storage.onGlobalVariableUsageParsed(
|
||||
validLocation(7),
|
||||
ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char")),
|
||||
utility::splitToVector("global", "::")
|
||||
ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char")),
|
||||
createNameHierarchy("global")
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -539,15 +539,15 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"),
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"),
|
||||
parameters("char")), validLocation()
|
||||
);
|
||||
storage.onStructParsed(
|
||||
validLocation(), utility::splitToVector("Struct", "::"), ParserClient::ACCESS_NONE, validLocation());
|
||||
validLocation(), createNameHierarchy("Struct"), ParserClient::ACCESS_NONE, validLocation());
|
||||
|
||||
Id id = storage.onTypeUsageParsed(
|
||||
typeUsage("Struct"),
|
||||
ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char"))
|
||||
ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char"))
|
||||
);
|
||||
|
||||
Edge* edge = storage.getEdgeWithId(id);
|
||||
@@ -566,7 +566,7 @@ public:
|
||||
{
|
||||
TestStorage storage;
|
||||
storage.onFunctionParsed(
|
||||
validLocation(), ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"),
|
||||
validLocation(), ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"),
|
||||
parameters("char")), validLocation()
|
||||
);
|
||||
|
||||
@@ -591,12 +591,12 @@ public:
|
||||
|
||||
TestStorage storage;
|
||||
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("char"));
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("char"));
|
||||
storage.onFunctionParsed(validLocation(), isTrue, validLocation());
|
||||
|
||||
m_filePath = "file.cpp";
|
||||
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), utility::splitToVector("main", "::"), parameters("void"));
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), createNameHierarchy("main"), parameters("void"));
|
||||
storage.onFunctionParsed(validLocation(), main, validLocation());
|
||||
|
||||
storage.onCallParsed(validLocation(), main, isTrue);
|
||||
@@ -622,12 +622,12 @@ public:
|
||||
|
||||
TestStorage storage;
|
||||
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("void"));
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("void"));
|
||||
storage.onFunctionParsed(validLocation(), isTrue, validLocation());
|
||||
|
||||
m_filePath = "file.cpp";
|
||||
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), utility::splitToVector("main", "::"), parameters("void"));
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), createNameHierarchy("main"), parameters("void"));
|
||||
storage.onFunctionParsed(validLocation(), main, validLocation());
|
||||
|
||||
storage.onCallParsed(validLocation(), main, isTrue);
|
||||
@@ -653,12 +653,12 @@ public:
|
||||
|
||||
TestStorage storage;
|
||||
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), utility::splitToVector("isTrue", "::"), parameters("void"));
|
||||
ParseFunction isTrue = ParseFunction(typeUsage("bool"), createNameHierarchy("isTrue"), parameters("void"));
|
||||
storage.onFunctionParsed(validLocation(), isTrue, validLocation());
|
||||
|
||||
m_filePath = "file.cpp";
|
||||
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), utility::splitToVector("main", "::"), parameters("void"));
|
||||
ParseFunction main = ParseFunction(typeUsage("int"), createNameHierarchy("main"), parameters("void"));
|
||||
storage.onFunctionParsed(validLocation(), main, validLocation());
|
||||
|
||||
storage.onCallParsed(validLocation(), main, isTrue);
|
||||
@@ -800,9 +800,19 @@ private:
|
||||
location->getColumnNumber() == locationId;
|
||||
}
|
||||
|
||||
NameHierarchy createNameHierarchy(std::string s) const
|
||||
{
|
||||
NameHierarchy nameHierarchy;
|
||||
for (std::string element: utility::splitToVector(s, "::"))
|
||||
{
|
||||
nameHierarchy.push(std::make_shared<NameElement>(element));
|
||||
}
|
||||
return nameHierarchy;
|
||||
}
|
||||
|
||||
ParseTypeUsage typeUsage(const std::string& typeName) const
|
||||
{
|
||||
return ParseTypeUsage(validLocation(), std::make_shared<NamedDataType>(utility::splitToVector(typeName, "::")));
|
||||
return ParseTypeUsage(validLocation(), std::make_shared<NamedDataType>(createNameHierarchy(typeName)));
|
||||
}
|
||||
|
||||
std::vector<ParseTypeUsage> parameters(const std::string& param) const
|
||||
|
||||
Reference in New Issue
Block a user