< prev index next >

test/langtools/tools/javac/ConditionalWithVoid.java

Print this page
rev 51259 : imported patch switch.01

@@ -2,15 +2,19 @@
  * @test /nodynamiccopyright/
  * @bug 4974927 8064464
  * @summary The compiler was allowing void types in its parsing of conditional expressions.
  * @author tball
  *
- * @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
+ * @compile/fail/ref=ConditionalWithVoid.out --enable-preview -source 12 -XDrawDiagnostics ConditionalWithVoid.java
  */
 public class ConditionalWithVoid {
-    public void test(Object o) {
+    public void test(Object o, String s) {
         // Should fail to compile since Object.wait() has a void return type. Poly case.
         System.out.println(o instanceof String ? o.hashCode() : o.wait());
         // Should fail to compile since Object.wait() has a void return type. Standalone case.
         (o instanceof String ? o.hashCode() : o.wait()).toString();
+        // Should fail to compile since Object.wait() has a void return type. Poly case.
+        System.out.println(switch (s) {case "" -> o.hashCode(); default -> o.wait();});
+        // Should fail to compile since Object.wait() has a void return type. Standalone case.
+        (switch (s) {case "" -> o.hashCode(); default -> o.wait();}).toString();
     }
 }
< prev index next >