-
Bug
-
Resolution: Unresolved
-
P4
-
repo-amber
-
generic
-
generic
Compiling the following program:
public class X {
@interface A {
}
@A
<T extends X> T id(T t) {
return null;
}
public static void main(String [] args) {
@A
<T extends X> T id(T t) {
return t;
}
X x = new X();
X i = id(x);
System.out.println("i = " + i + " x = " + x);
}
}
results in:
X.java:12: error: illegal start of type
<T extends X> T id(T t) {
^
X.java:12: error: > expected
<T extends X> T id(T t) {
^
X.java:12: error: not a statement
<T extends X> T id(T t) {
^
X.java:12: error: ';' expected
<T extends X> T id(T t) {
^
X.java:12: error: ')' expected
<T extends X> T id(T t) {
^
X.java:12: error: not a statement
<T extends X> T id(T t) {
^
X.java:12: error: ';' expected
<T extends X> T id(T t) {
^
7 errors
See that the instance method is annotatable while the local method is not.
public class X {
@interface A {
}
@A
<T extends X> T id(T t) {
return null;
}
public static void main(String [] args) {
@A
<T extends X> T id(T t) {
return t;
}
X x = new X();
X i = id(x);
System.out.println("i = " + i + " x = " + x);
}
}
results in:
X.java:12: error: illegal start of type
<T extends X> T id(T t) {
^
X.java:12: error: > expected
<T extends X> T id(T t) {
^
X.java:12: error: not a statement
<T extends X> T id(T t) {
^
X.java:12: error: ';' expected
<T extends X> T id(T t) {
^
X.java:12: error: ')' expected
<T extends X> T id(T t) {
^
X.java:12: error: not a statement
<T extends X> T id(T t) {
^
X.java:12: error: ';' expected
<T extends X> T id(T t) {
^
7 errors
See that the instance method is annotatable while the local method is not.