diff options
author | Michael Woski | 2017-08-10 15:11:42 +0000 |
---|---|---|
committer | Nathan Ridge | 2017-08-12 03:10:39 +0000 |
commit | e8bfecea0bd1de460f3e855c210ecc446e8bb7c9 (patch) | |
tree | f60af4e025a585f133925b59c06064864b26ff1f | |
parent | c7b6aa3bd58ebb3e6ffaebd0cb1e3222ceb677d4 (diff) | |
download | org.eclipse.cdt-e8bfecea0bd1de460f3e855c210ecc446e8bb7c9.tar.gz org.eclipse.cdt-e8bfecea0bd1de460f3e855c210ecc446e8bb7c9.tar.xz org.eclipse.cdt-e8bfecea0bd1de460f3e855c210ecc446e8bb7c9.zip |
Bug 456579 - Improve CSourceHover and OpenDeclaration for TemplateIds
CSourceHover did not know how to handle UnknowMemberClasses
Change-Id: I4ef6a4ad794e670c4d5e9ccc9cea204f8d273f2a
Signed-off-by: Michael Woski <woskimi@yahoo.de>
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java index 1c9e249b1ca..53d78cfa6f5 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java @@ -102,7 +102,9 @@ import org.eclipse.cdt.ui.IWorkingCopyManager; import org.eclipse.cdt.ui.text.ICPartitions; import org.eclipse.cdt.internal.core.dom.parser.ASTQueries; +import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPUnknownBinding; import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor; +import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.HeuristicResolver; import org.eclipse.cdt.internal.core.model.ASTCache.ASTRunnable; import org.eclipse.cdt.internal.corext.util.Strings; @@ -206,7 +208,13 @@ public class CSourceHover extends AbstractCEditorTextHover { } } } - + if (binding instanceof ICPPUnknownBinding) { + IBinding[] resolved = HeuristicResolver + .resolveUnknownBinding((ICPPUnknownBinding) binding, name); + if (resolved.length == 1) { + binding = resolved[0]; + } + } if (binding instanceof IProblemBinding) { // Report problem as source comment. if (DEBUG) { |