1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

fix ClassCastException

This commit is contained in:
Andrew Niefer 2005-03-28 19:46:26 +00:00
parent 55b8cf6afa
commit 746bb4fda5

View file

@ -15,6 +15,8 @@
package org.eclipse.cdt.internal.core.dom.parser.cpp; package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.DOMException; import org.eclipse.cdt.core.dom.ast.DOMException;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.dom.ast.IProblemBinding;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
@ -50,7 +52,14 @@ public class CPPBaseClause implements ICPPBase {
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBase#getBaseClass() * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBase#getBaseClass()
*/ */
public ICPPClassType getBaseClass() { public ICPPClassType getBaseClass() {
return (ICPPClassType) base.getName().resolveBinding(); IBinding baseClass = base.getName().resolveBinding();
if( baseClass instanceof ICPPClassType )
return (ICPPClassType) baseClass;
else if( baseClass instanceof IProblemBinding ){
return new CPPClassType.CPPClassTypeProblem( ((IProblemBinding)baseClass).getID(), base.getName().toCharArray() );
}
return new CPPClassType.CPPClassTypeProblem( IProblemBinding.SEMANTIC_NAME_NOT_FOUND, base.getName().toCharArray() );
} }
/* (non-Javadoc) /* (non-Javadoc)