Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Woski2017-08-10 15:11:42 +0000
committerNathan Ridge2017-08-12 03:10:39 +0000
commite8bfecea0bd1de460f3e855c210ecc446e8bb7c9 (patch)
treef60af4e025a585f133925b59c06064864b26ff1f
parentc7b6aa3bd58ebb3e6ffaebd0cb1e3222ceb677d4 (diff)
downloadorg.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.java10
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) {

Back to the top