diff --git a/src/handler.rs b/src/handler.rs
index 10b40280..f1abe25a 100644
--- a/src/handler.rs
+++ b/src/handler.rs
@@ -167,7 +167,7 @@ impl RequestHandler {
         let mut easy = Easy2::new(handler);
         easy.get_mut().handle = easy.raw();
         let id = easy.get_ref().id();
-        easy.get_mut().span.record("id", id);
+        easy.get_mut().span.record("id", &id);
 
         (easy, future)
     }
diff --git a/src/lib.rs b/src/lib.rs
index a17a6add..d14b1ae5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -240,7 +240,11 @@
     clippy::all
 )]
 // These lints suggest to use features not available in our MSRV.
-#![allow(clippy::manual_strip, clippy::match_like_matches_macro)]
+#![allow(
+    clippy::manual_strip,
+    clippy::match_like_matches_macro,
+    clippy::needless_borrow
+)]
 
 use std::convert::TryFrom;
 
diff --git a/src/util/io.rs b/src/util/io.rs
index a1b3f1d9..eaaf74e5 100644
--- a/src/util/io.rs
+++ b/src/util/io.rs
@@ -73,15 +73,15 @@ where
 pub(crate) struct Sink;
 
 impl AsyncWrite for Sink {
-    fn poll_write(self: Pin<&mut Self>, _cx: &mut Context, buf: &[u8]) -> Poll<Result<usize>> {
+    fn poll_write(self: Pin<&mut Self>, _cx: &mut Context<'_>, buf: &[u8]) -> Poll<Result<usize>> {
         Poll::Ready(Ok(buf.len()))
     }
 
-    fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context) -> Poll<Result<()>> {
+    fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Result<()>> {
         Poll::Ready(Ok(()))
     }
 
-    fn poll_close(self: Pin<&mut Self>, _cx: &mut Context) -> Poll<Result<()>> {
+    fn poll_close(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Result<()>> {
         Poll::Ready(Ok(()))
     }
 }