From e4fc78c9e5cf55a10d376f866c95c797b51d6928 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Thu, 12 Feb 2009 08:37:45 +0000 Subject: [PATCH] Allow friend declarations to resolve to templates. --- .../core/dom/parser/cpp/semantics/CPPSemantics.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java index 54b2e119688..0c80c898896 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java @@ -296,6 +296,17 @@ public class CPPSemantics { node instanceof ICPPASTTemplatedTypeTemplateParameter) { ok= true; // can be argument or default-value for template template parameter break; + } else if (node instanceof IASTElaboratedTypeSpecifier) { + IASTNode parent= node.getParent(); + if (parent instanceof IASTSimpleDeclaration) { + IASTDeclSpecifier declspec = ((IASTSimpleDeclaration) parent).getDeclSpecifier(); + if (declspec instanceof ICPPASTDeclSpecifier) { + if (((ICPPASTDeclSpecifier) declspec).isFriend()) { + ok= true; // a friend class template declarations uses resolution. + break; + } + } + } } node= node.getParent(); }