mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 01:36:01 +02:00
Bug 527179: ExpressionWriter removes nested noexcept expressions
Change-Id: I7c032e9327756704690760f3207c73f1645deb19 Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
This commit is contained in:
parent
1bf0dff19f
commit
b721d6a424
2 changed files with 32 additions and 2 deletions
|
@ -145,4 +145,29 @@ struct S
|
||||||
virtual void memFun() final
|
virtual void memFun() final
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//!Noexcept without expression specifiers
|
||||||
|
//%CPP
|
||||||
|
void foo() noexcept
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//!Noexcept with expression specifiers
|
||||||
|
//%CPP
|
||||||
|
void foo() noexcept (1 + 1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//!Nested noexcept specifiers
|
||||||
|
//%CPP
|
||||||
|
void foo() noexcept (noexcept (1 + 1))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//!Multiple nested noexcept specifiers
|
||||||
|
//%CPP
|
||||||
|
void foo() noexcept (noexcept (1 + 1) && noexcept (2 + 3))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ public class ExpressionWriter extends NodeWriter{
|
||||||
private static final String OPEN_BRACKET_OP = "("; //$NON-NLS-1$
|
private static final String OPEN_BRACKET_OP = "("; //$NON-NLS-1$
|
||||||
private static final String SIZEOF_OP = "sizeof "; //$NON-NLS-1$
|
private static final String SIZEOF_OP = "sizeof "; //$NON-NLS-1$
|
||||||
private static final String SIZEOF_PARAMETER_PACK_OP = "sizeof..."; //$NON-NLS-1$
|
private static final String SIZEOF_PARAMETER_PACK_OP = "sizeof..."; //$NON-NLS-1$
|
||||||
|
private static final String NOEXCEPT_OP = "noexcept ("; //$NON-NLS-1$
|
||||||
private static final String NOT_OP = "!"; //$NON-NLS-1$
|
private static final String NOT_OP = "!"; //$NON-NLS-1$
|
||||||
private static final String TILDE_OP = "~"; //$NON-NLS-1$
|
private static final String TILDE_OP = "~"; //$NON-NLS-1$
|
||||||
private static final String AMPERSAND_OP = "&"; //$NON-NLS-1$
|
private static final String AMPERSAND_OP = "&"; //$NON-NLS-1$
|
||||||
|
@ -253,6 +254,7 @@ public class ExpressionWriter extends NodeWriter{
|
||||||
case IASTUnaryExpression.op_bracketedPrimary:
|
case IASTUnaryExpression.op_bracketedPrimary:
|
||||||
case ICPPASTUnaryExpression.op_throw:
|
case ICPPASTUnaryExpression.op_throw:
|
||||||
case ICPPASTUnaryExpression.op_typeid:
|
case ICPPASTUnaryExpression.op_typeid:
|
||||||
|
case ICPPASTUnaryExpression.op_noexcept:
|
||||||
case IASTUnaryExpression.op_alignOf:
|
case IASTUnaryExpression.op_alignOf:
|
||||||
case IASTUnaryExpression.op_labelReference:
|
case IASTUnaryExpression.op_labelReference:
|
||||||
return true;
|
return true;
|
||||||
|
@ -269,6 +271,7 @@ public class ExpressionWriter extends NodeWriter{
|
||||||
case IASTUnaryExpression.op_postFixIncr:
|
case IASTUnaryExpression.op_postFixIncr:
|
||||||
case IASTUnaryExpression.op_bracketedPrimary:
|
case IASTUnaryExpression.op_bracketedPrimary:
|
||||||
case ICPPASTUnaryExpression.op_typeid:
|
case ICPPASTUnaryExpression.op_typeid:
|
||||||
|
case ICPPASTUnaryExpression.op_noexcept:
|
||||||
case IASTUnaryExpression.op_alignOf:
|
case IASTUnaryExpression.op_alignOf:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -306,6 +309,8 @@ public class ExpressionWriter extends NodeWriter{
|
||||||
return THROW;
|
return THROW;
|
||||||
case ICPPASTUnaryExpression.op_typeid:
|
case ICPPASTUnaryExpression.op_typeid:
|
||||||
return TYPEID_OP;
|
return TYPEID_OP;
|
||||||
|
case ICPPASTUnaryExpression.op_noexcept:
|
||||||
|
return NOEXCEPT_OP;
|
||||||
case IASTUnaryExpression.op_alignOf:
|
case IASTUnaryExpression.op_alignOf:
|
||||||
return ALIGNOF_OP;
|
return ALIGNOF_OP;
|
||||||
case IASTUnaryExpression.op_labelReference:
|
case IASTUnaryExpression.op_labelReference:
|
||||||
|
@ -324,7 +329,7 @@ public class ExpressionWriter extends NodeWriter{
|
||||||
case IASTUnaryExpression.op_postFixIncr:
|
case IASTUnaryExpression.op_postFixIncr:
|
||||||
return INCREMENT_OP;
|
return INCREMENT_OP;
|
||||||
case ICPPASTUnaryExpression.op_typeid:
|
case ICPPASTUnaryExpression.op_typeid:
|
||||||
return CLOSING_BRACKET_OP;
|
case ICPPASTUnaryExpression.op_noexcept:
|
||||||
case IASTUnaryExpression.op_bracketedPrimary:
|
case IASTUnaryExpression.op_bracketedPrimary:
|
||||||
case IASTUnaryExpression.op_alignOf:
|
case IASTUnaryExpression.op_alignOf:
|
||||||
return CLOSING_BRACKET_OP;
|
return CLOSING_BRACKET_OP;
|
||||||
|
|
Loading…
Add table
Reference in a new issue