From 3fedd1b299e09f9146adf4ac5fcf75f8da0a9cdb Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Tue, 26 Apr 2005 22:07:58 +0000 Subject: [PATCH] fix bug 92773, ClassCastException --- .../core/dom/parser/cpp/CPPClassType.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java index 9615798cbf8..79ea957844e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPClassType.java @@ -247,13 +247,22 @@ public class CPPClassType implements ICPPClassType, ICPPInternalClassType { private ICPPASTCompositeTypeSpecifier getCompositeTypeSpecifier(){ if( definition != null ){ - return (ICPPASTCompositeTypeSpecifier) definition.getParent(); + IASTNode node = definition; + while( node instanceof IASTName ) + node = node.getParent(); + if( node instanceof ICPPASTCompositeTypeSpecifier ) + return (ICPPASTCompositeTypeSpecifier)node; } return null; } private ICPPASTElaboratedTypeSpecifier getElaboratedTypeSpecifier() { - if( declarations != null ) - return (ICPPASTElaboratedTypeSpecifier) declarations[0].getParent(); + if( declarations != null ){ + IASTNode node = declarations[0]; + while( node instanceof IASTName ) + node = node.getParent(); + if( node instanceof ICPPASTElaboratedTypeSpecifier ) + return (ICPPASTElaboratedTypeSpecifier)node; + } return null; } /* (non-Javadoc)