From aac2019737d8609515d4ef0d5138c730193af289 Mon Sep 17 00:00:00 2001 From: cushon Date: Wed, 3 Jun 2020 11:16:12 -0700 Subject: [PATCH] Add support for yield statement Fixes #489 PiperOrigin-RevId: 314567082 --- .../java/java14/Java14InputAstVisitor.java | 6 ++++- .../java/testdata/ExpressionSwitch.input | 21 +++++++++++++++- .../java/testdata/ExpressionSwitch.output | 25 +++++++++++++++++++ 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 6585c6f6e..78cfd66b1 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 Void visitBindingPattern(BindingPatternTree node, Void unused) { @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 381d5d17d..1e4db164d 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 38eca1b2d..6458aa09d 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"); + } + } }