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

Bug 350816 - [formatter] Fixed size array declaration formats wrong

This commit is contained in:
Anton Leherbauer 2011-08-08 09:53:14 +02:00
parent b7382e51f1
commit 0ab89e9c79
2 changed files with 23 additions and 2 deletions

View file

@ -1603,8 +1603,7 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
private int visit(IASTArrayDeclarator node) {
IASTArrayModifier[] arrayModifiers= node.getArrayModifiers();
if (arrayModifiers != null) {
for (IASTArrayModifier arrayModifier2 : arrayModifiers) {
IASTArrayModifier arrayModifier = arrayModifier2;
for (IASTArrayModifier arrayModifier : arrayModifiers) {
scribe.printNextToken(Token.tLBRACKET, preferences.insert_space_before_opening_bracket);
boolean emptyBrackets= arrayModifier.getConstantExpression() == null
&& !(arrayModifier instanceof ICASTArrayModifier);
@ -1625,10 +1624,13 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
scribe.space();
}
}
Runnable tailFormatter = scribe.takeTailFormatter();
try {
arrayModifier.accept(this);
} catch (ASTProblemException e) {
scribe.skipToToken(Token.tRBRACKET);
} finally {
scribe.setTailFormatter(tailFormatter);
}
boolean insertSpace= emptyBrackets ?
preferences.insert_space_between_empty_brackets :

View file

@ -2518,4 +2518,23 @@ public class CodeFormatterTest extends BaseUITestCase {
String expected= before;
assertFormatterResult(before, expected);
}
//#define SIZE 5
//char s0[5];
//char s1[1+1];
//char s2[SIZE];
//char s3[SIZE+1];
//char s4[SIZE+SIZE];
//char s5[1+SIZE];
//#define SIZE 5
//char s0[5];
//char s1[1 + 1];
//char s2[SIZE];
//char s3[SIZE + 1];
//char s4[SIZE + SIZE];
//char s5[1 + SIZE];
public void testExpressionInArrayDeclarator_Bug350816() throws Exception {
assertFormatterResult();
}
}