Upgrade rust/crates/futures to 0.3.16

Test: make
Change-Id: Ic4449b2cd92925118fd4f39ed9d5c80df9f8ab26
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index ec6442e..99dc8b0 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "fc080d153bc7bf00429ec5e2b91e2f21f2243846"
+    "sha1": "ab38fd29d3f84f8fc028fa7883e53dba423da0ee"
   }
 }
diff --git a/Android.bp b/Android.bp
index 8e70c71..f6e9a98 100644
--- a/Android.bp
+++ b/Android.bp
@@ -70,21 +70,21 @@
 
 // dependent_library ["feature_list"]
 //   autocfg-1.0.1
-//   futures-channel-0.3.15 "alloc,futures-sink,sink,std"
-//   futures-core-0.3.15 "alloc,std"
-//   futures-executor-0.3.15 "std"
-//   futures-io-0.3.15 "std"
-//   futures-macro-0.3.15
-//   futures-sink-0.3.15 "alloc,std"
-//   futures-task-0.3.15 "alloc,std"
-//   futures-util-0.3.15 "alloc,async-await,async-await-macro,channel,futures-channel,futures-io,futures-macro,futures-sink,io,memchr,proc-macro-hack,proc-macro-nested,sink,slab,std"
+//   futures-channel-0.3.16 "alloc,futures-sink,sink,std"
+//   futures-core-0.3.16 "alloc,std"
+//   futures-executor-0.3.16 "std"
+//   futures-io-0.3.16 "std"
+//   futures-macro-0.3.16
+//   futures-sink-0.3.16 "alloc,std"
+//   futures-task-0.3.16 "alloc,std"
+//   futures-util-0.3.16 "alloc,async-await,async-await-macro,channel,futures-channel,futures-io,futures-macro,futures-sink,io,memchr,proc-macro-hack,proc-macro-nested,sink,slab,std"
 //   memchr-2.4.0 "default,std"
-//   pin-project-lite-0.2.6
+//   pin-project-lite-0.2.7
 //   pin-utils-0.1.0
 //   proc-macro-hack-0.5.19
 //   proc-macro-nested-0.1.7
-//   proc-macro2-1.0.26 "default,proc-macro"
+//   proc-macro2-1.0.28 "default,proc-macro"
 //   quote-1.0.9 "default,proc-macro"
-//   slab-0.4.3 "default,std"
-//   syn-1.0.72 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit-mut"
+//   slab-0.4.4 "default,std"
+//   syn-1.0.74 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit-mut"
 //   unicode-xid-0.2.2 "default"
diff --git a/Cargo.toml b/Cargo.toml
index fec0a46..c934741 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,17 +3,16 @@
 # When uploading crates to the registry Cargo will automatically
 # "normalize" Cargo.toml files for maximal compatibility
 # with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies
+# to registry (e.g., crates.io) dependencies.
 #
-# If you believe there's an error in this file please file an
-# issue against the rust-lang/cargo repository. If you're
-# editing this file be aware that the upstream Cargo.toml
-# will likely look very different (and much more reasonable)
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
 
 [package]
 edition = "2018"
 name = "futures"
-version = "0.3.15"
+version = "0.3.16"
 authors = ["Alex Crichton <[email protected]>"]
 description = "An implementation of futures and streams featuring zero allocations,\ncomposability, and iterator-like interfaces.\n"
 homepage = "https://rust-lang.github.io/futures-rs"
@@ -30,33 +29,33 @@
 [package.metadata.playground]
 features = ["std", "async-await", "compat", "io-compat", "executor", "thread-pool"]
 [dependencies.futures-channel]
-version = "0.3.15"
+version = "0.3.16"
 features = ["sink"]
 default-features = false
 
 [dependencies.futures-core]
-version = "0.3.15"
+version = "0.3.16"
 default-features = false
 
 [dependencies.futures-executor]
-version = "0.3.15"
+version = "0.3.16"
 optional = true
 default-features = false
 
 [dependencies.futures-io]
-version = "0.3.15"
+version = "0.3.16"
 default-features = false
 
 [dependencies.futures-sink]
-version = "0.3.15"
+version = "0.3.16"
 default-features = false
 
 [dependencies.futures-task]
-version = "0.3.15"
+version = "0.3.16"
 default-features = false
 
 [dependencies.futures-util]
-version = "0.3.15"
+version = "0.3.16"
 features = ["sink"]
 default-features = false
 [dev-dependencies.assert_matches]
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index c62e99e..04cea8a 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,7 +1,7 @@
 [package]
 name = "futures"
 edition = "2018"
-version = "0.3.15"
+version = "0.3.16"
 authors = ["Alex Crichton <[email protected]>"]
 license = "MIT OR Apache-2.0"
 readme = "../README.md"
@@ -16,13 +16,13 @@
 categories = ["asynchronous"]
 
 [dependencies]
-futures-core = { path = "../futures-core", version = "0.3.15", default-features = false }
-futures-task = { path = "../futures-task", version = "0.3.15", default-features = false }
-futures-channel = { path = "../futures-channel", version = "0.3.15", default-features = false, features = ["sink"] }
-futures-executor = { path = "../futures-executor", version = "0.3.15", default-features = false, optional = true }
-futures-io = { path = "../futures-io", version = "0.3.15", default-features = false }
-futures-sink = { path = "../futures-sink", version = "0.3.15", default-features = false }
-futures-util = { path = "../futures-util", version = "0.3.15", default-features = false, features = ["sink"] }
+futures-core = { path = "../futures-core", version = "0.3.16", default-features = false }
+futures-task = { path = "../futures-task", version = "0.3.16", default-features = false }
+futures-channel = { path = "../futures-channel", version = "0.3.16", default-features = false, features = ["sink"] }
+futures-executor = { path = "../futures-executor", version = "0.3.16", default-features = false, optional = true }
+futures-io = { path = "../futures-io", version = "0.3.16", default-features = false }
+futures-sink = { path = "../futures-sink", version = "0.3.16", default-features = false }
+futures-util = { path = "../futures-util", version = "0.3.16", default-features = false, features = ["sink"] }
 
 [dev-dependencies]
 futures-executor = { path = "../futures-executor", features = ["thread-pool"] }
diff --git a/METADATA b/METADATA
index bf0471b..60344d2 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://static.crates.io/crates/futures/futures-0.3.15.crate"
+    value: "https://static.crates.io/crates/futures/futures-0.3.16.crate"
   }
-  version: "0.3.15"
+  version: "0.3.16"
   license_type: NOTICE
   last_upgrade_date {
     year: 2021
-    month: 5
-    day: 19
+    month: 8
+    day: 9
   }
 }
diff --git a/src/lib.rs b/src/lib.rs
index d15c16c..287696f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -67,7 +67,7 @@
 //!     };
 //!
 //!     // Actually execute the above future, which will invoke Future::poll and
-//!     // subsequenty chain appropriate Future::poll and methods needing executors
+//!     // subsequently chain appropriate Future::poll and methods needing executors
 //!     // to drive all futures. Eventually fut_values will be driven to completion.
 //!     let values: Vec<i32> = executor::block_on(fut_values);
 //!
@@ -80,11 +80,20 @@
 
 #![cfg_attr(feature = "read-initializer", feature(read_initializer))]
 #![cfg_attr(not(feature = "std"), no_std)]
-#![warn(missing_docs, missing_debug_implementations, rust_2018_idioms, unreachable_pub)]
-// It cannot be included in the published code because this lints have false positives in the minimum required version.
-#![cfg_attr(test, warn(single_use_lifetimes))]
-#![warn(clippy::all)]
-#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
+#![warn(
+    missing_debug_implementations,
+    missing_docs,
+    rust_2018_idioms,
+    single_use_lifetimes,
+    unreachable_pub
+)]
+#![doc(test(
+    no_crate_inject,
+    attr(
+        deny(warnings, rust_2018_idioms, single_use_lifetimes),
+        allow(dead_code, unused_assignments, unused_variables)
+    )
+))]
 #![cfg_attr(docsrs, feature(doc_cfg))]
 
 #[cfg(all(feature = "bilock", not(feature = "unstable")))]
diff --git a/tests/async_await_macros.rs b/tests/async_await_macros.rs
index 3e461b5..19833d0 100644
--- a/tests/async_await_macros.rs
+++ b/tests/async_await_macros.rs
@@ -158,6 +158,7 @@
     assert_eq!(res, 3);
 }
 
+#[cfg_attr(not(target_pointer_width = "64"), ignore)]
 #[test]
 fn select_size() {
     let fut = async {
@@ -212,6 +213,7 @@
     assert_eq!(res, 5);
 }
 
+#[cfg_attr(not(target_pointer_width = "64"), ignore)]
 #[test]
 fn select_on_non_unpin_size() {
     // The returned Future is !Unpin
diff --git a/tests/try_join.rs b/tests/try_join.rs
index 8b0b38c..0281ab8 100644
--- a/tests/try_join.rs
+++ b/tests/try_join.rs
@@ -3,7 +3,7 @@
 use futures::{executor::block_on, try_join};
 
 // TODO: This abuses https://github.com/rust-lang/rust/issues/58733 in order to
-// test behaviour of the `try_join!` macro with the never type before it is
+// test behavior of the `try_join!` macro with the never type before it is
 // stabilized. Once `!` is again stabilized this can be removed and replaced
 // with direct use of `!` below where `Never` is used.
 trait MyTrait {