mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 23:34:48 +00:00
45 lines
870 B
Rust
45 lines
870 B
Rust
|
// Derived from an ICE found in tokio-xmpp during a crater run.
|
||
|
//@ edition:2021
|
||
|
|
||
|
#![allow(dead_code)]
|
||
|
|
||
|
#[derive(Clone)]
|
||
|
struct InfoResult {
|
||
|
node: Option<std::rc::Rc<String>>
|
||
|
}
|
||
|
|
||
|
struct Agent {
|
||
|
info_result: InfoResult
|
||
|
}
|
||
|
|
||
|
impl Agent {
|
||
|
async fn handle(&mut self) {
|
||
|
let mut info = self.info_result.clone();
|
||
|
info.node = None;
|
||
|
let element = parse_info(info);
|
||
|
let _ = send_element(element).await;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct Element {
|
||
|
}
|
||
|
|
||
|
async fn send_element(_: Element) {}
|
||
|
|
||
|
fn parse(_: &[u8]) -> Result<(), ()> {
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
fn parse_info(_: InfoResult) -> Element {
|
||
|
Element { }
|
||
|
}
|
||
|
|
||
|
fn assert_send<T: Send>(_: T) {}
|
||
|
|
||
|
fn main() {
|
||
|
let agent = Agent { info_result: InfoResult { node: None } };
|
||
|
// FIXME: It would be nice for this to work. See #94067.
|
||
|
assert_send(agent.handle());
|
||
|
//~^ cannot be sent between threads safely
|
||
|
}
|