diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 8c2f86a..bb048e1 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -5257,8 +5257,8 @@
                                         const QuicStopWaitingFrame& frame,
                                         QuicDataWriter* writer) {
   DCHECK(!VersionHasIetfInvariantHeader(version_.transport_version));
-  DCHECK(frame.least_unacked.IsInitialized() &&
-         header.packet_number >= frame.least_unacked);
+  DCHECK(frame.least_unacked.IsInitialized());
+  DCHECK_GE(header.packet_number, frame.least_unacked);
   const uint64_t least_unacked_delta =
       header.packet_number - frame.least_unacked;
   const uint64_t length_shift = header.packet_number_length * 8;
@@ -6093,8 +6093,8 @@
 void QuicFramer::InferPacketHeaderTypeFromVersion() {
   // This function should only be called when server connection negotiates the
   // version.
-  DCHECK(perspective_ == Perspective::IS_SERVER &&
-         !infer_packet_header_type_from_version_);
+  DCHECK_EQ(perspective_, Perspective::IS_SERVER);
+  DCHECK(!infer_packet_header_type_from_version_);
   infer_packet_header_type_from_version_ = true;
 }
 
diff --git a/quic/core/quic_received_packet_manager_test.cc b/quic/core/quic_received_packet_manager_test.cc
index 9ce50dd..fd27663 100644
--- a/quic/core/quic_received_packet_manager_test.cc
+++ b/quic/core/quic_received_packet_manager_test.cc
@@ -94,7 +94,8 @@
   }
 
   void CheckAckTimeout(QuicTime time) {
-    DCHECK(HasPendingAck() && received_manager_.ack_timeout() == time);
+    DCHECK(HasPendingAck());
+    DCHECK_EQ(received_manager_.ack_timeout(), time);
     if (time <= clock_.ApproximateNow()) {
       // ACK timeout expires, send an ACK.
       received_manager_.ResetAckStates();
diff --git a/quic/core/quic_write_blocked_list.h b/quic/core/quic_write_blocked_list.h
index b80eca6..c987112 100644
--- a/quic/core/quic_write_blocked_list.h
+++ b/quic/core/quic_write_blocked_list.h
@@ -145,8 +145,8 @@
   void RegisterStream(QuicStreamId stream_id,
                       bool is_static_stream,
                       const spdy::SpdyStreamPrecedence& precedence) {
-    DCHECK(!priority_write_scheduler_->StreamRegistered(stream_id) &&
-           PrecedenceMatchesSchedulerType(precedence));
+    DCHECK(!priority_write_scheduler_->StreamRegistered(stream_id));
+    DCHECK(PrecedenceMatchesSchedulerType(precedence));
     if (is_static_stream) {
       static_stream_collection_.Register(stream_id);
       return;
@@ -165,8 +165,8 @@
 
   void UpdateStreamPriority(QuicStreamId stream_id,
                             const spdy::SpdyStreamPrecedence& new_precedence) {
-    DCHECK(!static_stream_collection_.IsRegistered(stream_id) &&
-           PrecedenceMatchesSchedulerType(new_precedence));
+    DCHECK(!static_stream_collection_.IsRegistered(stream_id));
+    DCHECK(PrecedenceMatchesSchedulerType(new_precedence));
     priority_write_scheduler_->UpdateStreamPrecedence(stream_id,
                                                       new_precedence);
   }
