diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp index 66dc226e4d7..f32e6002dde 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(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(fwdClassTy); + } else if (const Enum *enumTy = ty->asEnumType()) { if (resolvedName) *resolvedName = enumTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast(enumTy); + } else if (const Function *funTy = ty->asFunctionType()) { if (resolvedName) *resolvedName = funTy->name(); + if (resolvedSymbol) + *resolvedSymbol = const_cast(funTy); + } return ty;