CppEditor: Make "Complete Switch" quickfix work with enum classes

Fixes: QTCREATORBUG-20475
Change-Id: Id21a007ab4b652dcfe49d97bfa4c9fa77bacf8c4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2020-10-27 11:07:50 +01:00
parent eef708192e
commit 0ebb004d85
2 changed files with 255 additions and 1 deletions

View File

@@ -2740,7 +2740,12 @@ static Enum *findEnum(const QList<LookupItem> &results, const LookupContext &ctx
return e;
if (const NamedType *namedType = type->asNamedType()) {
if (ClassOrNamespace *con = ctxt.lookupType(namedType->name(), result.scope())) {
const QList<Enum *> enums = con->unscopedEnums();
QList<Enum *> enums = con->unscopedEnums();
const QList<Symbol *> symbols = con->symbols();
for (Symbol * const s : symbols) {
if (const auto e = s->asEnum())
enums << e;
}
const Name *referenceName = namedType->name();
if (const QualifiedNameId *qualifiedName = referenceName->asQualifiedNameId())
referenceName = qualifiedName->name();