diff --git a/src/condition.rs b/src/condition.rs
index 7d03aa7ede60f8bbdc3d3fcd199b8863347920af..914729bb4b79f8e2de58f05d876199618d327996 100644
--- a/src/condition.rs
+++ b/src/condition.rs
@@ -187,7 +187,7 @@ async fn device_is_connected_to_one_of(
 ) -> Result<bool> {
     match device_identifier.to_device(conn).await? {
         Some(device) => {
-            let active_connections: Vec<ActiveConnectionWrapper> = stream::iter(connections)
+            let active_connections: Vec<ActiveConnectionWrapper<'_>> = stream::iter(connections)
                 .filter_map(|connection_identifier| async move {
                     match connection_identifier.to_active_connection(conn).await {
                         Ok(active_connection) => active_connection,
diff --git a/src/dbus_wrappers/manager.rs b/src/dbus_wrappers/manager.rs
index 83413db58bd56e2ba605740a6b73d52f3cf40b96..30a6471e6966be401f3540f4adc73077240b044d 100644
--- a/src/dbus_wrappers/manager.rs
+++ b/src/dbus_wrappers/manager.rs
@@ -80,7 +80,7 @@ impl<'a> ManagerWrapper<'a> {
 
         let stream = stream::iter(active_connections);
 
-        let mut matches: Vec<ActiveConnectionWrapper> = stream
+        let mut matches: Vec<ActiveConnectionWrapper<'_>> = stream
             .filter_map(|active_connection| async move {
                 let current_uuid = active_connection.get_uuid().await;
 
diff --git a/src/dbus_wrappers/signal.rs b/src/dbus_wrappers/signal.rs
index 4089f3569be608808632807cf68ab08c513a978c..b8d84b0479b2e2740209b5eed6c348e62e3ba83e 100644
--- a/src/dbus_wrappers/signal.rs
+++ b/src/dbus_wrappers/signal.rs
@@ -55,8 +55,8 @@ impl<T> SignalStreamWrapper<T> {
     }
 
     pub async fn dispose(&self) -> anyhow::Result<()> {
-        let result = self.conn.remove_match(self.msg_match.token()).await?;
+        self.conn.remove_match(self.msg_match.token()).await?;
 
-        Ok(result)
+        Ok(())
     }
 }
diff --git a/src/event.rs b/src/event.rs
index 6d72c7cd09090644b505474f08017f32f575fa14..3c82f15c6b8e8543f85a97f02030424b8a969eaa 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -168,9 +168,9 @@ impl Trigger {
             },
             (Event::StateChanged { state }, Trigger::StateChanged { states }) => {
                 Ok(states.contains(state))
-            },
-            (Event::DaemonStarted, Trigger::DaemonStarted) => {Ok(true)},
-            (Event::DaemonStopping, Trigger::DaemonStopping) => {Ok(true)},
+            }
+            (Event::DaemonStarted, Trigger::DaemonStarted)
+            | (Event::DaemonStopping, Trigger::DaemonStopping) => Ok(true),
             _ => Ok(false),
         }
     }
diff --git a/src/main.rs b/src/main.rs
index 2857659fd12482dfccf7ec508559823994cfb6b8..5b783f8564a131053239eeb23c1cbcdf773ab7de 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,12 @@
+#![deny(
+    rust_2018_idioms,
+    nonstandard_style,
+    clippy::doc_markdown,
+    clippy::match_bool,
+    clippy::match_same_arms
+)]
+#![warn(future_incompatible)]
+
 use collective::{
     cli::{AppOpts, ConfigurableAppOpts},
     config::ConfigFileFormat,
@@ -89,8 +98,7 @@ async fn inner_main() -> anyhow::Result<()> {
     let mut task_handles = vec![];
 
     let watcher_handle = watcher::watch(&conn, stop_signal_tx.subscribe(), event_tx).await?;
-    let event_handler_handle =
-        handle_events(conn.clone(), config, event_rx).await?;
+    let event_handler_handle = handle_events(conn.clone(), config, event_rx).await?;
 
     task_handles.push(watcher_handle);
     task_handles.push(event_handler_handle);