1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
org.eclipse.cdt.core.tests: Added CompleteParseASTTest::testBug44249().
This commit is contained in:
John Camelon 2004-04-15 02:32:42 +00:00
parent c73b30f8ce
commit f6c0374580
4 changed files with 36 additions and 5 deletions

View file

@ -1,3 +1,6 @@
2004-04-14 John Camelon
Added CompleteParseASTTest::testBug44249().
2004-04-14 John Camelon
Added CompletionTest::testBug58178().

View file

@ -1487,4 +1487,17 @@ public class CompleteParseASTTest extends CompleteParseBaseTest
assertTrue( forewardDecl.isFriendDeclaration() );
assertTrue( f.isFriend() );
}
public void testBug44249() throws Exception
{
Iterator i = parse( "class SD_01 { public:\n void SD_01::f_SD_01();};" ).getDeclarations();
IASTClassSpecifier SD_01 = (IASTClassSpecifier) ((IASTAbstractTypeSpecifierDeclaration)i.next()).getTypeSpecifier();
assertFalse( i.hasNext() );
i = getDeclarations( SD_01 );
IASTMethod f_SD_01 = (IASTMethod) i.next();
assertFalse( i.hasNext() );
assertEquals( f_SD_01.getName(), "f_SD_01");
assertAllReferences( 1, createTaskList( new Task( SD_01 )));
}
}

View file

@ -1,3 +1,7 @@
2004-04-14 John Camelon
Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=44249
Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=52004
2004-04-14 John Camelon
Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=58500
Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=58178

View file

@ -2199,14 +2199,25 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
boolean isDestructor = false;
IContainerSymbol ownerScope = scopeToSymbol( ownerTemplate != null ? (IASTScope) ownerTemplate : scope );
IParameterizedSymbol symbol = pst.newParameterizedSymbol( nameDuple.toString(), TypeInfo.t_function );
IParameterizedSymbol symbol = null;
if( references == null )
{
references = new ArrayList();
if( nameDuple.length() != 1 )
{
ITokenDuple leadingSegments = nameDuple.getLeadingSegments();
ISymbol test = lookupQualifiedName( ownerScope, leadingSegments, references, false );
if( test == ownerScope )
nameDuple = nameDuple.getLastSegment();
}
}
symbol = pst.newParameterizedSymbol( nameDuple.toString(), TypeInfo.t_function );
setFunctionTypeInfoBits(isInline, isFriend, isStatic, symbol);
setMethodTypeInfoBits( symbol, isConst, isVolatile, isVirtual, isExplicit );
symbol.setHasVariableArgs( hasVariableArguments );
if(references == null)
references = new ArrayList();
if( returnType.getTypeSpecifier() != null )
setParameter( symbol, returnType, false, references );
setParameters( symbol, references, parameters.iterator() );