about summary refs log tree commit diff
path: root/tests/ui/async-await/field-assign.rs
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2022-10-01 12:19:31 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2023-01-27 18:58:13 +0000
commit9259da51edfb54a2dfb55a624005b7aa945cdcc6 (patch)
treeb8f92cdb007d194fa680e5af392b2d8bfa786e6c /tests/ui/async-await/field-assign.rs
parenta20078f044d42241e14437368e8e1d0f288aa7c0 (diff)
downloadrust-9259da51edfb54a2dfb55a624005b7aa945cdcc6.tar.gz
rust-9259da51edfb54a2dfb55a624005b7aa945cdcc6.zip
Test the 3 generator handling versions for generator/async tests.
Diffstat (limited to 'tests/ui/async-await/field-assign.rs')
-rw-r--r--tests/ui/async-await/field-assign.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/ui/async-await/field-assign.rs b/tests/ui/async-await/field-assign.rs
new file mode 100644
index 00000000000..dd0e3f11ccc
--- /dev/null
+++ b/tests/ui/async-await/field-assign.rs
@@ -0,0 +1,46 @@
+// revisions: no_drop_tracking drop_tracking drop_tracking_mir
+// [drop_tracking] compile-flags: -Zdrop-tracking
+// [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir
+// Derived from an ICE found in tokio-xmpp during a crater run.
+// edition:2021
+// build-pass
+
+#![allow(dead_code)]
+
+#[derive(Clone)]
+struct InfoResult {
+    node: Option<String>
+}
+
+struct Agent {
+    info_result: InfoResult
+}
+
+impl Agent {
+    async fn handle(&mut self) {
+        let mut info = self.info_result.clone();
+        info.node = Some("bar".into());
+        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 main() {
+    let mut agent = Agent {
+        info_result: InfoResult { node: None }
+    };
+    let _ = agent.handle();
+}