diff -r 3d755b8cdef8 -r 327122b01a9e src/share/classes/com/sun/tools/javac/comp/Check.java --- a/src/share/classes/com/sun/tools/javac/comp/Check.java Wed May 07 21:33:15 2014 -0700 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java Tue May 06 15:46:09 2014 -0600 @@ -621,7 +621,7 @@ } else if (a.isExtendsBound()) { return types.isCastable(bound, types.upperBound(a), types.noWarnings); } else if (a.isSuperBound()) { - return !types.notSoftSubtype(types.lowerBound(a), bound); + return !types.notSoftSubtype(types.wildLowerBound(a), bound); } return true; } @@ -2685,7 +2685,7 @@ if (types.isSameType(type, syms.stringType)) return; if ((type.tsym.flags() & Flags.ENUM) != 0) return; if ((type.tsym.flags() & Flags.ANNOTATION) != 0) return; - if (types.lowerBound(type).tsym == syms.classType.tsym) return; + if (types.cvarLowerBound(type).tsym == syms.classType.tsym) return; if (types.isArray(type) && !types.isArray(types.elemtype(type))) { validateAnnotationType(pos, types.elemtype(type)); return;