diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp index 66dc226e4d7efd0bc33982a8c49f77f1a98db62d..f32e6002ddefdef1598fd11fd440c8f3ca884fd6 100644 --- a/src/plugins/cppeditor/cpphoverhandler.cpp +++ b/src/plugins/cppeditor/cpphoverhandler.cpp @@ -222,6 +222,9 @@ static FullySpecifiedType resolve(const FullySpecifiedType &ty, if (resolvedName) *resolvedName = nsTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast<Namespace *>(nsTy); + } else if (const Class *classTy = ty->asClassType()) { if (resolvedName) *resolvedName = classTy->name(); @@ -233,14 +236,23 @@ static FullySpecifiedType resolve(const FullySpecifiedType &ty, if (resolvedName) *resolvedName = fwdClassTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast<ForwardClassDeclaration *>(fwdClassTy); + } else if (const Enum *enumTy = ty->asEnumType()) { if (resolvedName) *resolvedName = enumTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast<Enum *>(enumTy); + } else if (const Function *funTy = ty->asFunctionType()) { if (resolvedName) *resolvedName = funTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast<Function *>(funTy); + } return ty;