diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java index f2efd9e5db5..ca6375ee3ef 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IScope.java @@ -18,6 +18,13 @@ package org.eclipse.cdt.core.dom.ast; public interface IScope { /** + * Get the IASTName for this scope, may be null + * @return + * @throws DOMException + */ + public IASTName getScopeName() throws DOMException; + + /** * Scopes are arranged hierarchically. Lookups will generally * flow upward to find resolution. * diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPScope.java index c275fa9ce6d..d37a9cd9222 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPScope.java @@ -27,13 +27,6 @@ import org.eclipse.cdt.core.dom.ast.IScope; public interface ICPPScope extends IScope { /** - * Get the name for this scope, may be null - * @return - * @throws DOMException - */ - public IASTName getScopeName() throws DOMException; - - /** * Add an IASTName to be cached in this scope * * @param name diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java index 809b8e099a6..32ac5cfd58d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ProblemBinding.java @@ -17,6 +17,7 @@ package org.eclipse.cdt.internal.core.dom.parser; import java.text.MessageFormat; import org.eclipse.cdt.core.dom.ast.DOMException; +import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IProblemBinding; @@ -129,4 +130,11 @@ public class ProblemBinding implements IProblemBinding, IType, IScope { public IBinding[] find( String name ) throws DOMException { throw new DOMException( this ); } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IScope#getScopeName() + */ + public IASTName getScopeName() throws DOMException { + return null; + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java index 8688f38e3fd..6c49090e350 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CScope.java @@ -207,4 +207,14 @@ public class CScope implements ICScope { public boolean isFullyCached(){ return isFullyCached; } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.dom.ast.IScope#getScopeName() + */ + public IASTName getScopeName() throws DOMException { + if( physicalNode instanceof IASTCompositeTypeSpecifier ){ + return ((IASTCompositeTypeSpecifier) physicalNode).getName(); + } + return null; + } }