code: private static boolean confusingSignatures(String sig1, String sig2) {
          if (sig1.equals(sig2)) {
              return false;
          }
  
          List<String> type1 = SignatureUtils.getParameterSignatures(sig1);
          List<String> type2 = SignatureUtils.getParameterSignatures(sig2);
  
          if (type1.size() != type2.size()) {
              return false;
          }
  
          boolean foundParmDiff = false;
          for (int i = 0; i < type1.size(); i++) {
              String typeOneSig = type1.get(i);
              String typeTwoSig = type2.get(i);
  
              if (!typeOneSig.equals(typeTwoSig)) {
                  if ("Ljava/lang/Character;".equals(typeOneSig)) {
                      if (!primitiveSigs.contains(typeTwoSig)) {
                          return false;
                      }
                  } else if ("Ljava/lang/Character;".equals(typeTwoSig)) {
                      if (!primitiveSigs.contains(typeOneSig)) {
                          return false;
                      }
                  } else {
                      return false;
                  }
                  foundParmDiff = true;
              }
          }
  
          return foundParmDiff;
      }
docs: returns if one signature is a Character and the other is a primitive
  
  @param sig1
  the first method signature
  @param sig2
  the second method signature
  
  @return if one signature is a Character and the other a primitive