docs: private Expression genMapKeyCode(ExprNode keyNode) {
      Expression key = visit(keyNode);
      // We need to coerce if the value could possibly be a sanitizedcontent object
      boolean needsRuntimeCoercionLogic = false;
      SoyType type = keyNode.getType();
      for (SoyType member :
          (type instanceof UnionType ? ((UnionType) type).getMembers() : ImmutableList.of(type))) {
        SoyType.Kind kind = member.getKind();
        needsRuntimeCoercionLogic |=
            kind.isKnownStringOrSanitizedContent()
                || kind == SoyType.Kind.UNKNOWN
                || kind == SoyType.Kind.ANY;
      }
      return needsRuntimeCoercionLogic ? SOY_MAP_MAYBE_COERCE_KEY_TO_STRING.call(key) : key;
    }