test/langtools/tools/javac/ConditionalWithVoid.java
changeset 47216 71c04702a3d5
parent 27551 14a74a56c4a0
child 51563 de411d537aae
equal deleted inserted replaced
47215:4ebc2e2fb97c 47216:71c04702a3d5
       
     1 /*
       
     2  * @test /nodynamiccopyright/
       
     3  * @bug 4974927 8064464
       
     4  * @summary The compiler was allowing void types in its parsing of conditional expressions.
       
     5  * @author tball
       
     6  *
       
     7  * @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
       
     8  */
       
     9 public class ConditionalWithVoid {
       
    10     public void test(Object o) {
       
    11         // Should fail to compile since Object.wait() has a void return type. Poly case.
       
    12         System.out.println(o instanceof String ? o.hashCode() : o.wait());
       
    13         // Should fail to compile since Object.wait() has a void return type. Standalone case.
       
    14         (o instanceof String ? o.hashCode() : o.wait()).toString();
       
    15     }
       
    16 }