25da45e26f
Reviewed-by: mcimadamore
78 lines
1.9 KiB
Java
78 lines
1.9 KiB
Java
/*
|
|
* @test /nodynamiccopyright/
|
|
* @bug 8177466 8189146
|
|
* @compile/ref=ParserTest9.out -XDrawDiagnostics --release 9 ParserTest.java
|
|
* @summary Add compiler support for local variable type-inference
|
|
* @compile/fail/ref=ParserTest.out -XDrawDiagnostics ParserTest.java
|
|
*/
|
|
|
|
import java.lang.annotation.ElementType;
|
|
import java.lang.annotation.Target;
|
|
import java.util.function.Function;
|
|
import java.util.List;
|
|
|
|
class ParserTest<var extends AutoCloseable> {
|
|
static class TestClass {
|
|
static class var { } //illegal
|
|
}
|
|
|
|
static class TestInterface {
|
|
interface var { } //illegal
|
|
}
|
|
|
|
static class TestEnum {
|
|
enum var { } //illegal
|
|
}
|
|
|
|
static class TestAnno {
|
|
@interface var { } //illegal
|
|
}
|
|
|
|
@Target(ElementType.TYPE_USE)
|
|
@interface TA { }
|
|
|
|
@interface DA { }
|
|
|
|
static abstract class var extends RuntimeException implements AutoCloseable { } //illegal
|
|
|
|
var x = null; //illegal
|
|
|
|
void test() {
|
|
var[] x1 = null; //illegal
|
|
var x2[] = null; //illegal
|
|
var[][] x3 = null; //illegal
|
|
var x4[][] = null; //illegal
|
|
var[] x5 = null; //illegal
|
|
var x6[] = null; //illegal
|
|
var@TA[]@TA[] x7 = null; //illegal
|
|
var x8@TA[]@TA[] = null; //illegal
|
|
var x9 = null, y = null; //illegal
|
|
final @DA var x10 = m(); //ok
|
|
@DA final var x11 = m(); //ok
|
|
}
|
|
|
|
var m() { //illegal
|
|
return null;
|
|
}
|
|
|
|
void test2(var x) { //error
|
|
List<var> l1; //error
|
|
List<? extends var> l2; //error
|
|
List<? super var> l3; //error
|
|
try {
|
|
Function<var, String> f = (var x2) -> ""; //ok
|
|
} catch (var ex) { } //error
|
|
}
|
|
|
|
void test3(Object o) {
|
|
boolean b1 = o instanceof var; //error
|
|
Object o2 = (var)o; //error
|
|
}
|
|
|
|
void test4() throws Exception {
|
|
try (final var resource1 = null; // ok
|
|
var resource2 = null) { // ok
|
|
}
|
|
}
|
|
}
|