diff options
| author | cyrgani <ansgar.w.zielke@gmail.com> | 2025-09-29 23:42:01 +0200 |
|---|---|---|
| committer | cyrgani <ansgar.w.zielke@gmail.com> | 2025-09-29 23:42:01 +0200 |
| commit | 9bb4081fb0977c1a8923fff6ebe60fc882bcac1d (patch) | |
| tree | 600de42ea2a50de5431690400d9849b4a85ee820 | |
| parent | 7af913fc90968844286e5ff6675ab66afa98cdc6 (diff) | |
| download | rust-9bb4081fb0977c1a8923fff6ebe60fc882bcac1d.tar.gz rust-9bb4081fb0977c1a8923fff6ebe60fc882bcac1d.zip | |
remove `reverse_{encode, decode}!`
| -rw-r--r-- | library/proc_macro/src/bridge/client.rs | 2 | ||||
| -rw-r--r-- | library/proc_macro/src/bridge/mod.rs | 20 | ||||
| -rw-r--r-- | library/proc_macro/src/bridge/server.rs | 2 |
3 files changed, 2 insertions, 22 deletions
diff --git a/library/proc_macro/src/bridge/client.rs b/library/proc_macro/src/bridge/client.rs index e7d547966a5..4e519e56a1e 100644 --- a/library/proc_macro/src/bridge/client.rs +++ b/library/proc_macro/src/bridge/client.rs @@ -144,7 +144,7 @@ macro_rules! define_client_side { buf.clear(); api_tags::Method::$name(api_tags::$name::$method).encode(&mut buf, &mut ()); - reverse_encode!(buf; $($arg),*); + $($arg.encode(&mut buf, &mut ());)* buf = bridge.dispatch.call(buf); diff --git a/library/proc_macro/src/bridge/mod.rs b/library/proc_macro/src/bridge/mod.rs index d60a76fff5d..7fd67ba465e 100644 --- a/library/proc_macro/src/bridge/mod.rs +++ b/library/proc_macro/src/bridge/mod.rs @@ -119,26 +119,6 @@ macro_rules! with_api_handle_types { }; } -// FIXME(eddyb) this calls `encode` for each argument, but in reverse, -// to match the ordering in `reverse_decode`. -macro_rules! reverse_encode { - ($writer:ident;) => {}; - ($writer:ident; $first:ident $(, $rest:ident)*) => { - reverse_encode!($writer; $($rest),*); - $first.encode(&mut $writer, &mut ()); - } -} - -// FIXME(eddyb) this calls `decode` for each argument, but in reverse, -// to avoid borrow conflicts from borrows started by `&mut` arguments. -macro_rules! reverse_decode { - ($reader:ident, $s:ident;) => {}; - ($reader:ident, $s:ident; $first:ident: $first_ty:ty $(, $rest:ident: $rest_ty:ty)*) => { - reverse_decode!($reader, $s; $($rest: $rest_ty),*); - let $first = <$first_ty>::decode(&mut $reader, $s); - } -} - #[allow(unsafe_code)] mod arena; #[allow(unsafe_code)] diff --git a/library/proc_macro/src/bridge/server.rs b/library/proc_macro/src/bridge/server.rs index 5beda7c3c96..724ccbd96c5 100644 --- a/library/proc_macro/src/bridge/server.rs +++ b/library/proc_macro/src/bridge/server.rs @@ -178,7 +178,7 @@ macro_rules! define_dispatcher_impl { $(api_tags::Method::$name(m) => match m { $(api_tags::$name::$method => { let mut call_method = || { - reverse_decode!(reader, handle_store; $($arg: $arg_ty),*); + $(let $arg = <$arg_ty>::decode(&mut reader, handle_store);)* $name::$method(server, $($arg),*) }; // HACK(eddyb) don't use `panic::catch_unwind` in a panic. |
