author | mcimadamore |
Fri, 24 Nov 2017 16:14:33 +0000 | |
changeset 47934 | 6373d9a0ad82 |
parent 47268 | 48ec75306997 |
permissions | -rw-r--r-- |
47268
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
1 |
/* |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
2 |
* @test /nodynamiccopyright/ |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
3 |
* @bug 8177466 |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
4 |
* @summary Add compiler support for local variable type-inference |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
5 |
* @compile/fail/ref=SelfRefTest.out -XDrawDiagnostics SelfRefTest.java |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
6 |
*/ |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
7 |
|
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
8 |
import java.util.function.Function; |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
9 |
|
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
10 |
class SelfRefTest { |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
11 |
|
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
12 |
int q() { return 42; } |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
13 |
int m(int t) { return t; } |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
14 |
|
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
15 |
void test(boolean cond) { |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
16 |
var x = cond ? x : x; //error - self reference |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
17 |
var y = (Function<Integer, Integer>)(Integer y) -> y; //error - bad shadowing |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
18 |
var z = (Runnable)() -> { int z2 = m(z); }; //error - self reference |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
19 |
var w = new Object() { int w = 42; void test() { int w2 = w; } }; //ok |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
20 |
int u = u; //ok |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
21 |
int q = q(); //ok |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
22 |
} |
48ec75306997
8177466: Add compiler support for local variable type-inference
mcimadamore
parents:
diff
changeset
|
23 |
} |