message: Be defensive when parsing first operand of send/recv-done that is not channel.
  Calling channel_id() on a non-channel instruction would lead to a hard
  crash instead of parser failure.
diff: @@ -1029,6 +1029,9 @@ bool HloParserImpl::ParseInstructionRhs(HloComputation::Builder* builder,
  !ParseAttributes(attrs)) {
  return false;
  }
  + if (dynamic_cast<const HloChannelInstruction*>(operands[0]) == nullptr) {
  + return false;
  + }
  if (channel_id != operands[0]->channel_id()) {
  return false;
  }
  @@ -1062,6 +1065,9 @@ bool HloParserImpl::ParseInstructionRhs(HloComputation::Builder* builder,
  !ParseAttributes(attrs)) {
  return false;
  }
  + if (dynamic_cast<const HloChannelInstruction*>(operands[0]) == nullptr) {
  + return false;
  + }
  if (channel_id != operands[0]->channel_id()) {
  return false;
  }
  