private TypeBinding nullMismatchOnBound( TypeParameter parameter, TypeBinding boundType, long superNullTagBits, long nullTagBits, Scope scope) { // not finding bound should be considered a compiler bug TypeReference bound = findBound(boundType, parameter); Annotation ann = bound.findAnnotation(superNullTagBits); if (ann != null) { // explicit annotation: error scope.problemReporter().contradictoryNullAnnotationsOnBounds(ann, nullTagBits); this.tagBits &= ~TagBits.AnnotationNullMASK; } else { // implicit annotation: let the new one override return boundType.withoutToplevelNullAnnotation(); } return boundType; }