Fix indentation of for loop variable declarations
with multiple declaration fragments. Previously there was an extra +4 indent:
for (int x = 1, //
y = 2; ; ) {}
The indent handling is only needed if the first fragment is not a declaration:
int x, y;
for (x = 1, //
y = 2; ; ) {}
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=154189693
diff --git a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
index 32080e2..d381455 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
@@ -950,7 +950,11 @@
builder.space();
token("(");
builder.open(plusFour);
- builder.open(node.getInitializer().size() <= 1 ? ZERO : plusFour);
+ builder.open(
+ node.getInitializer().size() > 1
+ && node.getInitializer().get(0).getKind() == Tree.Kind.EXPRESSION_STATEMENT
+ ? plusFour
+ : ZERO);
if (!node.getInitializer().isEmpty()) {
if (node.getInitializer().get(0).getKind() == VARIABLE) {
PeekingIterator<StatementTree> it =
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.input b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.input
new file mode 100644
index 0000000..65d9d47
--- /dev/null
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.input
@@ -0,0 +1,16 @@
+class B37629610 {
+ private static ImmutableList<InputOutputPair> toInputOutputPairs(Options options) {
+ for (Iterator<Path> inputIt = options.inputJars.iterator(),
+ outputIt = options.outputJars.iterator();
+ inputIt.hasNext();
+ ) {}
+ for (Iterator<Path> inputIt = options.inputJars.iterator(),
+ outputIt = options.outputJars.iterator();
+ ;
+ inputIt.next()) {}
+ for (inputIt = options.inputJars.iterator(), //
+ outputIt = options.outputJars.iterator();
+ ;
+ inputIt.next()) {}
+ }
+}
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.output
new file mode 100644
index 0000000..c3ea0da
--- /dev/null
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B37629610.output
@@ -0,0 +1,16 @@
+class B37629610 {
+ private static ImmutableList<InputOutputPair> toInputOutputPairs(Options options) {
+ for (Iterator<Path> inputIt = options.inputJars.iterator(),
+ outputIt = options.outputJars.iterator();
+ inputIt.hasNext();
+ ) {}
+ for (Iterator<Path> inputIt = options.inputJars.iterator(),
+ outputIt = options.outputJars.iterator();
+ ;
+ inputIt.next()) {}
+ for (inputIt = options.inputJars.iterator(), //
+ outputIt = options.outputJars.iterator();
+ ;
+ inputIt.next()) {}
+ }
+}