From 0d99c950b0b0c18e910a482d12d816e71c1a63fe Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Mon, 13 Dec 2004 18:54:02 +0000 Subject: [PATCH] fix CQualifierType#getType(), from Devin Steffler --- .../internal/core/dom/parser/c/CQualifierType.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CQualifierType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CQualifierType.java index 98e7a21a4b9..66af81b2140 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CQualifierType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CQualifierType.java @@ -10,9 +10,12 @@ **********************************************************************/ package org.eclipse.cdt.internal.core.dom.parser.c; +import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier; +import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier; import org.eclipse.cdt.core.dom.ast.c.ICASTSimpleDeclSpecifier; +import org.eclipse.cdt.core.dom.ast.c.ICASTTypedefNameSpecifier; import org.eclipse.cdt.core.dom.ast.c.ICQualifierType; /** @@ -60,6 +63,17 @@ public class CQualifierType implements ICQualifierType { * @see org.eclipse.cdt.core.dom.ast.IQualifierType#getType() */ public IType getType() { + if( declSpec instanceof ICASTTypedefNameSpecifier ){ + ICASTTypedefNameSpecifier nameSpec = (ICASTTypedefNameSpecifier) declSpec; + return (IType) nameSpec.getName().resolveBinding(); + } else if( declSpec instanceof IASTElaboratedTypeSpecifier ){ + IASTElaboratedTypeSpecifier elabTypeSpec = (IASTElaboratedTypeSpecifier) declSpec; + return (IType) elabTypeSpec.getName().resolveBinding(); + } else if( declSpec instanceof IASTCompositeTypeSpecifier ){ + IASTCompositeTypeSpecifier compTypeSpec = (IASTCompositeTypeSpecifier) declSpec; + return (IType) compTypeSpec.getName().resolveBinding(); + } + return new CBasicType((ICASTSimpleDeclSpecifier)declSpec); } }