2007-12-01 00:00:00 +00:00
|
|
|
/*
|
2014-09-05 23:43:00 +00:00
|
|
|
* @test /nodynamiccopyright/
|
2014-11-12 12:41:32 +00:00
|
|
|
* @bug 4974927 8064464
|
2007-12-01 00:00:00 +00:00
|
|
|
* @summary The compiler was allowing void types in its parsing of conditional expressions.
|
|
|
|
* @author tball
|
|
|
|
*
|
2019-11-12 06:32:13 +00:00
|
|
|
* @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
|
2007-12-01 00:00:00 +00:00
|
|
|
*/
|
|
|
|
public class ConditionalWithVoid {
|
2018-08-29 07:36:17 +00:00
|
|
|
public void test(Object o, String s) {
|
2014-11-12 12:41:32 +00:00
|
|
|
// Should fail to compile since Object.wait() has a void return type. Poly case.
|
2007-12-01 00:00:00 +00:00
|
|
|
System.out.println(o instanceof String ? o.hashCode() : o.wait());
|
2014-11-12 12:41:32 +00:00
|
|
|
// Should fail to compile since Object.wait() has a void return type. Standalone case.
|
|
|
|
(o instanceof String ? o.hashCode() : o.wait()).toString();
|
2018-08-29 07:36:17 +00:00
|
|
|
// 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();
|
2007-12-01 00:00:00 +00:00
|
|
|
}
|
|
|
|
}
|