From 1ac6f78fc30a911df26182609731ef0e6503fd2a Mon Sep 17 00:00:00 2001 From: John Camelon Date: Thu, 8 Apr 2004 14:38:14 +0000 Subject: [PATCH] org.eclipse.cdt.core
  Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=57800.

org.eclipse.cdt.core.tests
  Removed warnings from CompletionTests.
  Added CompleteParseASTTest::testBug57800().
--- core/org.eclipse.cdt.core.tests/ChangeLog | 4 ++++ .../core/parser/tests/CompleteParseASTTest.java | 17 +++++++++++++++++ .../core/parser/tests/CompletionParseTest.java | 7 +++---- .../parser/ChangeLog-parser | 3 +++ .../cdt/core/parser/ast/IASTBaseSpecifier.java | 2 +- .../parser/ast/complete/ASTBaseSpecifier.java | 6 +++--- .../core/parser/ast/quick/ASTBaseSpecifier.java | 4 ++-- 7 files changed, 33 insertions(+), 10 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index aac1ae7d1f2..a0cf77e0546 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,7 @@ +2004-04-08 John Camelon + Removed warnings from CompletionTests. + Added CompleteParseASTTest::testBug57800(). + 2004-04-07 Andrew Niefer added CompletionParseTest.testCompletionWithTemplateInstanceAsParent() 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 63b5c83d9b5..9c7067726b7 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 @@ -1411,4 +1411,21 @@ public class CompleteParseASTTest extends CompleteParseBaseTest assertAllReferences( 2, createTaskList( new Task( outerS ), new Task( innerS ) ) ); } + + public void testBug57800() throws Exception + { + Writer writer= new StringWriter(); + writer.write( "class G2 { int j; };"); + writer.write( "typedef G2 AltG2;"); + writer.write( "class AltG3 : AltG2 { int x;};"); + Iterator i = parse( writer.toString() ).getDeclarations(); + IASTClassSpecifier G2 = (IASTClassSpecifier) ((IASTAbstractTypeSpecifierDeclaration)i.next()).getTypeSpecifier(); + IASTTypedefDeclaration AltG2 = (IASTTypedefDeclaration) i.next(); + IASTClassSpecifier AltG3 = (IASTClassSpecifier) ((IASTAbstractTypeSpecifierDeclaration)i.next()).getTypeSpecifier(); + assertFalse( i.hasNext() ); + Iterator baseClauses = AltG3.getBaseClauses(); + IASTBaseSpecifier baseClause = (IASTBaseSpecifier) baseClauses.next(); + assertFalse( baseClauses.hasNext() ); + baseClause.getParentClassSpecifier(); + } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java index 71b386e5676..6104d9355d6 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java @@ -734,7 +734,6 @@ public class CompletionParseTest extends CompleteParseBaseTest { assertEquals( result.getResultsSize(), matches.size() ); Iterator iter = result.getNodes(); - int assertionCount = 0; while( iter.hasNext() ) { IASTOffsetableNamedElement element = (IASTOffsetableNamedElement) iter.next(); @@ -746,7 +745,6 @@ public class CompletionParseTest extends CompleteParseBaseTest { * @return */ protected IASTCompilationUnit getCompilationUnit() { - CompleteParseBaseTest.Scope s = (Scope) callback.getCompilationUnit(); IASTCompilationUnit compilationUnit = (IASTCompilationUnit) ((Scope) callback.getCompilationUnit()).getScope(); return compilationUnit; } @@ -826,8 +824,9 @@ public class CompletionParseTest extends CompleteParseBaseTest { Iterator i = result.getNodes(); - IASTField bmember = (IASTField) i.next(); - IASTField amember = (IASTField) i.next(); + assertTrue( i.next() instanceof IASTField ); + assertTrue( i.next() instanceof IASTField ); + assertFalse( i.hasNext() ); } } diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog-parser b/core/org.eclipse.cdt.core/parser/ChangeLog-parser index abc562260d1..c21e27ba98e 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-08 John Camelon + Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=57800. + 2004-04-07 John Camelon Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=50808. Provided partial fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=50807. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTBaseSpecifier.java index 1925f22e91e..51757acaf90 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTBaseSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/IASTBaseSpecifier.java @@ -22,7 +22,7 @@ public interface IASTBaseSpecifier extends ISourceElementCallbackDelegate { public ASTAccessVisibility getAccess(); public boolean isVirtual(); public String getParentClassName(); - public IASTClassSpecifier getParentClassSpecifier() throws ASTNotImplementedException; + public IASTTypeSpecifier getParentClassSpecifier() throws ASTNotImplementedException; public int getNameOffset(); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java index 654383d50e2..79f489d3efd 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/ASTBaseSpecifier.java @@ -15,7 +15,7 @@ import java.util.List; import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; +import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; import org.eclipse.cdt.internal.core.parser.pst.ISymbol; /** @@ -67,9 +67,9 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getParentClassSpecifier() */ - public IASTClassSpecifier getParentClassSpecifier() + public IASTTypeSpecifier getParentClassSpecifier() { - return (IASTClassSpecifier)symbol.getASTExtension().getPrimaryDeclaration(); + return (IASTTypeSpecifier)symbol.getASTExtension().getPrimaryDeclaration(); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java index ea16a768b25..4efe0665d7b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/quick/ASTBaseSpecifier.java @@ -14,8 +14,8 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility; import org.eclipse.cdt.core.parser.ast.ASTNotImplementedException; import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier; -import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier; import org.eclipse.cdt.core.parser.ast.IASTReference; +import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier; /** * @author jcamelon @@ -58,7 +58,7 @@ public class ASTBaseSpecifier implements IASTBaseSpecifier { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier#getParentClassSpecifier() */ - public IASTClassSpecifier getParentClassSpecifier() throws ASTNotImplementedException + public IASTTypeSpecifier getParentClassSpecifier() throws ASTNotImplementedException { throw new ASTNotImplementedException(); }