mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 14:55:41 +02:00
Fixed Bug 87807 - [Parser] CPPASTTypeIdExpression does not implement ICPPASTTypeIdExpression
This commit is contained in:
parent
f83e7a7c6f
commit
44ccc9fdac
4 changed files with 13 additions and 12 deletions
|
@ -288,7 +288,8 @@ public class AST2BaseTest extends TestCase {
|
||||||
|
|
||||||
|
|
||||||
protected void isExpressionStringEqual(IASTExpression exp, String str) {
|
protected void isExpressionStringEqual(IASTExpression exp, String str) {
|
||||||
assertEquals(str, ASTSignatureUtil.getExpressionString(exp));
|
String expressionString = ASTSignatureUtil.getExpressionString(exp);
|
||||||
|
assertEquals(str, expressionString);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void isParameterSignatureEqual(IASTDeclarator decltor, String str) {
|
protected void isParameterSignatureEqual(IASTDeclarator decltor, String str) {
|
||||||
|
|
|
@ -163,12 +163,12 @@ public class AST2UtilOldTests extends AST2BaseTest {
|
||||||
isExpressionStringEqual( ((IASTInitializerExpression)((IASTSimpleDeclaration)d[0]).getDeclarators()[0].getInitializer()).getExpression(), "foo(typeid(a))" ); //$NON-NLS-1$
|
isExpressionStringEqual( ((IASTInitializerExpression)((IASTSimpleDeclaration)d[0]).getDeclarators()[0].getInitializer()).getExpression(), "foo(typeid(a))" ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
// Kind POSTFIX_TYPEID_TYPEID : type of the ID
|
// Kind POSTFIX_TYPEID_TYPEID : type of the ID
|
||||||
// TODO enable after 87807 is fixed
|
|
||||||
// public void testPostfixTypeIdTypeId2() throws Exception{
|
public void testPostfixTypeIdTypeId2() throws Exception{
|
||||||
// IASTTranslationUnit tu = parse("int x = foo( typeid(const A) );".toString(), ParserLanguage.CPP); //$NON-NLS-1$
|
IASTTranslationUnit tu = parse("int x = foo( typeid(const A) );".toString(), ParserLanguage.CPP); //$NON-NLS-1$
|
||||||
// IASTDeclaration[] d = tu.getDeclarations();
|
IASTDeclaration[] d = tu.getDeclarations();
|
||||||
// isExpressionStringEqual( ((IASTInitializerExpression)((IASTSimpleDeclaration)d[0]).getDeclarators()[0].getInitializer()).getExpression(), "foo(typeid(const A))" ); //$NON-NLS-1$
|
isExpressionStringEqual( ((IASTInitializerExpression)((IASTSimpleDeclaration)d[0]).getDeclarators()[0].getInitializer()).getExpression(), "foo(typeid (const A))" ); //$NON-NLS-1$
|
||||||
// }
|
}
|
||||||
// Kind UNARY_INCREMENT : LHS
|
// Kind UNARY_INCREMENT : LHS
|
||||||
public void testUnaryIncrement() throws Exception
|
public void testUnaryIncrement() throws Exception
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,13 +12,13 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
|
import org.eclipse.cdt.core.dom.ast.IASTTypeId;
|
||||||
import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression;
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author jcamelon
|
* @author jcamelon
|
||||||
*/
|
*/
|
||||||
public class CPPASTTypeIdExpression extends CPPASTNode implements
|
public class CPPASTTypeIdExpression extends CPPASTNode implements
|
||||||
IASTTypeIdExpression {
|
ICPPASTTypeIdExpression {
|
||||||
|
|
||||||
private int op;
|
private int op;
|
||||||
private IASTTypeId typeId;
|
private IASTTypeId typeId;
|
||||||
|
|
|
@ -4549,21 +4549,21 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
|
||||||
*/
|
*/
|
||||||
protected IASTExpression buildTypeIdExpression(int op, IASTTypeId typeId,
|
protected IASTExpression buildTypeIdExpression(int op, IASTTypeId typeId,
|
||||||
int startingOffset, int endingOffset) {
|
int startingOffset, int endingOffset) {
|
||||||
IASTTypeIdExpression typeIdExpression = createTypeIdExpression();
|
ICPPASTTypeIdExpression typeIdExpression = createTypeIdExpression();
|
||||||
((ASTNode) typeIdExpression).setOffsetAndLength(startingOffset,
|
((ASTNode) typeIdExpression).setOffsetAndLength(startingOffset,
|
||||||
endingOffset - startingOffset);
|
endingOffset - startingOffset);
|
||||||
((ASTNode) typeIdExpression).setLength(endingOffset - startingOffset);
|
((ASTNode) typeIdExpression).setLength(endingOffset - startingOffset);
|
||||||
typeIdExpression.setOperator(op);
|
typeIdExpression.setOperator(op);
|
||||||
typeIdExpression.setTypeId(typeId);
|
typeIdExpression.setTypeId(typeId);
|
||||||
typeId.setParent(typeIdExpression);
|
typeId.setParent(typeIdExpression);
|
||||||
typeId.setPropertyInParent(IASTTypeIdExpression.TYPE_ID);
|
typeId.setPropertyInParent(ICPPASTTypeIdExpression.TYPE_ID);
|
||||||
return typeIdExpression;
|
return typeIdExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected IASTTypeIdExpression createTypeIdExpression() {
|
protected ICPPASTTypeIdExpression createTypeIdExpression() {
|
||||||
return new CPPASTTypeIdExpression();
|
return new CPPASTTypeIdExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue