Be agnostic order of 'requires' and 'transitive'
modifiers on requires directives.
See #75
MOE_MIGRATED_REVID=166152386
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 e10368f..58995e0 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
@@ -2403,13 +2403,16 @@
public Void visitRequires(RequiresTree node, Void unused) {
token("requires");
builder.space();
- if (builder.peekToken().equals(Optional.of("static"))) {
- token("static");
- builder.space();
- }
- if (builder.peekToken().equals(Optional.of("transitive"))) {
- token("transitive");
- builder.space();
+ while (true) {
+ if (builder.peekToken().equals(Optional.of("static"))) {
+ token("static");
+ builder.space();
+ } else if (builder.peekToken().equals(Optional.of("transitive"))) {
+ token("transitive");
+ builder.space();
+ } else {
+ break;
+ }
}
scan(node.getModuleName(), null);
token(";");
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.input b/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.input
new file mode 100644
index 0000000..c5d2966
--- /dev/null
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.input
@@ -0,0 +1,6 @@
+@Deprecated
+module moduletags {
+ requires transitive static moduleA;
+
+ exports testpkgmdltags;
+}
\ No newline at end of file
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.output
new file mode 100644
index 0000000..563ef46
--- /dev/null
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/M3.output
@@ -0,0 +1,6 @@
+@Deprecated
+module moduletags {
+ requires transitive static moduleA;
+
+ exports testpkgmdltags;
+}