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;
 }