docs: @CheckForNull
      private CheckReturnValueAnnotation parsePackage(@DottedClassName String packageName) {
          String className = ClassName.toSlashedClassName(packageName) + "/package-info";
          ClassDescriptor descriptor = DescriptorFactory.createClassDescriptor(className);
          // ClassInfoAnalysisEngine doesn't support parsing package-info to generate XClass, so use JavaClass instead
          JavaClass clazz;
          try {
              clazz = AnalysisContext.currentAnalysisContext().lookupClass(descriptor);
          } catch (ClassNotFoundException e) {
              // no annotation on package
              return null;
          }
  
          for (AnnotationEntry entry : clazz.getAnnotationEntries()) {
              @SlashedClassName
              String type = entry.getAnnotationType();
  
              switch (type) {
              case NAME_OF_CHECK_RETURN_NULL_SPOTBUGS:
                  return createSpotBugsAnnotation(entry);
              case NAME_OF_CHECK_RETURN_NULL_JSR305:
                  return createJSR305Annotation(entry);
              case NAME_OF_CHECK_RETURN_NULL_ERRORPRONE:
                  return CheckReturnValueAnnotation.createFor(When.ALWAYS);
              case NAME_OF_CAN_IGNORE_RETURN_VALUE:
                  return CheckReturnValueAnnotation.createFor(When.NEVER);
              default:
                  // check next annotation
              }
          }
  
          return null;
      }