cppparser: fix finding types in explicitly specialized template class

This commit is contained in:
rdb 2019-08-23 13:15:10 +02:00
parent 8c40ff39d7
commit 0e4597fb2e

View File

@ -254,7 +254,10 @@ get_scope(CPPScope *current_scope, CPPScope *global_scope,
}
while (i + 1 < (int)_names.size() && scope != nullptr) {
CPPScope *next_scope = scope->find_scope(_names[i].get_name(), global_scope);
// Check for an explicitly specialized scope first.
CPPScope *next_scope = scope->find_scope(_names[i].get_name_with_templ(), global_scope);
if (next_scope == nullptr) {
next_scope = scope->find_scope(_names[i].get_name(), global_scope);
if (next_scope == nullptr) {
if (error_sink != nullptr) {
error_sink->error("Symbol " + _names[i].get_name() +
@ -268,6 +271,7 @@ get_scope(CPPScope *current_scope, CPPScope *global_scope,
next_scope = next_scope->instantiate(_names[i].get_templ(),
current_scope, global_scope);
}
}
scope = next_scope;
i++;
}