From 8a6680ea21ea880f6f1c29ae8ecef59c1a3a5d44 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Mon, 5 Apr 2004 04:25:33 +0000 Subject: [PATCH] org.eclipse.cdt.core Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=54029 org.eclipse.cdt.core.tests Added CompleteParseASTTest::testBug54029(). --- .../core/parser/tests/CompleteParseASTTest.java | 16 ++++++++++++++++ .../org.eclipse.cdt.core/parser/ChangeLog-parser | 3 +++ .../core/parser/ast/IASTTypedefDeclaration.java | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java index cf19ccdc259..3c8ef49f1f8 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java @@ -1374,4 +1374,20 @@ public class CompleteParseASTTest extends CompleteParseBaseTest assertFalse( j.hasNext() ); assertEquals( data.getName(), "data" ); } + + public void testBug54029() throws Exception + { + Iterator i = parse( "typedef int T; T i;" ).getDeclarations(); + IASTTypedefDeclaration typedef = (IASTTypedefDeclaration) i.next(); + assertEquals( typedef.getName(), "T"); + assertTrue( typedef.getAbstractDeclarator().getTypeSpecifier() instanceof IASTSimpleTypeSpecifier ); + assertEquals( ((IASTSimpleTypeSpecifier)typedef.getAbstractDeclarator().getTypeSpecifier()).getType(), IASTSimpleTypeSpecifier.Type.INT ); + IASTVariable variable = (IASTVariable) i.next(); + assertFalse( i.hasNext() ); + assertEquals( variable.getName(), "i"); + assertEquals( ((IASTSimpleTypeSpecifier)variable.getAbstractDeclaration().getTypeSpecifier()).getTypename(), "T" ); + assertNotNull( ((IASTSimpleTypeSpecifier)variable.getAbstractDeclaration().getTypeSpecifier()).getTypeSpecifier() ); + assertEquals( ((IASTSimpleTypeSpecifier)variable.getAbstractDeclaration().getTypeSpecifier()).getTypeSpecifier(), typedef ); + } + } diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog-parser b/core/org.eclipse.cdt.core/parser/ChangeLog-parser index 0ae5e0b1cd7..8304cff559b 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog-parser +++ b/core/org.eclipse.cdt.core/parser/ChangeLog-parser @@ -1,3 +1,6 @@ +2004-04-05 John Camelon + Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=54029 + 2004-04-04 John Camelon Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=56516 Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=53786 diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypedefDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypedefDeclaration.java index 68d2e3582b1..bc56869eb1c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypedefDeclaration.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTTypedefDeclaration.java @@ -15,7 +15,7 @@ package org.eclipse.cdt.core.parser.ast; * @author jcamelon * */ -public interface IASTTypedefDeclaration extends IASTDeclaration, IASTOffsetableNamedElement, IASTQualifiedNameElement { +public interface IASTTypedefDeclaration extends IASTDeclaration, IASTOffsetableNamedElement, IASTQualifiedNameElement, IASTTypeSpecifier { public String getName(); public IASTAbstractDeclaration getAbstractDeclarator();