aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Koopman <n.t.koopman@nandoe.net>2020-06-03 17:07:38 -0700
committergoogle-java-format Team <google-java-format-dev+copybara@google.com>2020-06-03 17:08:04 -0700
commit5202af98006d744aafc2ba7cba2fa19a14e9b7b1 (patch)
tree94adf4732fb6743f0e7f75586c47973a67434757
parent22d8c55fb4699cf08e4c9728dc6ccc9360becd5a (diff)
downloadgoogle-java-format-5202af98006d744aafc2ba7cba2fa19a14e9b7b1.tar.gz
Add support for yield statement
Implement visitYield. Fixes #489 from ntkoopman:yield b46d1f0f2526044676e7ed5cca07a6f745772c0d COPYBARA_INTEGRATE_REVIEW=https://github.com/google/google-java-format/pull/489 PiperOrigin-RevId: 314633394
-rw-r--r--core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java6
-rw-r--r--core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.input21
-rw-r--r--core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.output25
3 files changed, 50 insertions, 2 deletions
diff --git a/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java b/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java
index 6585c6f..78cfd66 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java
@@ -60,7 +60,11 @@ public class Java14InputAstVisitor extends JavaInputAstVisitor {
@Override
public Void visitYield(YieldTree node, Void aVoid) {
sync(node);
- return super.visitYield(node, aVoid);
+ token("yield");
+ builder.space();
+ scan(node.getValue(), null);
+ token(";");
+ return null;
}
@Override
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.input b/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.input
index 381d5d1..1e4db16 100644
--- a/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.input
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.input
@@ -6,4 +6,23 @@ class ExpressionSwitch {
default -> odd(x - 1);
};
}
-} \ No newline at end of file
+
+ {
+ int f = switch (i) {
+ case 0 -> 0;
+ default -> {
+ yield n / i;
+ }
+ };
+
+ int g = switch (i) {
+ case 0: yield 0;
+ default: yield n/i;
+ };
+
+ switch (i) {
+ case 0 -> { System.out.println("0"); }
+ default -> System.out.println("default");
+ }
+ }
+}
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.output
index 38eca1b..6458aa0 100644
--- a/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.output
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/ExpressionSwitch.output
@@ -6,4 +6,29 @@ class ExpressionSwitch {
default -> odd(x - 1);
};
}
+
+ {
+ int f =
+ switch (i) {
+ case 0 -> 0;
+ default -> {
+ yield n / i;
+ }
+ };
+
+ int g =
+ switch (i) {
+ case 0:
+ yield 0;
+ default:
+ yield n / i;
+ };
+
+ switch (i) {
+ case 0 -> {
+ System.out.println("0");
+ }
+ default -> System.out.println("default");
+ }
+ }
}