about summary refs log tree commit diff
path: root/tests/ui/issues/auxiliary/issue-31702-2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/auxiliary/issue-31702-2.rs')
-rw-r--r--tests/ui/issues/auxiliary/issue-31702-2.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ui/issues/auxiliary/issue-31702-2.rs b/tests/ui/issues/auxiliary/issue-31702-2.rs
new file mode 100644
index 00000000000..d360ae0ca7e
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-31702-2.rs
@@ -0,0 +1,20 @@
+// compile-flags: -g
+
+extern crate issue_31702_1;
+
+use std::collections::HashMap;
+use issue_31702_1::U256;
+
+pub struct Ethash {
+    engine_params: fn() -> Option<&'static Vec<u8>>,
+    u256_params: HashMap<String, U256>,
+}
+
+impl Ethash {
+    pub fn u256_param(&mut self, name: &str) -> U256 {
+        let engine = self.engine_params;
+        *self.u256_params.entry(name.to_owned()).or_insert_with(|| {
+            engine().map_or(U256::new(0u64), |_a| loop {})
+        })
+    }
+}