aboutsummaryrefslogtreecommitdiffstats
path: root/tests/features1923/java23/PrimitivePatternsSwitch2.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/features1923/java23/PrimitivePatternsSwitch2.java')
-rw-r--r--tests/features1923/java23/PrimitivePatternsSwitch2.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/features1923/java23/PrimitivePatternsSwitch2.java b/tests/features1923/java23/PrimitivePatternsSwitch2.java
new file mode 100644
index 000000000..dcb3cfe48
--- /dev/null
+++ b/tests/features1923/java23/PrimitivePatternsSwitch2.java
@@ -0,0 +1,33 @@
+public class PrimitivePatternsSwitch2 {
+
+ public static void main(String[] argv) {
+ System.out.println(fn(new Number(1)));
+ System.out.println(fn(new Number(2)));
+ System.out.println(fn(new Number(3)));
+ System.out.println(fn(new Number(4)));
+ }
+
+ static String fn(Number n) {
+ return switch (n.value()) {
+ case int i when isOdd(i) -> "yes";
+ case int i -> "no";
+ };
+ }
+
+ static boolean isOdd(int i) {
+ return (i%2)==0;
+ }
+
+}
+
+aspect X {
+ boolean around(int i): call(* isOdd(..)) && args(i) {
+ return false;
+ }
+}
+
+class Number {
+ private int i;
+ Number(int n) { this.i = n; }
+ int value() { return i; }
+}