docs: public static SourceLineAnnotation forFirstLineOfMethod(MethodDescriptor methodDescriptor) {
          SourceLineAnnotation result = null;
  
          try {
              Method m = Global.getAnalysisCache().getMethodAnalysis(Method.class, methodDescriptor);
              XClass xclass = Global.getAnalysisCache().getClassAnalysis(XClass.class, methodDescriptor.getClassDescriptor());
              LineNumberTable lnt = m.getLineNumberTable();
              String sourceFile = xclass.getSource();
              if (sourceFile != null && lnt != null) {
                  int firstLine = Integer.MAX_VALUE;
                  int bytecode = 0;
                  LineNumber[] entries = lnt.getLineNumberTable();
                  for (LineNumber entry : entries) {
                      if (entry.getLineNumber() < firstLine) {
                          firstLine = entry.getLineNumber();
                          bytecode = entry.getStartPC();
                      }
                  }
                  if (firstLine < Integer.MAX_VALUE) {
  
                      result = new SourceLineAnnotation(methodDescriptor.getClassDescriptor().toDottedClassName(), sourceFile,
                              firstLine, firstLine, bytecode, bytecode);
                  }
              }
          } catch (CheckedAnalysisException e) {
              // ignore
          }
  
          if (result == null) {
              result = createUnknown(methodDescriptor.getClassDescriptor().toDottedClassName());
          }
          return result;
      }