diff --git a/quiche/quic/core/http/quic_connection_migration_manager_test.cc b/quiche/quic/core/http/quic_connection_migration_manager_test.cc
index a24aaca..71bfac6 100644
--- a/quiche/quic/core/http/quic_connection_migration_manager_test.cc
+++ b/quiche/quic/core/http/quic_connection_migration_manager_test.cc
@@ -287,9 +287,6 @@
   TestStream(QuicStreamId id, QuicSpdySession* session, StreamType type)
       : QuicSpdyStream(id, session, type) {}
 
-  TestStream(PendingStream& pending, QuicSpdySession* session)
-      : QuicSpdyStream(pending, session) {}
-
   void OnBodyAvailable() override {}
 
   MOCK_METHOD(void, OnCanWrite, (), (override));
diff --git a/quiche/quic/core/http/quic_spdy_client_stream.cc b/quiche/quic/core/http/quic_spdy_client_stream.cc
index 3b33ab6..07cc2a5 100644
--- a/quiche/quic/core/http/quic_spdy_client_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_client_stream.cc
@@ -33,15 +33,6 @@
       header_bytes_written_(0),
       session_(session) {}
 
-QuicSpdyClientStream::QuicSpdyClientStream(PendingStream& pending,
-                                           QuicSpdyClientSession* session)
-    : QuicSpdyStream(pending, session),
-      content_length_(-1),
-      response_code_(0),
-      header_bytes_read_(0),
-      header_bytes_written_(0),
-      session_(session) {}
-
 QuicSpdyClientStream::~QuicSpdyClientStream() = default;
 
 bool QuicSpdyClientStream::CopyAndValidateHeaders(
diff --git a/quiche/quic/core/http/quic_spdy_client_stream.h b/quiche/quic/core/http/quic_spdy_client_stream.h
index bf3dc2d..6b44575 100644
--- a/quiche/quic/core/http/quic_spdy_client_stream.h
+++ b/quiche/quic/core/http/quic_spdy_client_stream.h
@@ -25,8 +25,6 @@
  public:
   QuicSpdyClientStream(QuicStreamId id, QuicSpdyClientSession* session,
                        StreamType type);
-  QuicSpdyClientStream(PendingStream& pending,
-                       QuicSpdyClientSession* spdy_session);
   QuicSpdyClientStream(const QuicSpdyClientStream&) = delete;
   QuicSpdyClientStream& operator=(const QuicSpdyClientStream&) = delete;
   ~QuicSpdyClientStream() override;
diff --git a/quiche/quic/core/http/quic_spdy_session_test.cc b/quiche/quic/core/http/quic_spdy_session_test.cc
index bc2005b..adf2cd8 100644
--- a/quiche/quic/core/http/quic_spdy_session_test.cc
+++ b/quiche/quic/core/http/quic_spdy_session_test.cc
@@ -242,9 +242,6 @@
   TestStream(QuicStreamId id, QuicSpdySession* session, StreamType type)
       : QuicSpdyStream(id, session, type) {}
 
-  TestStream(PendingStream& pending, QuicSpdySession* session)
-      : QuicSpdyStream(pending, session) {}
-
   using QuicStream::CloseWriteSide;
 
   void OnBodyAvailable() override {}
diff --git a/quiche/quic/core/quic_session_test.cc b/quiche/quic/core/quic_session_test.cc
index 73493a5..b121155 100644
--- a/quiche/quic/core/quic_session_test.cc
+++ b/quiche/quic/core/quic_session_test.cc
@@ -305,8 +305,8 @@
     return stream;
   }
 
-  TestStream* CreateIncomingStream(PendingStream* pending) {
-    TestStream* stream = new TestStream(*pending, this);
+  TestStream* CreateIncomingStream(PendingStream& pending) {
+    TestStream* stream = new TestStream(pending, this);
     ActivateStream(absl::WrapUnique(stream));
     ++num_incoming_streams_created_;
     return stream;
@@ -317,14 +317,14 @@
   // receiving stream frames.
   QuicStream* ProcessBidirectionalPendingStream(
       PendingStream& pending) override {
-    return CreateIncomingStream(&pending);
+    return CreateIncomingStream(pending);
   }
   QuicStream* ProcessReadUnidirectionalPendingStream(
       PendingStream& pending) override {
     struct iovec iov;
     if (pending.sequencer()->GetReadableRegion(&iov)) {
       // Create TestStream once the first byte is received.
-      return CreateIncomingStream(&pending);
+      return CreateIncomingStream(pending);
     }
     return nullptr;
   }
