mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 10:34:38 +02:00
8177466: Add compiler support for local variable type-inference
Add support for 'var' in implicitly typed local variable declarations Reviewed-by: vromero, jlahoda
This commit is contained in:
parent
02ba926da2
commit
c825188cd8
62 changed files with 2269 additions and 378 deletions
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* @test /nodynamiccopyright/
|
||||
* @bug 8177466
|
||||
* @summary Add compiler support for local variable type-inference
|
||||
* @compile/fail/ref=BadLocalVarInferenceTest.out -XDrawDiagnostics BadLocalVarInferenceTest.java
|
||||
*/
|
||||
|
||||
class BadLocalVarInferenceTest {
|
||||
|
||||
interface Foo<X> {
|
||||
void m(X x);
|
||||
}
|
||||
|
||||
interface Supplier<X> {
|
||||
void m(X x);
|
||||
}
|
||||
|
||||
void test() {
|
||||
var x;
|
||||
var f = () -> { };
|
||||
var m = this::l;
|
||||
var g = null;
|
||||
var d = d = 1;
|
||||
var k = { 1 , 2 };
|
||||
var l = new Foo<>() { //LHS was Foo<String>
|
||||
@Override
|
||||
void m(String s) { }
|
||||
};
|
||||
var s = f(x -> { x.charAt(0); }); //LHS was String
|
||||
}
|
||||
|
||||
<Z> Z f(Supplier<Z> sz) { return null; }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue