docs: public static @Type
      int stringToEdgeType(String s) {
          s = s.toUpperCase(Locale.ENGLISH);
  
          if ("FALL_THROUGH".equals(s)) {
              return FALL_THROUGH_EDGE;
          } else if ("IFCMP".equals(s)) {
              return IFCMP_EDGE;
          } else if ("SWITCH".equals(s)) {
              return SWITCH_EDGE;
          } else if ("SWITCH_DEFAULT".equals(s)) {
              return SWITCH_DEFAULT_EDGE;
          } else if ("JSR".equals(s)) {
              return JSR_EDGE;
          } else if ("RET".equals(s)) {
              return RET_EDGE;
          } else if ("GOTO".equals(s)) {
              return GOTO_EDGE;
          } else if ("RETURN".equals(s)) {
              return RETURN_EDGE;
          } else if ("UNHANDLED_EXCEPTION".equals(s)) {
              return UNHANDLED_EXCEPTION_EDGE;
          } else if ("HANDLED_EXCEPTION".equals(s)) {
              return HANDLED_EXCEPTION_EDGE;
          } else if ("START".equals(s)) {
              return START_EDGE;
          } else if ("BACKEDGE_TARGET_EDGE".equals(s)) {
              return BACKEDGE_TARGET_EDGE;
          } else if ("BACKEDGE_SOURCE_EDGE".equals(s)) {
              return BACKEDGE_SOURCE_EDGE;
          } else if ("EXIT_EDGE".equals(s)) {
              return EXIT_EDGE;
          } else {
              throw new IllegalArgumentException("Unknown edge type: " + s);
          }
      }