langtools/src/share/classes/com/sun/tools/javac/code/Types.java
changeset 1469 9c381121f301
parent 1357 e2d4f3e1f805
child 1471 57506cdfb7b4
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Oct 09 15:56:20 2008 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Oct 09 16:02:29 2008 +0100
@@ -1430,6 +1430,10 @@
                 long flags = sym.flags();
                 if (((flags & STATIC) == 0) && owner.type.isParameterized()) {
                     Type base = asOuterSuper(t, owner);
+                    //if t is an intersection type T = CT & I1 & I2 ... & In
+                    //its supertypes CT, I1, ... In might contain wildcards
+                    //so we need to go through capture conversion
+                    base = t.isCompound() ? capture(base) : base;
                     if (base != null) {
                         List<Type> ownerParams = owner.type.allparams();
                         List<Type> baseParams = base.allparams();