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(");
}
}
}
}