author | jjg |
Mon, 26 Jul 2010 14:18:45 -0700 | |
changeset 6150 | d055fa8ced62 |
parent 3766 | 7e2df99e9223 |
child 18909 | 8f9fc5d876e4 |
permissions | -rw-r--r-- |
1791
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
1 |
/* |
3766 | 2 |
* @test /nodynamiccopyright/ |
1791
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
3 |
* @bug 6723444 |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
4 |
* |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
5 |
* @summary javac fails to substitute type variables into a constructor's throws clause |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
6 |
* @author Mark Mahieu |
6150 | 7 |
* @compile/fail/ref=T6723444.out -XDrawDiagnostics T6723444.java |
1791
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
8 |
* |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
9 |
*/ |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
10 |
public class T6723444 { |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
11 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
12 |
static class Foo<X extends Throwable> { |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
13 |
Foo() throws X {} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
14 |
} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
15 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
16 |
<X extends Throwable> T6723444() |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
17 |
throws X {} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
18 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
19 |
<X extends Throwable> T6723444(Foo<X> foo) |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
20 |
throws X {} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
21 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
22 |
<X1 extends Throwable, X2 extends Throwable> T6723444(Foo<X1> foo, int i) |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
23 |
throws X1, X2 {} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
24 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
25 |
public static void main(String[] args) throws Exception { |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
26 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
27 |
// the following 8 statements should compile without error |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
28 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
29 |
Foo<Exception> exFoo = new Foo<Exception>(); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
30 |
exFoo = new Foo<Exception>() {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
31 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
32 |
new<Exception> T6723444(); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
33 |
new<Exception> T6723444() {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
34 |
new T6723444(exFoo); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
35 |
new T6723444(exFoo) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
36 |
new<Exception, Exception> T6723444(exFoo, 1); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
37 |
new<Exception, Exception> T6723444(exFoo, 1) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
38 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
39 |
// the remaining statements should all raise an |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
40 |
// unreported exception error |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
41 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
42 |
new T6723444(exFoo, 1); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
43 |
new T6723444(exFoo, 1) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
44 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
45 |
Foo<Throwable> thFoo = new Foo<Throwable>(); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
46 |
thFoo = new Foo<Throwable>() {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
47 |
|
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
48 |
new<Throwable> T6723444(); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
49 |
new<Throwable> T6723444() {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
50 |
new T6723444(thFoo); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
51 |
new T6723444(thFoo) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
52 |
new T6723444(thFoo, 1); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
53 |
new T6723444(thFoo, 1) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
54 |
new<Throwable, Throwable> T6723444(thFoo, 1); |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
55 |
new<Throwable, Throwable> T6723444(thFoo, 1) {}; |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
56 |
} |
d378f023c36d
6723444: javac fails to substitute type variables into a constructor's throws clause
mcimadamore
parents:
diff
changeset
|
57 |
} |