public @Nullable @InspectionMessage String getProblemMessage(PsiExpression value) {
        SpecialField lengthField;
        PsiType type = value.getType();
        String message;
        if (type instanceof PsiArrayType) {
          lengthField = SpecialField.ARRAY_LENGTH;
          message = JavaBundle.message("inspection.redundant.operation.on.empty.array.message");
        } else if (InheritanceUtil.isInheritor(type, JAVA_UTIL_COLLECTION)) {
          lengthField = SpecialField.COLLECTION_SIZE;
          message = JavaBundle.message("inspection.redundant.operation.on.empty.collection.message");
        } else if (InheritanceUtil.isInheritor(type, JAVA_UTIL_MAP)) {
          lengthField = SpecialField.COLLECTION_SIZE;
          message = JavaBundle.message("inspection.redundant.operation.on.empty.map.message");
        } else {
          return null;
        }
        DfType dfType = CommonDataflow.getDfType(value);
        DfType length = lengthField.getFromQualifier(dfType);
        // TODO: remove 0L when refactoring is complete
        if (length.isConst(0) || length.isConst(0L)) {
          return message;
        }
        return null;
      }
public @Nullable @InspectionMessage String getProblemMessage(PsiExpression value)