From 679f61cf3751ce9ca53ab64b01baef33b83db937 Mon Sep 17 00:00:00 2001
From: Rob Ede <robjtede@icloud.com>
Date: Sat, 27 Aug 2022 13:14:16 +0100
Subject: [PATCH] bump msrv to 1.59

---
 .github/workflows/ci.yml                      |  2 +-
 actix-files/CHANGES.md                        |  1 +
 actix-files/README.md                         |  2 +-
 actix-http-test/CHANGES.md                    |  1 +
 actix-http-test/README.md                     |  2 +-
 actix-http/CHANGES.md                         |  3 +++
 actix-http/README.md                          |  2 +-
 actix-multipart/CHANGES.md                    |  2 +-
 actix-multipart/README.md                     |  2 +-
 actix-router/CHANGES.md                       |  2 +-
 actix-test/CHANGES.md                         |  1 +
 actix-web-actors/README.md                    |  2 +-
 actix-web-codegen/CHANGES.md                  |  2 +-
 actix-web-codegen/README.md                   |  2 +-
 actix-web-codegen/tests/trybuild.rs           |  2 +-
 .../route-duplicate-method-fail.stderr        | 20 ++++++++++++-------
 .../trybuild/route-missing-method-fail.stderr | 20 ++++++++++++-------
 .../route-unexpected-method-fail.stderr       | 20 ++++++++++++-------
 .../trybuild/routes-missing-args-fail.stderr  | 20 ++++++++++++-------
 .../routes-missing-method-fail.stderr         | 20 ++++++++++++-------
 actix-web/CHANGES.md                          |  2 +-
 actix-web/README.md                           |  4 ++--
 awc/CHANGES.md                                |  2 ++
 clippy.toml                                   |  2 +-
 24 files changed, 88 insertions(+), 50 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2ea92080..de1e1fe1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,7 @@ jobs:
           - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin }
           - { name: Windows, os: windows-2022, triple: x86_64-pc-windows-msvc }
         version:
-          - 1.57.0 # MSRV
+          - 1.59.0 # MSRV
           - stable
 
     name: ${{ matrix.target.name }} / ${{ matrix.version }}
diff --git a/actix-files/CHANGES.md b/actix-files/CHANGES.md
index 5c0a4802..a71bf14f 100644
--- a/actix-files/CHANGES.md
+++ b/actix-files/CHANGES.md
@@ -1,6 +1,7 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 
 ## 0.6.2 - 2022-07-23
diff --git a/actix-files/README.md b/actix-files/README.md
index c3204a68..a5078c8d 100644
--- a/actix-files/README.md
+++ b/actix-files/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-files?label=latest)](https://crates.io/crates/actix-files)
 [![Documentation](https://docs.rs/actix-files/badge.svg?version=0.6.2)](https://docs.rs/actix-files/0.6.2)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![License](https://img.shields.io/crates/l/actix-files.svg)
 <br />
 [![dependency status](https://deps.rs/crate/actix-files/0.6.2/status.svg)](https://deps.rs/crate/actix-files/0.6.2)
diff --git a/actix-http-test/CHANGES.md b/actix-http-test/CHANGES.md
index 9aad2e4b..028fe3dd 100644
--- a/actix-http-test/CHANGES.md
+++ b/actix-http-test/CHANGES.md
@@ -1,6 +1,7 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.59.
 
 
 ## 3.0.0 - 2022-07-24
diff --git a/actix-http-test/README.md b/actix-http-test/README.md
index ec2bd769..25e7c684 100644
--- a/actix-http-test/README.md
+++ b/actix-http-test/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-http-test?label=latest)](https://crates.io/crates/actix-http-test)
 [![Documentation](https://docs.rs/actix-http-test/badge.svg?version=3.0.0)](https://docs.rs/actix-http-test/3.0.0)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-http-test)
 <br>
 [![Dependency Status](https://deps.rs/crate/actix-http-test/3.0.0/status.svg)](https://deps.rs/crate/actix-http-test/3.0.0)
diff --git a/actix-http/CHANGES.md b/actix-http/CHANGES.md
index 785a1b13..f13f0e56 100644
--- a/actix-http/CHANGES.md
+++ b/actix-http/CHANGES.md
@@ -1,6 +1,9 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
+### Changed
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
+
 ### Fixed
 - Avoid possibility of dispatcher getting stuck while back-pressuring I/O. [#2369]
 
diff --git a/actix-http/README.md b/actix-http/README.md
index 787d2f65..ab8f069d 100644
--- a/actix-http/README.md
+++ b/actix-http/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-http?label=latest)](https://crates.io/crates/actix-http)
 [![Documentation](https://docs.rs/actix-http/badge.svg?version=3.2.1)](https://docs.rs/actix-http/3.2.1)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-http.svg)
 <br />
 [![dependency status](https://deps.rs/crate/actix-http/3.2.1/status.svg)](https://deps.rs/crate/actix-http/3.2.1)
diff --git a/actix-multipart/CHANGES.md b/actix-multipart/CHANGES.md
index ed5c97e1..d0da40fb 100644
--- a/actix-multipart/CHANGES.md
+++ b/actix-multipart/CHANGES.md
@@ -1,7 +1,7 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
-- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 
 ## 0.4.0 - 2022-02-25
diff --git a/actix-multipart/README.md b/actix-multipart/README.md
index 0b1e2df1..21999716 100644
--- a/actix-multipart/README.md
+++ b/actix-multipart/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-multipart?label=latest)](https://crates.io/crates/actix-multipart)
 [![Documentation](https://docs.rs/actix-multipart/badge.svg?version=0.4.0)](https://docs.rs/actix-multipart/0.4.0)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-multipart.svg)
 <br />
 [![dependency status](https://deps.rs/crate/actix-multipart/0.4.0/status.svg)](https://deps.rs/crate/actix-multipart/0.4.0)
diff --git a/actix-router/CHANGES.md b/actix-router/CHANGES.md
index 1e4fc41f..ec4676ea 100644
--- a/actix-router/CHANGES.md
+++ b/actix-router/CHANGES.md
@@ -1,7 +1,7 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
-- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 
 ## 0.5.0 - 2022-02-22
diff --git a/actix-test/CHANGES.md b/actix-test/CHANGES.md
index bf5d9324..c8fe5420 100644
--- a/actix-test/CHANGES.md
+++ b/actix-test/CHANGES.md
@@ -1,6 +1,7 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 
 ## 0.1.0 - 2022-07-24
diff --git a/actix-web-actors/README.md b/actix-web-actors/README.md
index 8d64c085..a0578994 100644
--- a/actix-web-actors/README.md
+++ b/actix-web-actors/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-web-actors?label=latest)](https://crates.io/crates/actix-web-actors)
 [![Documentation](https://docs.rs/actix-web-actors/badge.svg?version=4.1.0)](https://docs.rs/actix-web-actors/4.1.0)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![License](https://img.shields.io/crates/l/actix-web-actors.svg)
 <br />
 [![dependency status](https://deps.rs/crate/actix-web-actors/4.1.0/status.svg)](https://deps.rs/crate/actix-web-actors/4.1.0)
diff --git a/actix-web-codegen/CHANGES.md b/actix-web-codegen/CHANGES.md
index 6b525a44..6f750703 100644
--- a/actix-web-codegen/CHANGES.md
+++ b/actix-web-codegen/CHANGES.md
@@ -2,7 +2,7 @@
 
 ## Unreleased - 2022-xx-xx
 - Add `#[routes]` macro to support multiple paths for one handler. [#2718]
-- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 [#2718]: https://github.com/actix/actix-web/pull/2718
 
diff --git a/actix-web-codegen/README.md b/actix-web-codegen/README.md
index 26f070f1..3f129dba 100644
--- a/actix-web-codegen/README.md
+++ b/actix-web-codegen/README.md
@@ -4,7 +4,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-web-codegen?label=latest)](https://crates.io/crates/actix-web-codegen)
 [![Documentation](https://docs.rs/actix-web-codegen/badge.svg?version=4.0.1)](https://docs.rs/actix-web-codegen/4.0.1)
-![Version](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![Version](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![License](https://img.shields.io/crates/l/actix-web-codegen.svg)
 <br />
 [![dependency status](https://deps.rs/crate/actix-web-codegen/4.0.1/status.svg)](https://deps.rs/crate/actix-web-codegen/4.0.1)
diff --git a/actix-web-codegen/tests/trybuild.rs b/actix-web-codegen/tests/trybuild.rs
index 1f7996fd..26aec7d2 100644
--- a/actix-web-codegen/tests/trybuild.rs
+++ b/actix-web-codegen/tests/trybuild.rs
@@ -1,4 +1,4 @@
-#[rustversion::stable(1.57)] // MSRV
+#[rustversion::stable(1.59)] // MSRV
 #[test]
 fn compile_macros() {
     let t = trybuild::TestCases::new();
diff --git a/actix-web-codegen/tests/trybuild/route-duplicate-method-fail.stderr b/actix-web-codegen/tests/trybuild/route-duplicate-method-fail.stderr
index fe9274bc..7eac84f3 100644
--- a/actix-web-codegen/tests/trybuild/route-duplicate-method-fail.stderr
+++ b/actix-web-codegen/tests/trybuild/route-duplicate-method-fail.stderr
@@ -4,10 +4,16 @@ error: HTTP method defined more than once: `GET`
 3 | #[route("/", method="GET", method="GET")]
   |                                   ^^^^^
 
-error[E0277]: the trait bound `fn() -> impl std::future::Future {index}: HttpServiceFactory` is not satisfied
-  --> tests/trybuild/route-duplicate-method-fail.rs:12:55
-   |
-12 |     let srv = actix_test::start(|| App::new().service(index));
-   |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future {index}`
-   |                                               |
-   |                                               required by a bound introduced by this call
+error[E0277]: the trait bound `fn() -> impl std::future::Future<Output = String> {index}: HttpServiceFactory` is not satisfied
+   --> tests/trybuild/route-duplicate-method-fail.rs:12:55
+    |
+12  |     let srv = actix_test::start(|| App::new().service(index));
+    |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future<Output = String> {index}`
+    |                                               |
+    |                                               required by a bound introduced by this call
+    |
+note: required by a bound in `App::<T>::service`
+   --> $WORKSPACE/actix-web/src/app.rs
+    |
+    |         F: HttpServiceFactory + 'static,
+    |            ^^^^^^^^^^^^^^^^^^ required by this bound in `App::<T>::service`
diff --git a/actix-web-codegen/tests/trybuild/route-missing-method-fail.stderr b/actix-web-codegen/tests/trybuild/route-missing-method-fail.stderr
index 284b2cf4..bc8497c1 100644
--- a/actix-web-codegen/tests/trybuild/route-missing-method-fail.stderr
+++ b/actix-web-codegen/tests/trybuild/route-missing-method-fail.stderr
@@ -6,10 +6,16 @@ error: The #[route(..)] macro requires at least one `method` attribute
   |
   = note: this error originates in the attribute macro `route` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error[E0277]: the trait bound `fn() -> impl std::future::Future {index}: HttpServiceFactory` is not satisfied
-  --> tests/trybuild/route-missing-method-fail.rs:12:55
-   |
-12 |     let srv = actix_test::start(|| App::new().service(index));
-   |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future {index}`
-   |                                               |
-   |                                               required by a bound introduced by this call
+error[E0277]: the trait bound `fn() -> impl std::future::Future<Output = String> {index}: HttpServiceFactory` is not satisfied
+   --> tests/trybuild/route-missing-method-fail.rs:12:55
+    |
+12  |     let srv = actix_test::start(|| App::new().service(index));
+    |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future<Output = String> {index}`
+    |                                               |
+    |                                               required by a bound introduced by this call
+    |
+note: required by a bound in `App::<T>::service`
+   --> $WORKSPACE/actix-web/src/app.rs
+    |
+    |         F: HttpServiceFactory + 'static,
+    |            ^^^^^^^^^^^^^^^^^^ required by this bound in `App::<T>::service`
diff --git a/actix-web-codegen/tests/trybuild/route-unexpected-method-fail.stderr b/actix-web-codegen/tests/trybuild/route-unexpected-method-fail.stderr
index 804ba69f..3df5d9f5 100644
--- a/actix-web-codegen/tests/trybuild/route-unexpected-method-fail.stderr
+++ b/actix-web-codegen/tests/trybuild/route-unexpected-method-fail.stderr
@@ -4,10 +4,16 @@ error: Unexpected HTTP method: `UNEXPECTED`
 3 | #[route("/", method="UNEXPECTED")]
   |                     ^^^^^^^^^^^^
 
-error[E0277]: the trait bound `fn() -> impl std::future::Future {index}: HttpServiceFactory` is not satisfied
-  --> tests/trybuild/route-unexpected-method-fail.rs:12:55
-   |
-12 |     let srv = actix_test::start(|| App::new().service(index));
-   |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future {index}`
-   |                                               |
-   |                                               required by a bound introduced by this call
+error[E0277]: the trait bound `fn() -> impl std::future::Future<Output = String> {index}: HttpServiceFactory` is not satisfied
+   --> tests/trybuild/route-unexpected-method-fail.rs:12:55
+    |
+12  |     let srv = actix_test::start(|| App::new().service(index));
+    |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future<Output = String> {index}`
+    |                                               |
+    |                                               required by a bound introduced by this call
+    |
+note: required by a bound in `App::<T>::service`
+   --> $WORKSPACE/actix-web/src/app.rs
+    |
+    |         F: HttpServiceFactory + 'static,
+    |            ^^^^^^^^^^^^^^^^^^ required by this bound in `App::<T>::service`
diff --git a/actix-web-codegen/tests/trybuild/routes-missing-args-fail.stderr b/actix-web-codegen/tests/trybuild/routes-missing-args-fail.stderr
index 8efe0682..785d6f32 100644
--- a/actix-web-codegen/tests/trybuild/routes-missing-args-fail.stderr
+++ b/actix-web-codegen/tests/trybuild/routes-missing-args-fail.stderr
@@ -12,10 +12,16 @@ error: Invalid input for macro
 4 | #[get]
   | ^^^^^^
 
-error[E0277]: the trait bound `fn() -> impl std::future::Future {index}: HttpServiceFactory` is not satisfied
-  --> tests/trybuild/routes-missing-args-fail.rs:13:55
-   |
-13 |     let srv = actix_test::start(|| App::new().service(index));
-   |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future {index}`
-   |                                               |
-   |                                               required by a bound introduced by this call
+error[E0277]: the trait bound `fn() -> impl std::future::Future<Output = String> {index}: HttpServiceFactory` is not satisfied
+   --> tests/trybuild/routes-missing-args-fail.rs:13:55
+    |
+13  |     let srv = actix_test::start(|| App::new().service(index));
+    |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future<Output = String> {index}`
+    |                                               |
+    |                                               required by a bound introduced by this call
+    |
+note: required by a bound in `App::<T>::service`
+   --> $WORKSPACE/actix-web/src/app.rs
+    |
+    |         F: HttpServiceFactory + 'static,
+    |            ^^^^^^^^^^^^^^^^^^ required by this bound in `App::<T>::service`
diff --git a/actix-web-codegen/tests/trybuild/routes-missing-method-fail.stderr b/actix-web-codegen/tests/trybuild/routes-missing-method-fail.stderr
index b3795d74..38a6d2f9 100644
--- a/actix-web-codegen/tests/trybuild/routes-missing-method-fail.stderr
+++ b/actix-web-codegen/tests/trybuild/routes-missing-method-fail.stderr
@@ -6,10 +6,16 @@ error: The #[routes] macro requires at least one `#[<method>(..)]` attribute.
   |
   = note: this error originates in the attribute macro `routes` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error[E0277]: the trait bound `fn() -> impl std::future::Future {index}: HttpServiceFactory` is not satisfied
-  --> tests/trybuild/routes-missing-method-fail.rs:12:55
-   |
-12 |     let srv = actix_test::start(|| App::new().service(index));
-   |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future {index}`
-   |                                               |
-   |                                               required by a bound introduced by this call
+error[E0277]: the trait bound `fn() -> impl std::future::Future<Output = String> {index}: HttpServiceFactory` is not satisfied
+   --> tests/trybuild/routes-missing-method-fail.rs:12:55
+    |
+12  |     let srv = actix_test::start(|| App::new().service(index));
+    |                                               ------- ^^^^^ the trait `HttpServiceFactory` is not implemented for `fn() -> impl std::future::Future<Output = String> {index}`
+    |                                               |
+    |                                               required by a bound introduced by this call
+    |
+note: required by a bound in `App::<T>::service`
+   --> $WORKSPACE/actix-web/src/app.rs
+    |
+    |         F: HttpServiceFactory + 'static,
+    |            ^^^^^^^^^^^^^^^^^^ required by this bound in `App::<T>::service`
diff --git a/actix-web/CHANGES.md b/actix-web/CHANGES.md
index f38282b4..b35007c6 100644
--- a/actix-web/CHANGES.md
+++ b/actix-web/CHANGES.md
@@ -7,7 +7,7 @@
 - Add configuration options for TLS handshake timeout via `HttpServer::{rustls, openssl}_with_config` methods. [#2752]
 
 ### Changed
-- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 [#2718]: https://github.com/actix/actix-web/pull/2718
 [#2752]: https://github.com/actix/actix-web/pull/2752
diff --git a/actix-web/README.md b/actix-web/README.md
index fdd4a864..9f00dd91 100644
--- a/actix-web/README.md
+++ b/actix-web/README.md
@@ -7,7 +7,7 @@
 
 [![crates.io](https://img.shields.io/crates/v/actix-web?label=latest)](https://crates.io/crates/actix-web)
 [![Documentation](https://docs.rs/actix-web/badge.svg?version=4.1.0)](https://docs.rs/actix-web/4.1.0)
-![MSRV](https://img.shields.io/badge/rustc-1.57+-ab6000.svg)
+![MSRV](https://img.shields.io/badge/rustc-1.59+-ab6000.svg)
 ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-web.svg)
 [![Dependency Status](https://deps.rs/crate/actix-web/4.1.0/status.svg)](https://deps.rs/crate/actix-web/4.1.0)
 <br />
@@ -33,7 +33,7 @@
 - SSL support using OpenSSL or Rustls
 - Middlewares ([Logger, Session, CORS, etc](https://actix.rs/docs/middleware/))
 - Integrates with the [`awc` HTTP client](https://docs.rs/awc/)
-- Runs on stable Rust 1.57+
+- Runs on stable Rust 1.59+
 
 ## Documentation
 
diff --git a/awc/CHANGES.md b/awc/CHANGES.md
index 3a5a49c8..7892d933 100644
--- a/awc/CHANGES.md
+++ b/awc/CHANGES.md
@@ -1,6 +1,8 @@
 # Changes
 
 ## Unreleased - 2022-xx-xx
+### Changed
+- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
 
 
 ## 3.0.1 - 2022-08-25
diff --git a/clippy.toml b/clippy.toml
index 5cccb362..abe19b3a 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -1 +1 @@
-msrv = "1.57"
+msrv = "1.59"