docs: private void putPlaceholdersIntoMap(
        MsgNode originalMsg,
        Iterable<? extends SoyMsgPart> parts,
        Map<String, Function<Expression, Statement>> placeholderNameToPutStatement) {
      for (SoyMsgPart child : parts) {
        if (child instanceof SoyMsgRawTextPart || child instanceof SoyMsgPluralRemainderPart) {
          // raw text doesn't have placeholders and remainders use the same placeholder as plural they
          // are a member of.
          continue;
        }
        if (child instanceof SoyMsgPluralPart) {
          putPluralPartIntoMap(originalMsg, placeholderNameToPutStatement, (SoyMsgPluralPart) child);
        } else if (child instanceof SoyMsgSelectPart) {
          putSelectPartIntoMap(originalMsg, placeholderNameToPutStatement, (SoyMsgSelectPart) child);
        } else if (child instanceof SoyMsgPlaceholderPart) {
          putPlaceholderIntoMap(
              originalMsg, placeholderNameToPutStatement, (SoyMsgPlaceholderPart) child);
        } else {
          throw new AssertionError("unexpected child: " + child);
        }
      }
    }