import java.util.TreeMap; /** * Resolution of outer classes must take substitution of generic types into account. Thanks to EMS * for finding this problem. * * <p>Also see regex/GenericsEnclosing for a test case for the Regex Checker. */ class GenericsEnclosing extends TreeMap<String, String> { class Inner { void foo() { put("string", "string".toString()); put("string", "string"); GenericsEnclosing.this.put("string", "string".toString()); GenericsEnclosing.this.put("string", "string"); } } } class OtherUse { void m(GenericsEnclosing p) { p.put("string", "string".toString()); p.put("string", "string"); } }