private static PsiWildcardType createDownwardProjection(PsiManager manager, PsiType bound) {
      PsiType downwardProjection = getDownwardProjection(bound);
      return downwardProjection != PsiTypes.nullType() ? PsiWildcardType.createSuper(manager, downwardProjection)
                                                       : PsiWildcardType.createUnbounded(manager);
    }
private static PsiWildcardType createDownwardProjection(PsiManager manager, PsiType bound)