mirror of https://github.com/rust-lang/rust.git
Move empty final TokenStream handling to server side of bridge
This commit is contained in:
parent
4d45af9e73
commit
af51424008
|
@ -427,11 +427,7 @@ impl Client<crate::TokenStream, crate::TokenStream> {
|
||||||
Client {
|
Client {
|
||||||
get_handle_counters: HandleCounters::get,
|
get_handle_counters: HandleCounters::get,
|
||||||
run: super::selfless_reify::reify_to_extern_c_fn_hrt_bridge(move |bridge| {
|
run: super::selfless_reify::reify_to_extern_c_fn_hrt_bridge(move |bridge| {
|
||||||
run_client(bridge, |input| {
|
run_client(bridge, |input| f(crate::TokenStream(Some(input))).0)
|
||||||
f(crate::TokenStream(Some(input)))
|
|
||||||
.0
|
|
||||||
.unwrap_or_else(|| TokenStream::concat_streams(None, vec![]))
|
|
||||||
})
|
|
||||||
}),
|
}),
|
||||||
_marker: PhantomData,
|
_marker: PhantomData,
|
||||||
}
|
}
|
||||||
|
@ -446,9 +442,7 @@ impl Client<(crate::TokenStream, crate::TokenStream), crate::TokenStream> {
|
||||||
get_handle_counters: HandleCounters::get,
|
get_handle_counters: HandleCounters::get,
|
||||||
run: super::selfless_reify::reify_to_extern_c_fn_hrt_bridge(move |bridge| {
|
run: super::selfless_reify::reify_to_extern_c_fn_hrt_bridge(move |bridge| {
|
||||||
run_client(bridge, |(input, input2)| {
|
run_client(bridge, |(input, input2)| {
|
||||||
f(crate::TokenStream(Some(input)), crate::TokenStream(Some(input2)))
|
f(crate::TokenStream(Some(input)), crate::TokenStream(Some(input2))).0
|
||||||
.0
|
|
||||||
.unwrap_or_else(|| TokenStream::concat_streams(None, vec![]))
|
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
_marker: PhantomData,
|
_marker: PhantomData,
|
||||||
|
|
|
@ -273,13 +273,17 @@ fn run_server<
|
||||||
}
|
}
|
||||||
|
|
||||||
impl client::Client<crate::TokenStream, crate::TokenStream> {
|
impl client::Client<crate::TokenStream, crate::TokenStream> {
|
||||||
pub fn run<S: Server>(
|
pub fn run<S>(
|
||||||
&self,
|
&self,
|
||||||
strategy: &impl ExecutionStrategy,
|
strategy: &impl ExecutionStrategy,
|
||||||
server: S,
|
server: S,
|
||||||
input: S::TokenStream,
|
input: S::TokenStream,
|
||||||
force_show_panics: bool,
|
force_show_panics: bool,
|
||||||
) -> Result<S::TokenStream, PanicMessage> {
|
) -> Result<S::TokenStream, PanicMessage>
|
||||||
|
where
|
||||||
|
S: Server,
|
||||||
|
S::TokenStream: Default,
|
||||||
|
{
|
||||||
let client::Client { get_handle_counters, run, _marker } = *self;
|
let client::Client { get_handle_counters, run, _marker } = *self;
|
||||||
run_server(
|
run_server(
|
||||||
strategy,
|
strategy,
|
||||||
|
@ -289,19 +293,23 @@ impl client::Client<crate::TokenStream, crate::TokenStream> {
|
||||||
run,
|
run,
|
||||||
force_show_panics,
|
force_show_panics,
|
||||||
)
|
)
|
||||||
.map(<MarkedTypes<S> as Types>::TokenStream::unmark)
|
.map(|s| <Option<<MarkedTypes<S> as Types>::TokenStream>>::unmark(s).unwrap_or_default())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl client::Client<(crate::TokenStream, crate::TokenStream), crate::TokenStream> {
|
impl client::Client<(crate::TokenStream, crate::TokenStream), crate::TokenStream> {
|
||||||
pub fn run<S: Server>(
|
pub fn run<S>(
|
||||||
&self,
|
&self,
|
||||||
strategy: &impl ExecutionStrategy,
|
strategy: &impl ExecutionStrategy,
|
||||||
server: S,
|
server: S,
|
||||||
input: S::TokenStream,
|
input: S::TokenStream,
|
||||||
input2: S::TokenStream,
|
input2: S::TokenStream,
|
||||||
force_show_panics: bool,
|
force_show_panics: bool,
|
||||||
) -> Result<S::TokenStream, PanicMessage> {
|
) -> Result<S::TokenStream, PanicMessage>
|
||||||
|
where
|
||||||
|
S: Server,
|
||||||
|
S::TokenStream: Default,
|
||||||
|
{
|
||||||
let client::Client { get_handle_counters, run, _marker } = *self;
|
let client::Client { get_handle_counters, run, _marker } = *self;
|
||||||
run_server(
|
run_server(
|
||||||
strategy,
|
strategy,
|
||||||
|
@ -314,6 +322,6 @@ impl client::Client<(crate::TokenStream, crate::TokenStream), crate::TokenStream
|
||||||
run,
|
run,
|
||||||
force_show_panics,
|
force_show_panics,
|
||||||
)
|
)
|
||||||
.map(<MarkedTypes<S> as Types>::TokenStream::unmark)
|
.map(|s| <Option<<MarkedTypes<S> as Types>::TokenStream>>::unmark(s).unwrap_or_default())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue