diff --git a/actix-files/src/error.rs b/actix-files/src/error.rs
index e5f2d477..f8e32eef 100644
--- a/actix-files/src/error.rs
+++ b/actix-files/src/error.rs
@@ -21,6 +21,7 @@ impl ResponseError for FilesError {
     }
 }
 
+#[allow(clippy::enum_variant_names)]
 #[derive(Display, Debug, PartialEq)]
 pub enum UriSegmentError {
     /// The segment started with the wrapped invalid character.
diff --git a/actix-http/src/header/map.rs b/actix-http/src/header/map.rs
index 634d9282..a8fd9715 100644
--- a/actix-http/src/header/map.rs
+++ b/actix-http/src/header/map.rs
@@ -684,7 +684,7 @@ impl<'a> Iterator for Iter<'a> {
 
     fn next(&mut self) -> Option<Self::Item> {
         // handle in-progress multi value lists first
-        if let Some((ref name, ref mut vals)) = self.multi_inner {
+        if let Some((name, ref mut vals)) = self.multi_inner {
             match vals.get(self.multi_idx) {
                 Some(val) => {
                     self.multi_idx += 1;
diff --git a/actix-http/src/lib.rs b/actix-http/src/lib.rs
index d22e1ee4..17ee3ff2 100644
--- a/actix-http/src/lib.rs
+++ b/actix-http/src/lib.rs
@@ -14,7 +14,7 @@
 //! [rustls]: https://crates.io/crates/rustls
 //! [trust-dns]: https://crates.io/crates/trust-dns
 
-#![deny(rust_2018_idioms, nonstandard_style)]
+#![deny(rust_2018_idioms, nonstandard_style, clippy::uninit_assumed_init)]
 #![allow(
     clippy::type_complexity,
     clippy::too_many_arguments,
diff --git a/actix-http/src/message.rs b/actix-http/src/message.rs
index e85d686b..84125fb3 100644
--- a/actix-http/src/message.rs
+++ b/actix-http/src/message.rs
@@ -209,7 +209,7 @@ impl RequestHeadType {
 impl AsRef<RequestHead> for RequestHeadType {
     fn as_ref(&self) -> &RequestHead {
         match self {
-            RequestHeadType::Owned(head) => &head,
+            RequestHeadType::Owned(head) => head,
             RequestHeadType::Rc(head, _) => head.as_ref(),
         }
     }
@@ -363,7 +363,7 @@ impl<T: Head> std::ops::Deref for Message<T> {
     type Target = T;
 
     fn deref(&self) -> &Self::Target {
-        &self.head.as_ref()
+        self.head.as_ref()
     }
 }
 
diff --git a/actix-router/src/path.rs b/actix-router/src/path.rs
index e29591f9..9af7b0b8 100644
--- a/actix-router/src/path.rs
+++ b/actix-router/src/path.rs
@@ -125,7 +125,7 @@ impl<T: ResourcePath> Path<T> {
         for (seg_name, val) in self.segments.iter() {
             if name == seg_name {
                 return match val {
-                    PathItem::Static(ref s) => Some(&s),
+                    PathItem::Static(ref s) => Some(s),
                     PathItem::Segment(s, e) => {
                         Some(&self.path.path()[(*s as usize)..(*e as usize)])
                     }
@@ -183,7 +183,7 @@ impl<'a, T: ResourcePath> Iterator for PathIter<'a, T> {
         if self.idx < self.params.segment_count() {
             let idx = self.idx;
             let res = match self.params.segments[idx].1 {
-                PathItem::Static(ref s) => &s,
+                PathItem::Static(ref s) => s,
                 PathItem::Segment(s, e) => &self.params.path.path()[(s as usize)..(e as usize)],
             };
             self.idx += 1;
@@ -207,7 +207,7 @@ impl<T: ResourcePath> Index<usize> for Path<T> {
 
     fn index(&self, idx: usize) -> &str {
         match self.segments[idx].1 {
-            PathItem::Static(ref s) => &s,
+            PathItem::Static(ref s) => s,
             PathItem::Segment(s, e) => &self.path.path()[(s as usize)..(e as usize)],
         }
     }
diff --git a/actix-router/src/resource.rs b/actix-router/src/resource.rs
index 61ff587a..69e10b2b 100644
--- a/actix-router/src/resource.rs
+++ b/actix-router/src/resource.rs
@@ -276,7 +276,7 @@ impl ResourceDef {
                 let mut pattern_data = Vec::new();
 
                 for pattern in &patterns {
-                    match ResourceDef::parse(&pattern, false, true) {
+                    match ResourceDef::parse(pattern, false, true) {
                         (PatternType::Dynamic(re, names), _) => {
                             re_set.push(re.as_str().to_owned());
                             pattern_data.push((re, names));
@@ -790,7 +790,7 @@ impl ResourceDef {
                     profile_section!(pattern_dynamic_extract_captures);
 
                     for (no, name) in names.iter().enumerate() {
-                        if let Some(m) = captures.name(&name) {
+                        if let Some(m) = captures.name(name) {
                             segments[no] = PathItem::Segment(m.start() as u16, m.end() as u16);
                         } else {
                             log::error!(
@@ -820,7 +820,7 @@ impl ResourceDef {
                 };
 
                 for (no, name) in names.iter().enumerate() {
-                    if let Some(m) = captures.name(&name) {
+                    if let Some(m) = captures.name(name) {
                         segments[no] = PathItem::Segment(m.start() as u16, m.end() as u16);
                     } else {
                         log::error!("Dynamic path match but not all segments found: {}", name);
diff --git a/src/http/header/content_disposition.rs b/src/http/header/content_disposition.rs
index 9f67baff..6e75fde9 100644
--- a/src/http/header/content_disposition.rs
+++ b/src/http/header/content_disposition.rs
@@ -457,7 +457,7 @@ impl Header for ContentDisposition {
 
     fn parse<T: crate::HttpMessage>(msg: &T) -> Result<Self, crate::error::ParseError> {
         if let Some(h) = msg.headers().get(&Self::name()) {
-            Self::from_raw(&h)
+            Self::from_raw(h)
         } else {
             Err(crate::error::ParseError::Header)
         }
diff --git a/src/middleware/logger.rs b/src/middleware/logger.rs
index bbb0e3dc..0f09b6ad 100644
--- a/src/middleware/logger.rs
+++ b/src/middleware/logger.rs
@@ -553,7 +553,7 @@ impl FormatText {
                 *self = FormatText::Str(s.to_string());
             }
             FormatText::RemoteAddr => {
-                let s = if let Some(ref peer) = req.connection_info().remote_addr() {
+                let s = if let Some(peer) = req.connection_info().remote_addr() {
                     FormatText::Str((*peer).to_string())
                 } else {
                     FormatText::Str("-".to_string())
diff --git a/src/request.rs b/src/request.rs
index 41c8252a..59850b4c 100644
--- a/src/request.rs
+++ b/src/request.rs
@@ -184,7 +184,7 @@ impl HttpRequest {
         U: IntoIterator<Item = I>,
         I: AsRef<str>,
     {
-        self.resource_map().url_for(&self, name, elements)
+        self.resource_map().url_for(self, name, elements)
     }
 
     /// Generate url for named resource
@@ -199,7 +199,7 @@ impl HttpRequest {
     #[inline]
     /// Get a reference to a `ResourceMap` of current application.
     pub fn resource_map(&self) -> &ResourceMap {
-        &self.app_state().rmap()
+        self.app_state().rmap()
     }
 
     /// Peer socket address.
diff --git a/src/service.rs b/src/service.rs
index 14819940..48167e5b 100644
--- a/src/service.rs
+++ b/src/service.rs
@@ -117,7 +117,7 @@ impl ServiceRequest {
     /// This method returns reference to the request head
     #[inline]
     pub fn head(&self) -> &RequestHead {
-        &self.req.head()
+        self.req.head()
     }
 
     /// This method returns reference to the request head
diff --git a/src/types/either.rs b/src/types/either.rs
index d3b00358..35e63cec 100644
--- a/src/types/either.rs
+++ b/src/types/either.rs
@@ -253,7 +253,7 @@ where
                         Ok(bytes) => {
                             let fallback = bytes.clone();
                             let left =
-                                L::from_request(&this.req, &mut payload_from_bytes(bytes));
+                                L::from_request(this.req, &mut payload_from_bytes(bytes));
                             EitherExtractState::Left { left, fallback }
                         }
                         Err(err) => break Err(EitherExtractError::Bytes(err)),
@@ -265,7 +265,7 @@ where
                         Ok(extracted) => break Ok(Either::Left(extracted)),
                         Err(left_err) => {
                             let right = R::from_request(
-                                &this.req,
+                                this.req,
                                 &mut payload_from_bytes(mem::take(fallback)),
                             );
                             EitherExtractState::Right {
diff --git a/src/types/json.rs b/src/types/json.rs
index fc02c885..ab9708c5 100644
--- a/src/types/json.rs
+++ b/src/types/json.rs
@@ -425,7 +425,7 @@ where
                         }
                     }
                     None => {
-                        let json = serde_json::from_slice::<T>(&buf)
+                        let json = serde_json::from_slice::<T>(buf)
                             .map_err(JsonPayloadError::Deserialize)?;
                         return Poll::Ready(Ok(json));
                     }