1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 68931 - fix problem reporting in simple type specifiers

This commit is contained in:
Andrew Niefer 2004-07-08 17:21:24 +00:00
parent 99da3b476b
commit d16e76a28e
3 changed files with 21 additions and 2 deletions

View file

@ -75,4 +75,20 @@ public class CompleteParseProblemTest extends CompleteParseBaseTest {
}
public void testBug68931() throws Exception
{
String code = "void foo(){ SomeUnknownType t; } "; //$NON-NLS-1$
parse( code, false );
int start = code.indexOf( "SomeUnknownType" ); //$NON-NLS-1$
int end = start + 15;
assertFalse( callback.problems.isEmpty() );
assertEquals( callback.problems.size(), 1 );
IProblem p = (IProblem) callback.problems.get( 0 );
assertTrue( p.checkCategory( IProblem.SEMANTICS_RELATED ));
assertEquals( p.getSourceStart(), start );
assertEquals( p.getSourceEnd(), end );
assertEquals( p.getID(), IProblem.SEMANTIC_NAME_NOT_FOUND );
}
}

View file

@ -1126,7 +1126,10 @@ public abstract class Parser extends ExpressionParser implements IParser
{
int endOffset = ( lastToken != null ) ? lastToken.getEndOffset() : 0 ;
logException( "simpleDeclaration:createSimpleTypeSpecifier", e1 ); //$NON-NLS-1$
throwBacktrack(firstOffset, endOffset, firstLine);
if( e1 instanceof ASTSemanticException && ((ASTSemanticException)e1).getProblem() != null )
throwBacktrack(((ASTSemanticException)e1).getProblem());
else
throwBacktrack(firstOffset, endOffset, firstLine);
}
try {

View file

@ -2042,7 +2042,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
}
}
else
handleProblem( IProblem.SEMANTIC_NAME_NOT_FOUND, image, -1, -1, current.getLineNumber(), true );
handleProblem( IProblem.SEMANTIC_NAME_NOT_FOUND, image, current.getOffset(), current.getEndOffset(), current.getLineNumber(), true );
}
catch (ParserSymbolTableException e)
{