logic: indexer and name resolving fixes

* made header and excluded filepaths of filemanager canonical
* implemented solving Attributed- and InjectedClassNameType
* handled clang returning null objects in NameResolvers
This commit is contained in:
malte_langkabel
2016-11-29 17:26:57 +01:00
parent b2358f581c
commit 328cf7e8cc
13 changed files with 542 additions and 472 deletions
+18 -5
View File
@@ -1296,11 +1296,6 @@ public:
));
}
void test_cxx_parser_finds_type_usage_of_global_variable()
{
std::shared_ptr<TestParserClient> client = parseCode(
@@ -2030,6 +2025,24 @@ public:
));
}
void test_cxx_parser_usage_of_injected_type_in_method_declaration()
{
std::shared_ptr<TestParserClient> client = parseCode(
"template <typename T>\n"
"class Foo\n"
"{\n"
" Foo& operator=(const Foo&) = delete;\n"
"};\n"
);
TS_ASSERT(utility::containsElement<std::string>(
client->typeUses, "Foo<Foo<typename T>::T> & Foo<typename T>::operator=(const Foo<Foo<typename T>::T> &) -> Foo<Foo<typename T>::T> <4:2 4:4>"
));
TS_ASSERT(utility::containsElement<std::string>(
client->typeUses, "Foo<Foo<typename T>::T> & Foo<typename T>::operator=(const Foo<Foo<typename T>::T> &) -> Foo<Foo<typename T>::T> <4:23 4:25>"
));
}
void test_cxx_parser_finds_use_of_qualified_type_in_function()
{
std::shared_ptr<TestParserClient> client = parseCode(