ffi: rename VaList::copy to VaList::with_copy
Rename `VaList::copy` to `VaList::with_copy`.
This commit is contained in:
parent
0f88167f89
commit
8ea435caf8
@ -189,7 +189,7 @@ pub unsafe fn arg<T: sealed_trait::VaArgSafe>(&mut self) -> T {
|
||||
reason = "the `c_variadic` feature has not been properly tested on \
|
||||
all supported platforms",
|
||||
issue = "44930")]
|
||||
pub unsafe fn copy<F, R>(&self, f: F) -> R
|
||||
pub unsafe fn with_copy<F, R>(&self, f: F) -> R
|
||||
where F: for<'copy> FnOnce(VaList<'copy>) -> R {
|
||||
#[cfg(any(all(not(target_arch = "aarch64"), not(target_arch = "powerpc"),
|
||||
not(target_arch = "x86_64")),
|
||||
|
@ -62,7 +62,7 @@ unsafe fn compare_c_str(ptr: *const c_char, val: &str) -> bool {
|
||||
continue_if!(ap.arg::<c_int>() == 16);
|
||||
continue_if!(ap.arg::<c_char>() == 'A' as c_char);
|
||||
continue_if!(compare_c_str(ap.arg::<*const c_char>(), "Skip Me!"));
|
||||
ap.copy(|mut ap| {
|
||||
ap.with_copy(|mut ap| {
|
||||
if compare_c_str(ap.arg::<*const c_char>(), "Correct") {
|
||||
0
|
||||
} else {
|
||||
|
@ -13,7 +13,7 @@
|
||||
}
|
||||
|
||||
pub unsafe extern "C" fn no_escape2(_: usize, ap: ...) {
|
||||
let _ = ap.copy(|ap| { ap }); //~ ERROR: cannot infer an appropriate lifetime
|
||||
let _ = ap.with_copy(|ap| { ap }); //~ ERROR: cannot infer an appropriate lifetime
|
||||
}
|
||||
|
||||
pub unsafe extern "C" fn no_escape3(_: usize, mut ap0: &mut VaList, mut ap1: ...) {
|
||||
|
@ -15,29 +15,29 @@ LL | ap
|
||||
| ^^ lifetime `'static` required
|
||||
|
||||
error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
|
||||
--> $DIR/variadic-ffi-4.rs:16:28
|
||||
--> $DIR/variadic-ffi-4.rs:16:33
|
||||
|
|
||||
LL | let _ = ap.copy(|ap| { ap });
|
||||
| ^^
|
||||
LL | let _ = ap.with_copy(|ap| { ap });
|
||||
| ^^
|
||||
|
|
||||
note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the body at 16:21...
|
||||
--> $DIR/variadic-ffi-4.rs:16:21
|
||||
note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the body at 16:26...
|
||||
--> $DIR/variadic-ffi-4.rs:16:26
|
||||
|
|
||||
LL | let _ = ap.copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^
|
||||
LL | let _ = ap.with_copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^
|
||||
= note: ...so that the expression is assignable:
|
||||
expected core::ffi::VaList<'_>
|
||||
found core::ffi::VaList<'_>
|
||||
note: but, the lifetime must be valid for the method call at 16:13...
|
||||
--> $DIR/variadic-ffi-4.rs:16:13
|
||||
|
|
||||
LL | let _ = ap.copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
LL | let _ = ap.with_copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: ...so type `core::ffi::VaList<'_>` of expression is valid during the expression
|
||||
--> $DIR/variadic-ffi-4.rs:16:13
|
||||
|
|
||||
LL | let _ = ap.copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
LL | let _ = ap.with_copy(|ap| { ap });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/variadic-ffi-4.rs:20:12
|
||||
|
@ -16,7 +16,7 @@
|
||||
}
|
||||
|
||||
pub unsafe extern "C" fn no_escape2(_: usize, ap: ...) {
|
||||
let _ = ap.copy(|ap| { ap }); //~ ERROR: lifetime may not live long enough
|
||||
let _ = ap.with_copy(|ap| { ap }); //~ ERROR: lifetime may not live long enough
|
||||
}
|
||||
|
||||
pub unsafe extern "C" fn no_escape3(_: usize, ap0: &mut VaList, mut ap1: ...) {
|
||||
|
@ -15,13 +15,13 @@ LL | ap
|
||||
| ^^ lifetime `'static` required
|
||||
|
||||
error: lifetime may not live long enough
|
||||
--> $DIR/variadic-ffi-5.rs:19:28
|
||||
--> $DIR/variadic-ffi-5.rs:19:33
|
||||
|
|
||||
LL | let _ = ap.copy(|ap| { ap });
|
||||
| --- ^^ returning this value requires that `'1` must outlive `'2`
|
||||
| | |
|
||||
| | return type of closure is core::ffi::VaList<'2>
|
||||
| has type `core::ffi::VaList<'1>`
|
||||
LL | let _ = ap.with_copy(|ap| { ap });
|
||||
| --- ^^ returning this value requires that `'1` must outlive `'2`
|
||||
| | |
|
||||
| | return type of closure is core::ffi::VaList<'2>
|
||||
| has type `core::ffi::VaList<'1>`
|
||||
|
||||
error: lifetime may not live long enough
|
||||
--> $DIR/variadic-ffi-5.rs:23:5
|
||||
|
Loading…
Reference in New Issue
Block a user