From 63089ab4e027df03524de4df8f68c30192d28248 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Wed, 21 May 2008 21:22:16 +0000 Subject: [PATCH] Fix for ClassCastException (bug 233284). --- .../core/dom/parser/cpp/semantics/CPPVisitor.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java index c84e0c7a875..3857028542f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java @@ -1997,13 +1997,16 @@ public class CPPVisitor { ICPPFunctionType functionType = (ICPPFunctionType) type; IPointerType thisType = functionType.getThisType(); if (thisType != null) { - ICPPClassType classType; + IType nestedType; try { - classType = (ICPPClassType) thisType.getType(); + nestedType = thisType.getType(); + while (nestedType instanceof ITypeContainer) { + nestedType = ((ITypeContainer) nestedType).getType(); + } } catch (DOMException e) { return e.getProblem(); } - return new CPPPointerToMemberType(type, classType, + return new CPPPointerToMemberType(type, (ICPPClassType) nestedType, thisType.isConst(), thisType.isVolatile()); } }