diff options
| author | bdbai <bdbaiapp@163.com> | 2021-12-30 21:55:18 +0800 |
|---|---|---|
| committer | bdbai <bdbaiapp@163.com> | 2021-12-30 21:55:18 +0800 |
| commit | ce31cbc7a35131d0386f03982d7cac8786f574f4 (patch) | |
| tree | 4f8915cd695563e3a8cbddd54bd936d4bcf85f38 | |
| parent | ef472f1dc93ee4c953e296e7316ead7f3de4c09f (diff) | |
| download | rust-ce31cbc7a35131d0386f03982d7cac8786f574f4.tar.gz rust-ce31cbc7a35131d0386f03982d7cac8786f574f4.zip | |
use generic params for arc_new_cyclic
| -rw-r--r-- | library/alloc/src/rc.rs | 5 | ||||
| -rw-r--r-- | library/alloc/src/sync.rs | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index b92fbac36d9..e373be5bb6e 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -415,7 +415,10 @@ impl<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 { diff --git a/library/alloc/src/sync.rs b/library/alloc/src/sync.rs index 4deec0146e4..aba45f36c15 100644 --- a/library/alloc/src/sync.rs +++ b/library/alloc/src/sync.rs @@ -392,7 +392,10 @@ impl<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 { |
