1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import org.checkerframework.checker.regex.qual.*;
/**
* Resolution of outer classes must take substitution of generic types into account. Thanks to EMS
* for finding this problem.
*
* <p>Also see all-systems/GenericsEnclosing for the type-system independent test.
*/
class MyG<X> {
X f;
void m(X p) {}
}
class ExtMyG extends MyG<@Regex String> {
class EInner1 {
class EInner2 {
void bar() {
String s = f;
f = "hi";
// :: error: (assignment.type.incompatible)
f = "\\ no regex(";
m("hi!");
// :: error: (argument.type.incompatible)
m("\\ no regex(");
}
}
}
}
|