CppEditor: Fix crash in CompleteSwitchCaseStatement

Task-number: QTCREATORBUG-10366

Change-Id: I6d5af5e7a59f3867141c8d7f098128d3db532ee5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-10-14 15:47:07 +02:00
parent c79a605b8f
commit d808ebed88
4 changed files with 84 additions and 3 deletions

View File

@@ -2295,9 +2295,16 @@ Enum *findEnum(const QList<LookupItem> &results, const LookupContext &ctxt)
if (Enum *e = type->asEnumType())
return e;
if (const NamedType *namedType = type->asNamedType()) {
const QList<LookupItem> candidates =
ctxt.lookup(namedType->name(), result.scope());
return findEnum(candidates, ctxt);
if (ClassOrNamespace *con = ctxt.lookupType(namedType->name(), result.scope())) {
const QList<Enum *> enums = con->unscopedEnums();
const Name *referenceName = namedType->name();
foreach (Enum *e, enums) {
if (const Name *candidateName = e->name()) {
if (candidateName->isEqualTo(referenceName))
return e;
}
}
}
}
}