langtools/test/tools/javac/ConditionalWithVoid.java
changeset 27551 14a74a56c4a0
parent 26528 a1a7ad15183e
equal deleted inserted replaced
27550:7687cc8669cd 27551:14a74a56c4a0
     1 /*
     1 /*
     2  * @test /nodynamiccopyright/
     2  * @test /nodynamiccopyright/
     3  * @bug 4974927
     3  * @bug 4974927 8064464
     4  * @summary The compiler was allowing void types in its parsing of conditional expressions.
     4  * @summary The compiler was allowing void types in its parsing of conditional expressions.
     5  * @author tball
     5  * @author tball
     6  *
     6  *
     7  * @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
     7  * @compile/fail/ref=ConditionalWithVoid.out -XDrawDiagnostics ConditionalWithVoid.java
     8  */
     8  */
     9 public class ConditionalWithVoid {
     9 public class ConditionalWithVoid {
    10     public int test(Object o) {
    10     public void test(Object o) {
    11         // Should fail to compile since Object.wait() has a void return type.
    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());
    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();
    13     }
    15     }
    14 }
    16 }