--- a/test/langtools/tools/javac/ConditionalWithVoid.java Tue Aug 28 09:01:54 2018 +0200
+++ b/test/langtools/tools/javac/ConditionalWithVoid.java Wed Aug 29 09:36:17 2018 +0200
@@ -4,13 +4,17 @@
* @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();
}
}