]> git.lizzy.rs Git - rust.git/commitdiff
use generic params for arc_new_cyclic
authorbdbai <bdbaiapp@163.com>
Thu, 30 Dec 2021 13:55:18 +0000 (21:55 +0800)
committerbdbai <bdbaiapp@163.com>
Thu, 30 Dec 2021 13:55:18 +0000 (21:55 +0800)
library/alloc/src/rc.rs
library/alloc/src/sync.rs

index b92fbac36d92e8f956d78b43d032a1886d8465bb..e373be5bb6e2d88216200c918a3ef29534debb53 100644 (file)
@@ -415,7 +415,10 @@ pub fn new(value: T) -> Rc<T> {
     /// [`upgrade`]: Weak::upgrade
     #[cfg(not(no_global_oom_handling))]
     #[stable(feature = "arc_new_cyclic", since = "1.59.0")]
-    pub fn new_cyclic(data_fn: impl FnOnce(&Weak<T>) -> T) -> Rc<T> {
+    pub fn new_cyclic<F>(data_fn: F) -> Rc<T>
+    where
+        F: FnOnce(&Weak<T>) -> T,
+    {
         // Construct the inner in the "uninitialized" state with a single
         // weak reference.
         let uninit_ptr: NonNull<_> = Box::leak(box RcBox {
index 4deec0146e472ffaab974bdca9d94017ec933ce0..aba45f36c1532c8b7aeb03985042ec14bc54f61e 100644 (file)
@@ -392,7 +392,10 @@ pub fn new(data: T) -> Arc<T> {
     #[cfg(not(no_global_oom_handling))]
     #[inline]
     #[stable(feature = "arc_new_cyclic", since = "1.59.0")]
-    pub fn new_cyclic(data_fn: impl FnOnce(&Weak<T>) -> T) -> Arc<T> {
+    pub fn new_cyclic<F>(data_fn: F) -> Arc<T>
+    where
+        F: FnOnce(&Weak<T>) -> T,
+    {
         // Construct the inner in the "uninitialized" state with a single
         // weak reference.
         let uninit_ptr: NonNull<_> = Box::leak(box ArcInner {