code: @Override
      public String getUserFacingMessage() {
          final StringBuilder bldr = new StringBuilder();
  
          if (signatureStatus != null && signatureStatus.size() > 1) {
              bldr.append("SEMANTIC WARNINGS");
          } else {
              bldr.append("SEMANTIC WARNING");
          }
  
          final String name = getName();
          if (name != null) {
              bldr.append(" in ");
              bldr.append(name);
          }
          bldr.append("\n\treason: ");
  
          final String msg = getMessage();
          if (msg != null) {
              bldr.append(msg);
          } else {
              bldr.append("Unknown");
          }
  
          bldr.append("\n");
  
          if (signatureStatus != null) {
              // Signature status is non-null, suppliedSignature is as well
              bldr.append("\tsignature: ");
              bldr.append(suppliedSignature);
              bldr.append("\n");
              bldr.append("\tfunction signatures: ");
              bldr.append(signatureStatus.size());
              bldr.append("\n");
  
              final Set<Entry<Signature, SemanticStatus>> entrySet =
                      signatureStatus.entrySet();
  
              for (final Entry<Signature, SemanticStatus> entry : entrySet) {
                  Signature sig = entry.getKey();
                  SemanticStatus status = entry.getValue();
                  bldr.append("\t\t");
                  bldr.append(status);
                  bldr.append(" for signature ");
                  bldr.append(sig);
                  bldr.append("\n");
              }
          }
  
          return bldr.toString();
      }
docs: {@inheritDoc}