Update async-stream and async-stream-impl to 0.3.6

Test: treehugger
Change-Id: I590123d8f4fe593e06cacec684296bfbb80b4af8
diff --git a/crates/async-stream-impl/.android-checksum.json b/crates/async-stream-impl/.android-checksum.json
index 27df696..6e09cdb 100644
--- a/crates/async-stream-impl/.android-checksum.json
+++ b/crates/async-stream-impl/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"767b664bae40d2075fd7887afdec649f0ab36d9e112c2dba93d62dc34dd72020","Android.bp":"96ab42f04228a484e6ad76ffacf5ff7244168bf1b3c5d74270572138b65daeaa","Cargo.toml":"2375783628e541d3c6f6816588da50ba935ee96e877995b3aeeb164fda7d40a8","LICENSE":"91082263680ee4bff8afdf40be03814231c4372e71daac0260a975337400b98b","METADATA":"3187251957fbecbb9b21230abc1a605527c2feeb7a6f3837aee1947fe20480e0","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","TEST_MAPPING":"43e2cf8ae35c5ef457ca9c08ad1d0ba2d47f7b7aade538d11115f9aafd40cc80","cargo_embargo.json":"aa45a963da01d3f018be316cd5b7646a5b413ce2611c5218f2914d2e8a9efd0e","patches/lib.diff":"fe0c7dacbe88947e17b84340ff9a1ff798aa6477a6444c8cf5bb26bfa2f1bcb7","src/lib.rs":"13abe9413fbf0f99aea263305d1b7c18d6916964f717ec3e2671ad5f8ad24aa4"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"de9810e9d94e3c96c800c147eaeab1e9fd92c3f5a9ca9fc0bb369995ee9f5bfc","Android.bp":"26299825397cac3b250fb97a48dc727369327f77998957e44a24588f87b88361","Cargo.toml":"df0e3db7d5e0fd74076a14468cf98241d8714bc679c3629d66b55084c5ec32ea","LICENSE":"91082263680ee4bff8afdf40be03814231c4372e71daac0260a975337400b98b","METADATA":"82347b33bf6149dfa0883b742eb58f3abe1f34628e0e59dc2e3e5cd96c7a2c62","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","TEST_MAPPING":"43e2cf8ae35c5ef457ca9c08ad1d0ba2d47f7b7aade538d11115f9aafd40cc80","cargo_embargo.json":"aa45a963da01d3f018be316cd5b7646a5b413ce2611c5218f2914d2e8a9efd0e","patches/lib.diff":"fe0c7dacbe88947e17b84340ff9a1ff798aa6477a6444c8cf5bb26bfa2f1bcb7","src/lib.rs":"8f5283ccfb0a058b1a09b6749d25f736e9f1d9d4341fe5f69395ecf7bebb454e"}}
\ No newline at end of file
diff --git a/crates/async-stream-impl/.cargo-checksum.json b/crates/async-stream-impl/.cargo-checksum.json
index 2c49a9a..87984c5 100644
--- a/crates/async-stream-impl/.cargo-checksum.json
+++ b/crates/async-stream-impl/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"913f0add50ab2cfe79fbd9d026e5d94b2edf8215472cd5a08d97044567b7d051","LICENSE":"157d381f6304eba77459fc10dfb5b1b22fc0d04e384a32865f32d8e67a34c0eb","src/lib.rs":"2e6390ba6770fb457f2db6a5cbe45725ea64e636fe3b8efc11ef6adf4ae3b63e"},"package":"16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"}
\ No newline at end of file
+{"files":{"Cargo.toml":"0a6ec9f20c5312e8ec19d902cd330a69b3cf8a14a1081faaa6540046652b9f92","LICENSE":"157d381f6304eba77459fc10dfb5b1b22fc0d04e384a32865f32d8e67a34c0eb","src/lib.rs":"71ec1ba96d3ac995fbe1adcf29a492eb1ad9ea28922c07521416c4291e627081"},"package":"c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"}
\ No newline at end of file
diff --git a/crates/async-stream-impl/Android.bp b/crates/async-stream-impl/Android.bp
index 24d776f..48b943e 100644
--- a/crates/async-stream-impl/Android.bp
+++ b/crates/async-stream-impl/Android.bp
@@ -17,9 +17,9 @@
     name: "libasync_stream_impl",
     crate_name: "async_stream_impl",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.6",
     crate_root: "src/lib.rs",
-    edition: "2018",
+    edition: "2021",
     rustlibs: [
         "libproc_macro2",
         "libquote",
diff --git a/crates/async-stream-impl/Cargo.toml b/crates/async-stream-impl/Cargo.toml
index 51f8dd0..6e492ff 100644
--- a/crates/async-stream-impl/Cargo.toml
+++ b/crates/async-stream-impl/Cargo.toml
@@ -10,20 +10,28 @@
 # See Cargo.toml.orig for the original contents.
 
 [package]
-edition = "2018"
-rust-version = "1.56"
+edition = "2021"
+rust-version = "1.65"
 name = "async-stream-impl"
-version = "0.3.5"
+version = "0.3.6"
 authors = ["Carl Lerche <[email protected]>"]
+build = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "proc macros for async-stream crate"
+readme = false
 license = "MIT"
 repository = "https://github.com/tokio-rs/async-stream"
 
 [lib]
+name = "async_stream_impl"
+path = "src/lib.rs"
 proc-macro = true
 
 [dependencies.proc-macro2]
-version = "1"
+version = "1.0.60"
 
 [dependencies.quote]
 version = "1"
diff --git a/crates/async-stream-impl/METADATA b/crates/async-stream-impl/METADATA
index 510a3aa..53263c8 100644
--- a/crates/async-stream-impl/METADATA
+++ b/crates/async-stream-impl/METADATA
@@ -1,17 +1,17 @@
 name: "async-stream-impl"
 description: "proc macros for async-stream crate"
 third_party {
-  version: "0.3.5"
+  version: "0.3.6"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
-    month: 11
-    day: 10
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/async-stream-impl"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/async-stream-impl/async-stream-impl-0.3.5.crate"
-    version: "0.3.5"
+    value: "https://static.crates.io/crates/async-stream-impl/async-stream-impl-0.3.6.crate"
+    version: "0.3.6"
   }
 }
diff --git a/crates/async-stream-impl/src/lib.rs b/crates/async-stream-impl/src/lib.rs
index 8a9561b..7649d5b 100644
--- a/crates/async-stream-impl/src/lib.rs
+++ b/crates/async-stream-impl/src/lib.rs
@@ -66,7 +66,7 @@
                         tokens = rest.into_iter().peekable();
                     }
                     Err(e) => {
-                        out.append_all(&mut e.to_compile_error().into_iter());
+                        out.append_all(e.to_compile_error().into_iter());
                         *modified = true;
                         return;
                     }
@@ -121,10 +121,19 @@
 
                 // let ident = &self.yielder;
 
-                *i = if self.is_try {
-                    syn::parse_quote! { __yield_tx.send(::core::result::Result::Ok(#value_expr)).await }
+                let yield_expr = if self.is_try {
+                    quote! { __yield_tx.send(::core::result::Result::Ok(#value_expr)).await }
                 } else {
-                    syn::parse_quote! { __yield_tx.send(#value_expr).await }
+                    quote! { __yield_tx.send(#value_expr).await }
+                };
+                *i = syn::parse_quote! {
+                    {
+                        #[allow(unreachable_code)]
+                        if false {
+                            break '__async_stream_private_check_scope (loop {});
+                        }
+                        #yield_expr
+                    }
                 };
             }
             syn::Expr::Try(try_expr) => {
@@ -226,8 +235,10 @@
     quote!({
         let (mut __yield_tx, __yield_rx) = unsafe { #crate_path::__private::yielder::pair() };
         #crate_path::__private::AsyncStream::new(__yield_rx, async move {
-            #dummy_yield
-            #(#stmts)*
+            '__async_stream_private_check_scope: {
+                #dummy_yield
+                #(#stmts)*
+            }
         })
     })
     .into()
@@ -260,8 +271,10 @@
     quote!({
         let (mut __yield_tx, __yield_rx) = unsafe { #crate_path::__private::yielder::pair() };
         #crate_path::__private::AsyncStream::new(__yield_rx, async move {
-            #dummy_yield
-            #(#stmts)*
+            '__async_stream_private_check_scope: {
+                #dummy_yield
+                #(#stmts)*
+            }
         })
     })
     .into()
diff --git a/crates/async-stream/.android-checksum.json b/crates/async-stream/.android-checksum.json
index 69c1e3c..97bfc74 100644
--- a/crates/async-stream/.android-checksum.json
+++ b/crates/async-stream/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"46d48ad7a7b117189bfe7b1e0e041a69a83e110847442bfcf83184f5988d1d64","Android.bp":"cd86d1fe1b0f58369eac5d5ee4b24cccfbd0f242c873c266e43468827642600c","CHANGELOG.md":"3a21892b745b6380f538451457cbfa28026741ac5e8da8abd3bd3ec0a5d01ff1","Cargo.lock":"07f9887bfb432fdac60d9f93d20352f085e7fd8fe526d750519d1ea5d00aff06","Cargo.toml":"a9529cab7fcbebec4f46c89b60b23d901a2ab24577ab325743e2116823a60102","LICENSE":"91082263680ee4bff8afdf40be03814231c4372e71daac0260a975337400b98b","METADATA":"a757f4c9f2aee11eced7b3bfbce52d669fa2c194c01deaed347cbffae6dca2da","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"f0806a491d2976eff281a0e3b81cad943ddd5dbcfb7b3a690502a1d5ca3429c7","README.tpl":"e8c2900699fa59ea7a57feef0a9d91bca4cb4dc0e628192b26df11251338101a","TEST_MAPPING":"c1b16be00743c49de6738602d1ccf26f85d9b17572099062574e43ef6381b3ac","cargo_embargo.json":"5e34a57533730dbe4f69fd74d6fd4fad1ad2c236b1bf4e6c623185196ea0641f","examples/tcp_accept.rs":"72940097b7695feab435843fdb4f702f306897c6785f8eb53457924b2c8aec55","src/async_stream.rs":"6405184bfe29f8b0f79ddc08006569d34d8f7c78386378e3dcfadd14205c16fb","src/lib.rs":"1fb9494c50ee63747fba55e434f1b3c00e6d87ee699dd3f46b16ed5facc71ebf","src/next.rs":"6623bff128133cc2e6c6109b2f574d384957aad2a1873dbf0aa1678c8c1185ad","src/yielder.rs":"f52ca4154c4e177f31d423d56400fc68c269efb1d6cf539e2a0a7c3890a4c83e","tests/for_await.rs":"75a8c89607ed676127ac635378eb939a127d1c1a880ca54e8af41304d9c08d8e","tests/spans_preserved.rs":"c5ec0ce7737636dcbb36fba773b6938b010e08238b89e4d495fbcd6269684266","tests/stream.rs":"9b12aa0514c5cced818a797dc1ba554c10154f665a25eee45aa50a2d7f9e5e1b","tests/try_stream.rs":"4508cf64e4f74aff6b8c48bd9d1e442e5fb7c10a2796370833969bd432ae3933","tests/ui/yield_bad_expr_in_macro.rs":"3f5e39a63d331613a78a0eacc5709d216ced8b191ef48fb8bff9d5a84e1c774b","tests/ui/yield_bad_expr_in_macro.stderr":"58fb82304e9f2b3301a4e108a736c8a3cbd445f86db730065f9a7198b817e37a","tests/ui/yield_in_async.rs":"607ed44a432759f337e87884efb2daeca475025f022f55d471bf68c82b00f72c","tests/ui/yield_in_async.stderr":"3823b3c79619d17258b17dd050300db0c75e96cbd2cce0ac08fad21073c31213","tests/ui/yield_in_closure.rs":"151793f2d8676476e95d0539cb8b56c1c6f119c4027168ef0f392316aa2e13f6","tests/ui/yield_in_closure.stderr":"3d46c672d0bf18ee749c39b5bd697b3d2cb0b8eec654ae43995f7f76e1f2fa7d","tests/ui/yield_in_nested_fn.rs":"6445989b2556adece9a9aca66d13bfdb9abd68e55d343f4f261cfe1281132703","tests/ui/yield_in_nested_fn.stderr":"45d843c439d25b136f40fb39dc346dfa3a30c42bb0f36a3f71c1aa24fbef0b94"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"140749fe925cfe0d32cbd86a2a5385acb2ab91b0d4ccfe2d0a1fb3c5fddca0d6","Android.bp":"3dfae7d0981346bca97b119e88ee4f01b2c78895f1d3bf5d8bd067324debefac","CHANGELOG.md":"0adacb1536b92bf26b6aa977fab9884b89d11c1862e2f76edd35da5e40167afc","Cargo.lock":"ab6e1732fde04c12a7ca825370feee0b645862d132142dda59deb2f4285577ce","Cargo.toml":"ebc7d4676552846c04ba6b2051f2b0b7b799513d5814f5aaadf6f1fdcade29f1","LICENSE":"91082263680ee4bff8afdf40be03814231c4372e71daac0260a975337400b98b","METADATA":"e2a429dab6b87a18a06305a2751fbfd710075ea4392f5d7fe89f9e4f4346f6d7","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"452bd87c1831a30eba219774671414f90c2d41c001808ad4002fbb1acec5cd05","README.tpl":"e8c2900699fa59ea7a57feef0a9d91bca4cb4dc0e628192b26df11251338101a","TEST_MAPPING":"c1b16be00743c49de6738602d1ccf26f85d9b17572099062574e43ef6381b3ac","cargo_embargo.json":"5e34a57533730dbe4f69fd74d6fd4fad1ad2c236b1bf4e6c623185196ea0641f","examples/tcp_accept.rs":"72940097b7695feab435843fdb4f702f306897c6785f8eb53457924b2c8aec55","src/async_stream.rs":"6405184bfe29f8b0f79ddc08006569d34d8f7c78386378e3dcfadd14205c16fb","src/lib.rs":"1fb9494c50ee63747fba55e434f1b3c00e6d87ee699dd3f46b16ed5facc71ebf","src/next.rs":"6623bff128133cc2e6c6109b2f574d384957aad2a1873dbf0aa1678c8c1185ad","src/yielder.rs":"731d15640dbdf0a9c75b4f645a89c166b1d68f18e3f6d8fffa17f13a8ba8736d","tests/for_await.rs":"75a8c89607ed676127ac635378eb939a127d1c1a880ca54e8af41304d9c08d8e","tests/spans_preserved.rs":"c5ec0ce7737636dcbb36fba773b6938b010e08238b89e4d495fbcd6269684266","tests/stream.rs":"9b12aa0514c5cced818a797dc1ba554c10154f665a25eee45aa50a2d7f9e5e1b","tests/try_stream.rs":"4508cf64e4f74aff6b8c48bd9d1e442e5fb7c10a2796370833969bd432ae3933","tests/ui/unsoundness_issue_106.rs":"0cf6835f5bfb886b9ad97c03fcef37fa854fb6748c5bcba5028f494e28da3eab","tests/ui/unsoundness_issue_106.stderr":"1f09fd02e6aade19d05fafec2b489a0b2041f696abb067c1c59ae4630f5e5b3e","tests/ui/unsoundness_issue_107.rs":"f06de861273302965ed82eb6f354dcd14e2f25f7356612ef53492e3bc4714049","tests/ui/unsoundness_issue_107.stderr":"f30e95bc3c8f4f22aa8211284028faa77d6340c2ed2b78b0d8043848c2aed4f6","tests/ui/yield_bad_expr_in_macro.rs":"3f5e39a63d331613a78a0eacc5709d216ced8b191ef48fb8bff9d5a84e1c774b","tests/ui/yield_bad_expr_in_macro.stderr":"4ca137503db9d1ddb1acd8556c2267862cb55196e737ce325c8e60056509d7e2","tests/ui/yield_in_async.rs":"607ed44a432759f337e87884efb2daeca475025f022f55d471bf68c82b00f72c","tests/ui/yield_in_async.stderr":"4743471fcc0cbb0c8213fae5ed8086cb98c0e45a781bdb673262a648c224849a","tests/ui/yield_in_closure.rs":"151793f2d8676476e95d0539cb8b56c1c6f119c4027168ef0f392316aa2e13f6","tests/ui/yield_in_closure.stderr":"3be0032c69b7509fb06f14e1b33614209940397834620680bb366232783b33fa","tests/ui/yield_in_nested_fn.rs":"6445989b2556adece9a9aca66d13bfdb9abd68e55d343f4f261cfe1281132703","tests/ui/yield_in_nested_fn.stderr":"5980894294048f4cfd2cc193fb83ad1c516fe444bb44e291b76081490e536f34"}}
\ No newline at end of file
diff --git a/crates/async-stream/.cargo-checksum.json b/crates/async-stream/.cargo-checksum.json
index b4be1aa..be45dea 100644
--- a/crates/async-stream/.cargo-checksum.json
+++ b/crates/async-stream/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"63b8ee59b5bbdc99c4b0deef506392998b52404a266565f089e03f8702b5e178","Cargo.lock":"368b07ef515917e79070a670c6dc5ebc5ff1e89ef987de576cb62ffbc18a41bb","Cargo.toml":"0d465dbc7b803a82461804bfaf48caa372feff0eb466a93570c081b1b56f3f13","LICENSE":"157d381f6304eba77459fc10dfb5b1b22fc0d04e384a32865f32d8e67a34c0eb","README.md":"209c9018f3b85232a60676e725d0aa074493a67c7e0ddcdd4de95aac92e6fa85","README.tpl":"ffd534f536d1ee9a6590fb71be3468972bbc21db05fc7a1e51938fc347e4c64b","examples/tcp_accept.rs":"938586c070b73bfe6cf2088e4663b3fa3432adf2f1a7612ffeb22af9db0be449","src/async_stream.rs":"08dd739c3536d9bcbfdd254264b46d644f8293423b30c6469f099ba63537e8fd","src/lib.rs":"0daea6a62239a15ed514c4b30da9e28d46c59ebe080c542a582a68dfe1823d71","src/next.rs":"8ac0114e52e72de3bc9ff88b2c6ae1985af078ddc4e8a1de759cdfd097f11afd","src/yielder.rs":"1f1e81055fcf2325ac8887dc17977b6211c92a635ac187c0aa03a0bee181ed02","tests/for_await.rs":"1777db6587cacede1b7a23cd4f06816560a1c5c6974ee926f433f85370262409","tests/spans_preserved.rs":"d1178a4dd59129a3acd359aa7ff54d792070519a408197ffd6e5890f0e9cccd0","tests/stream.rs":"09f2ae6cfea5a416266595b3c97f9c19826e309185e5fbd75b6d1d8f2212410d","tests/try_stream.rs":"bb274c38a5850bf0a0b0c9a8c5ba32ff7ebe483e32d25cd47a80394f49224576","tests/ui/yield_bad_expr_in_macro.rs":"f73924f3472c02110605df078caa61f8ce0aad4380e8cc32fd72dedee2b6c69f","tests/ui/yield_bad_expr_in_macro.stderr":"299ab8335e20759296eec20704514b30c24a026db458aaf37a90532d4faab517","tests/ui/yield_in_async.rs":"304219f34f612d4c5cbf50ce5a9655c7846f2b1beb6d2e8a289851d72f4b5e07","tests/ui/yield_in_async.stderr":"0e20a40c40256c1cdbb6d0ecd22c594728ce895493cb2ee7cb4b320a1d59ba61","tests/ui/yield_in_closure.rs":"07fb117b239364bb2ca94312dc97e1a9af11f16b8ce782776c4ee713dba43119","tests/ui/yield_in_closure.stderr":"ed42c938e627f594ec94bd748a41a63a9e819e9b2f82494c332d2dfbaa2c9264","tests/ui/yield_in_nested_fn.rs":"250d639394184ea041e77fb866bd51516e6bbd302375a72d03c81fcf70a1c105","tests/ui/yield_in_nested_fn.stderr":"a79508bff0c7457b1988b189c05100b95441557e04e546e3ff16d59eeeb8afb2"},"package":"cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"407302e1ec8384aa88bfe8504d1aadf2f72e4b7bc5b79ddbd15166dfa23a9078","Cargo.lock":"e35d343b398984c7ba3a8998c5bcf497caf9bdfb15387e78dcbb3ade2def0d7b","Cargo.toml":"c7e1770e44b788dee452861a143ce0726f4d0fa44e10e7d5e3ccd499ee647ada","LICENSE":"157d381f6304eba77459fc10dfb5b1b22fc0d04e384a32865f32d8e67a34c0eb","README.md":"1aa663e5f6ae78fb012916bb89e53cba3d4a040aadd1aee71135c2008cb7ae6f","README.tpl":"ffd534f536d1ee9a6590fb71be3468972bbc21db05fc7a1e51938fc347e4c64b","examples/tcp_accept.rs":"938586c070b73bfe6cf2088e4663b3fa3432adf2f1a7612ffeb22af9db0be449","src/async_stream.rs":"08dd739c3536d9bcbfdd254264b46d644f8293423b30c6469f099ba63537e8fd","src/lib.rs":"0daea6a62239a15ed514c4b30da9e28d46c59ebe080c542a582a68dfe1823d71","src/next.rs":"8ac0114e52e72de3bc9ff88b2c6ae1985af078ddc4e8a1de759cdfd097f11afd","src/yielder.rs":"a6d56ea369dc7346f4b78b90ad9bedf2643f5189e0cdf958c89eac96af59280b","tests/for_await.rs":"1777db6587cacede1b7a23cd4f06816560a1c5c6974ee926f433f85370262409","tests/spans_preserved.rs":"d1178a4dd59129a3acd359aa7ff54d792070519a408197ffd6e5890f0e9cccd0","tests/stream.rs":"09f2ae6cfea5a416266595b3c97f9c19826e309185e5fbd75b6d1d8f2212410d","tests/try_stream.rs":"bb274c38a5850bf0a0b0c9a8c5ba32ff7ebe483e32d25cd47a80394f49224576","tests/ui/unsoundness_issue_106.rs":"36f2f633bfae0704e320499b55471c91e754e52613f2700ed731be67548df5d4","tests/ui/unsoundness_issue_106.stderr":"b1bffbd0652327ed2b3bb6252a2294c48207817854e34aca10640574a54d198b","tests/ui/unsoundness_issue_107.rs":"3945986ea1c4d8e597a39be4c88e7ea7815551d2c5bb837297a84f7a7bc03d8e","tests/ui/unsoundness_issue_107.stderr":"42aac83f97f2c80015e195c67a416643b090d63f2db67ada5bb5f72bc37f6614","tests/ui/yield_bad_expr_in_macro.rs":"f73924f3472c02110605df078caa61f8ce0aad4380e8cc32fd72dedee2b6c69f","tests/ui/yield_bad_expr_in_macro.stderr":"088c6051209f3bb879b6d442f0e643d72e5462d4a28c6aea84963240f53bdc7a","tests/ui/yield_in_async.rs":"304219f34f612d4c5cbf50ce5a9655c7846f2b1beb6d2e8a289851d72f4b5e07","tests/ui/yield_in_async.stderr":"1d34d7852e1bcfe5b4d8d3c483cd4226ebb046160758337261695625209e4e81","tests/ui/yield_in_closure.rs":"07fb117b239364bb2ca94312dc97e1a9af11f16b8ce782776c4ee713dba43119","tests/ui/yield_in_closure.stderr":"2b880896140483e9cde620bb326a8c95121fbb0e741cecf9e20c716bc8a7d068","tests/ui/yield_in_nested_fn.rs":"250d639394184ea041e77fb866bd51516e6bbd302375a72d03c81fcf70a1c105","tests/ui/yield_in_nested_fn.stderr":"88d09035f8405b6ab47e9ed86d6f879b085d841aae890f15ae134d57e72553e5"},"package":"0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"}
\ No newline at end of file
diff --git a/crates/async-stream/Android.bp b/crates/async-stream/Android.bp
index dd2ae61..160883c 100644
--- a/crates/async-stream/Android.bp
+++ b/crates/async-stream/Android.bp
@@ -18,14 +18,14 @@
     host_supported: true,
     crate_name: "for_await",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.6",
     crate_root: "tests/for_await.rs",
     test_suites: ["general-tests"],
     auto_gen_config: true,
     test_options: {
         unit_test: true,
     },
-    edition: "2018",
+    edition: "2021",
     rustlibs: [
         "libasync_stream",
         "libfutures_core",
@@ -44,14 +44,14 @@
     host_supported: true,
     crate_name: "spans_preserved",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.6",
     crate_root: "tests/spans_preserved.rs",
     test_suites: ["general-tests"],
     auto_gen_config: true,
     test_options: {
         unit_test: true,
     },
-    edition: "2018",
+    edition: "2021",
     rustlibs: [
         "libasync_stream",
         "libfutures_core",
@@ -70,14 +70,14 @@
     host_supported: true,
     crate_name: "try_stream",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.6",
     crate_root: "tests/try_stream.rs",
     test_suites: ["general-tests"],
     auto_gen_config: true,
     test_options: {
         unit_test: true,
     },
-    edition: "2018",
+    edition: "2021",
     rustlibs: [
         "libasync_stream",
         "libfutures_core",
@@ -96,9 +96,9 @@
     host_supported: true,
     crate_name: "async_stream",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.3.5",
+    cargo_pkg_version: "0.3.6",
     crate_root: "src/lib.rs",
-    edition: "2018",
+    edition: "2021",
     rustlibs: [
         "libfutures_core",
         "libpin_project_lite",
diff --git a/crates/async-stream/CHANGELOG.md b/crates/async-stream/CHANGELOG.md
index 2eb7df1..f78b947 100644
--- a/crates/async-stream/CHANGELOG.md
+++ b/crates/async-stream/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.3.6
+
+* Fix soundness bugs (#109)
+* Bump MSRV to 1.65 (#109)
+
 # 0.3.5
 
 * Update to syn 2.0 (#93)
diff --git a/crates/async-stream/Cargo.lock b/crates/async-stream/Cargo.lock
index 62e85bd..52dc855 100644
--- a/crates/async-stream/Cargo.lock
+++ b/crates/async-stream/Cargo.lock
@@ -3,8 +3,23 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
 name = "async-stream"
-version = "0.3.5"
+version = "0.3.6"
 dependencies = [
  "async-stream-impl",
  "futures-core",
@@ -17,9 +32,9 @@
 
 [[package]]
 name = "async-stream-impl"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -28,30 +43,36 @@
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
-name = "basic-toml"
-version = "0.1.2"
+name = "backtrace"
+version = "0.3.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
 dependencies = [
- "serde",
+ "addr2line",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+ "windows-targets",
 ]
 
 [[package]]
 name = "bitflags"
-version = "1.3.2"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
 
 [[package]]
 name = "cfg-if"
@@ -60,16 +81,22 @@
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "futures-core"
-version = "0.3.28"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -78,15 +105,15 @@
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-core",
  "futures-macro",
@@ -97,84 +124,102 @@
 ]
 
 [[package]]
+name = "gimli"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
+
+[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
-name = "hermit-abi"
-version = "0.2.6"
+name = "hashbrown"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "indexmap"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
 dependencies = [
- "libc",
+ "equivalent",
+ "hashbrown",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "libc"
-version = "0.2.141"
+version = "0.2.158"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
 ]
 
 [[package]]
-name = "log"
-version = "0.4.17"
+name = "memchr"
+version = "2.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
 dependencies = [
- "cfg-if",
+ "adler2",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.6"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
 dependencies = [
  "hermit-abi",
  "libc",
+ "wasi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "once_cell"
-version = "1.17.1"
+name = "object"
+version = "0.36.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -182,22 +227,22 @@
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-sys",
+ "windows-targets",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -207,60 +252,69 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
-name = "rustversion"
-version = "1.0.12"
+name = "rustc-demangle"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustversion"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.159"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+dependencies = [
+ "serde_derive",
+]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.159"
+version = "1.0.210"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -269,54 +323,64 @@
 
 [[package]]
 name = "serde_json"
-version = "1.0.95"
+version = "1.0.128"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
 dependencies = [
  "itoa",
+ "memchr",
  "ryu",
  "serde",
 ]
 
 [[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
+name = "serde_spanned"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.13"
+version = "2.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -325,37 +389,36 @@
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "tokio"
-version = "1.27.0"
+version = "1.40.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
 dependencies = [
- "autocfg",
+ "backtrace",
  "bytes",
  "libc",
  "mio",
- "num_cpus",
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
  "socket2",
  "tokio-macros",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.0.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce"
+checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -363,25 +426,58 @@
 ]
 
 [[package]]
-name = "trybuild"
-version = "1.0.80"
+name = "toml"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "501dbdbb99861e4ab6b60eb6a7493956a9defb644fd034bc4a5ef27c693c8a3a"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
 dependencies = [
- "basic-toml",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "trybuild"
+version = "1.0.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8"
+dependencies = [
  "glob",
- "once_cell",
  "serde",
  "serde_derive",
  "serde_json",
  "termcolor",
+ "toml",
 ]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
 
 [[package]]
 name = "wasi"
@@ -390,54 +486,42 @@
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
 dependencies = [
- "winapi",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
 dependencies = [
  "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
  "windows_i686_gnu",
+ "windows_i686_gnullvm",
  "windows_i686_msvc",
  "windows_x86_64_gnu",
  "windows_x86_64_gnullvm",
@@ -446,42 +530,57 @@
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "winnow"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
+dependencies = [
+ "memchr",
+]
diff --git a/crates/async-stream/Cargo.toml b/crates/async-stream/Cargo.toml
index 8d9ec58..b9526b3 100644
--- a/crates/async-stream/Cargo.toml
+++ b/crates/async-stream/Cargo.toml
@@ -10,18 +10,47 @@
 # See Cargo.toml.orig for the original contents.
 
 [package]
-edition = "2018"
-rust-version = "1.56"
+edition = "2021"
+rust-version = "1.65"
 name = "async-stream"
-version = "0.3.5"
+version = "0.3.6"
 authors = ["Carl Lerche <[email protected]>"]
+build = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "Asynchronous streams using async & await notation"
 readme = "README.md"
 license = "MIT"
 repository = "https://github.com/tokio-rs/async-stream"
 
+[lib]
+name = "async_stream"
+path = "src/lib.rs"
+
+[[example]]
+name = "tcp_accept"
+path = "examples/tcp_accept.rs"
+
+[[test]]
+name = "for_await"
+path = "tests/for_await.rs"
+
+[[test]]
+name = "spans_preserved"
+path = "tests/spans_preserved.rs"
+
+[[test]]
+name = "stream"
+path = "tests/stream.rs"
+
+[[test]]
+name = "try_stream"
+path = "tests/try_stream.rs"
+
 [dependencies.async-stream-impl]
-version = "=0.3.5"
+version = "=0.3.6"
 
 [dependencies.futures-core]
 version = "0.3"
diff --git a/crates/async-stream/METADATA b/crates/async-stream/METADATA
index 1653269..f67587d 100644
--- a/crates/async-stream/METADATA
+++ b/crates/async-stream/METADATA
@@ -1,17 +1,17 @@
 name: "async-stream"
 description: "Asynchronous streams using async & await notation"
 third_party {
-  version: "0.3.5"
+  version: "0.3.6"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
-    month: 11
-    day: 24
+    year: 2025
+    month: 1
+    day: 15
   }
   homepage: "https://crates.io/crates/async-stream"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/async-stream/async-stream-0.3.5.crate"
-    version: "0.3.5"
+    value: "https://static.crates.io/crates/async-stream/async-stream-0.3.6.crate"
+    version: "0.3.6"
   }
 }
diff --git a/crates/async-stream/README.md b/crates/async-stream/README.md
index 8688423..79c5012 100644
--- a/crates/async-stream/README.md
+++ b/crates/async-stream/README.md
@@ -152,7 +152,7 @@
 
 ## Supported Rust Versions
 
-The current minimum supported Rust version is 1.56.
+The current minimum supported Rust version is 1.65.
 
 ## License
 
diff --git a/crates/async-stream/src/yielder.rs b/crates/async-stream/src/yielder.rs
index 597e1c9..4b7a944 100644
--- a/crates/async-stream/src/yielder.rs
+++ b/crates/async-stream/src/yielder.rs
@@ -7,7 +7,7 @@
 
 #[derive(Debug)]
 pub struct Sender<T> {
-    _p: PhantomData<T>,
+    _p: PhantomData<fn(T) -> T>,
 }
 
 #[derive(Debug)]
@@ -34,7 +34,7 @@
 // Tracks the pointer to `Option<T>`.
 //
 // TODO: Ensure wakers match?
-thread_local!(static STORE: Cell<*mut ()> = Cell::new(ptr::null_mut()));
+thread_local!(static STORE: Cell<*mut ()> = const { Cell::new(ptr::null_mut()) });
 
 // ===== impl Sender =====
 
diff --git a/crates/async-stream/tests/ui/unsoundness_issue_106.rs b/crates/async-stream/tests/ui/unsoundness_issue_106.rs
new file mode 100644
index 0000000..2b969ee
--- /dev/null
+++ b/crates/async-stream/tests/ui/unsoundness_issue_106.rs
@@ -0,0 +1,30 @@
+use async_stream::stream;
+use futures_util::StreamExt;
+
+use std::pin::pin;
+
+macro_rules! asynk {
+    ($e:expr) => {
+        async { $e }
+    };
+}
+
+#[tokio::main]
+async fn main() {
+    pin!(stream! {
+        let yield_42 = asynk!(yield 42_usize);
+        let s = stream! {
+            yield Box::new(12345);
+            yield_42.await; // yield 42 -- wait that's not a Box!?
+        };
+        for await (n, i) in s.enumerate() {
+            println!("Item at index {n}:\n    {i}");
+            // Item at index 0:
+            //     12345
+            // Item at index 1:
+            // Segmentation fault
+        }
+    })
+    .next()
+    .await;
+}
diff --git a/crates/async-stream/tests/ui/unsoundness_issue_106.stderr b/crates/async-stream/tests/ui/unsoundness_issue_106.stderr
new file mode 100644
index 0000000..0c0214c
--- /dev/null
+++ b/crates/async-stream/tests/ui/unsoundness_issue_106.stderr
@@ -0,0 +1,36 @@
+error[E0767]: use of unreachable label `'__async_stream_private_check_scope`
+  --> tests/ui/unsoundness_issue_106.rs:14:10
+   |
+14 |       pin!(stream! {
+   |  __________^
+15 | |         let yield_42 = asynk!(yield 42_usize);
+16 | |         let s = stream! {
+17 | |             yield Box::new(12345);
+...  |
+26 | |         }
+27 | |     })
+   | |     ^
+   | |     |
+   | |_____unreachable label `'__async_stream_private_check_scope`
+   |       unreachable label defined here
+   |
+   = note: labels are unreachable through functions, closures, async blocks and modules
+   = note: this error originates in the macro `$crate::__private::stream_inner` which comes from the expansion of the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0267]: `break` inside `async` block
+  --> tests/ui/unsoundness_issue_106.rs:14:10
+   |
+8  |           async { $e }
+   |           ----- enclosing `async` block
+...
+14 |       pin!(stream! {
+   |  __________^
+15 | |         let yield_42 = asynk!(yield 42_usize);
+16 | |         let s = stream! {
+17 | |             yield Box::new(12345);
+...  |
+26 | |         }
+27 | |     })
+   | |_____^ cannot `break` inside `async` block
+   |
+   = note: this error originates in the macro `$crate::__private::stream_inner` which comes from the expansion of the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/async-stream/tests/ui/unsoundness_issue_107.rs b/crates/async-stream/tests/ui/unsoundness_issue_107.rs
new file mode 100644
index 0000000..61fd153
--- /dev/null
+++ b/crates/async-stream/tests/ui/unsoundness_issue_107.rs
@@ -0,0 +1,23 @@
+use async_stream::stream;
+use futures_util::StreamExt;
+
+use std::pin::pin;
+
+#[tokio::main]
+async fn main() {
+    let mut outer = vec![];
+    {
+        let v = vec![0; 10];
+        let v_ref = &v;
+        let mut s = pin!(stream! {
+            for x in v_ref {
+                yield x
+            }
+        });
+        while let Some(x) = s.next().await {
+            outer.push(x);
+        }
+    };
+    // use-after-free
+    println!("{outer:?}"); // […garbage allocator internals…, 0, 0, 0]
+}
diff --git a/crates/async-stream/tests/ui/unsoundness_issue_107.stderr b/crates/async-stream/tests/ui/unsoundness_issue_107.stderr
new file mode 100644
index 0000000..9b81e62
--- /dev/null
+++ b/crates/async-stream/tests/ui/unsoundness_issue_107.stderr
@@ -0,0 +1,13 @@
+error[E0597]: `v` does not live long enough
+  --> tests/ui/unsoundness_issue_107.rs:11:21
+   |
+10 |         let v = vec![0; 10];
+   |             - binding `v` declared here
+11 |         let v_ref = &v;
+   |                     ^^ borrowed value does not live long enough
+...
+20 |     };
+   |     - `v` dropped here while still borrowed
+21 |     // use-after-free
+22 |     println!("{outer:?}"); // […garbage allocator internals…, 0, 0, 0]
+   |               --------- borrow later used here
diff --git a/crates/async-stream/tests/ui/yield_bad_expr_in_macro.stderr b/crates/async-stream/tests/ui/yield_bad_expr_in_macro.stderr
index e70e200..1377054 100644
--- a/crates/async-stream/tests/ui/yield_bad_expr_in_macro.stderr
+++ b/crates/async-stream/tests/ui/yield_bad_expr_in_macro.stderr
@@ -1,4 +1,4 @@
-error: expected expression
+error: expected an expression
  --> tests/ui/yield_bad_expr_in_macro.rs:8:33
   |
 8 |             _ = work() => yield fn f() {},
diff --git a/crates/async-stream/tests/ui/yield_in_async.stderr b/crates/async-stream/tests/ui/yield_in_async.stderr
index 4322758..db2451a 100644
--- a/crates/async-stream/tests/ui/yield_in_async.stderr
+++ b/crates/async-stream/tests/ui/yield_in_async.stderr
@@ -6,14 +6,8 @@
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
 
-error[E0727]: `async` generators are not yet supported
+error[E0727]: `async` coroutines are not yet supported
  --> tests/ui/yield_in_async.rs:6:13
   |
 6 |             yield 123;
   |             ^^^^^^^^^
-
-error[E0308]: mismatched types
- --> tests/ui/yield_in_async.rs:6:19
-  |
-6 |             yield 123;
-  |                   ^^^ expected `()`, found integer
diff --git a/crates/async-stream/tests/ui/yield_in_closure.stderr b/crates/async-stream/tests/ui/yield_in_closure.stderr
index 9f917f3..4d2f6c2 100644
--- a/crates/async-stream/tests/ui/yield_in_closure.stderr
+++ b/crates/async-stream/tests/ui/yield_in_closure.stderr
@@ -6,7 +6,18 @@
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
 
-error[E0277]: expected a `FnOnce<(&str,)>` closure, found `[generator@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26]`
+error: `yield` can only be used in `#[coroutine]` closures, or `gen` blocks
+ --> tests/ui/yield_in_closure.rs:7:17
+  |
+7 |                 yield v;
+  |                 ^^^^^^^
+  |
+help: use `#[coroutine]` to make this closure a coroutine
+  |
+6 |             .and_then(#[coroutine] |v| {
+  |                       ++++++++++++
+
+error[E0277]: expected a `FnOnce(&str)` closure, found `{coroutine@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26}`
  --> tests/ui/yield_in_closure.rs:6:23
   |
 6 |               .and_then(|v| {
@@ -16,9 +27,9 @@
 7 | |                 yield v;
 8 | |                 Ok(())
 9 | |             });
-  | |_____________^ expected an `FnOnce<(&str,)>` closure, found `[generator@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26]`
+  | |_____________^ expected an `FnOnce(&str)` closure, found `{coroutine@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26}`
   |
-  = help: the trait `FnOnce<(&str,)>` is not implemented for `[generator@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26]`
+  = help: the trait `FnOnce(&str)` is not implemented for `{coroutine@$DIR/tests/ui/yield_in_closure.rs:6:23: 6:26}`
 note: required by a bound in `Result::<T, E>::and_then`
  --> $RUST/core/src/result.rs
   |
diff --git a/crates/async-stream/tests/ui/yield_in_nested_fn.stderr b/crates/async-stream/tests/ui/yield_in_nested_fn.stderr
index 54fdee9..951be34 100644
--- a/crates/async-stream/tests/ui/yield_in_nested_fn.stderr
+++ b/crates/async-stream/tests/ui/yield_in_nested_fn.stderr
@@ -6,7 +6,18 @@
   |
   = note: see issue #43122 <https://github.com/rust-lang/rust/issues/43122> for more information
 
-error[E0627]: yield expression outside of generator literal
+error: `yield` can only be used in `#[coroutine]` closures, or `gen` blocks
+ --> tests/ui/yield_in_nested_fn.rs:6:13
+  |
+6 |             yield "hello";
+  |             ^^^^^^^^^^^^^
+  |
+help: use `#[coroutine]` to make this closure a coroutine
+  |
+5 |         #[coroutine] fn foo() {
+  |         ++++++++++++
+
+error[E0627]: yield expression outside of coroutine literal
  --> tests/ui/yield_in_nested_fn.rs:6:13
   |
 6 |             yield "hello";
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index a496ef7..b0ab364 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -661,9 +661,9 @@
 
 [[package]]
 name = "async-stream"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"
 dependencies = [
  "async-stream-impl",
  "futures-core",
@@ -672,9 +672,9 @@
 
 [[package]]
 name = "async-stream-impl"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
 dependencies = [
  "proc-macro2 1.0.93",
  "quote 1.0.38",
@@ -5639,9 +5639,9 @@
 
 [[package]]
 name = "uniffi_checksum_derive"
-version = "0.27.1"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae7e5a6c33b1dec3f255f57ec0b6af0f0b2bb3021868be1d5eec7a38e2905ebc"
+checksum = "d5c400339a9d1d17be34257d0b407e91d64af335e5b4fa49f4bf28467fc8d635"
 dependencies = [
  "quote 1.0.38",
  "syn 2.0.96",
@@ -5700,7 +5700,7 @@
  "anyhow",
  "bytes",
  "siphasher 0.3.11",
- "uniffi_checksum_derive 0.27.1",
+ "uniffi_checksum_derive 0.27.3",
 ]
 
 [[package]]
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 35020fc..8737315 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -23,8 +23,8 @@
 argh_shared = "=0.1.13"
 arrayvec = "=0.7.6"
 ash = "=0.37.3"
-async-stream = "=0.3.5"
-async-stream-impl = "=0.3.5"
+async-stream = "=0.3.6"
+async-stream-impl = "=0.3.6"
 async-task = "=4.7.1"
 async-trait = "=0.1.83"
 atomic = "=0.6.0"