about summary refs log tree commit diff
path: root/tests/ui/closures/closure-clone-requires-captured-clone.rs
diff options
context:
space:
mode:
authorKivooeo <Kivooeo123@gmail.com>2025-06-30 00:05:58 +0500
committerKivooeo <Kivooeo123@gmail.com>2025-07-01 15:16:56 +0500
commitda5c6395dad7c5be33f842c3660ae2f6af287f3a (patch)
treeecdab72d5ce57382b83a6abcce3e2a693ba5a192 /tests/ui/closures/closure-clone-requires-captured-clone.rs
parent4feb5de34c1e41da0c10e149e243a25a6eafcd17 (diff)
downloadrust-da5c6395dad7c5be33f842c3660ae2f6af287f3a.tar.gz
rust-da5c6395dad7c5be33f842c3660ae2f6af287f3a.zip
cleaned up some tests
Diffstat (limited to 'tests/ui/closures/closure-clone-requires-captured-clone.rs')
-rw-r--r--tests/ui/closures/closure-clone-requires-captured-clone.rs20
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/ui/closures/closure-clone-requires-captured-clone.rs b/tests/ui/closures/closure-clone-requires-captured-clone.rs
index 976e3b9e81c..80938e50b67 100644
--- a/tests/ui/closures/closure-clone-requires-captured-clone.rs
+++ b/tests/ui/closures/closure-clone-requires-captured-clone.rs
@@ -1,13 +1,19 @@
-//@compile-flags: --diagnostic-width=300
-// Check that closures do not implement `Clone` if their environment is not `Clone`.
+//! Test that closures only implement `Clone` if all captured values implement `Clone`.
+//!
+//! When a closure captures variables from its environment, it can only be cloned
+//! if all those captured variables are cloneable. This test makes sure the compiler
+//! properly rejects attempts to clone closures that capture non-Clone types.
 
-struct S(i32);
+//@ compile-flags: --diagnostic-width=300
+
+struct NonClone(i32);
 
 fn main() {
-    let a = S(5);
-    let hello = move || {
-        println!("Hello {}", a.0);
+    let captured_value = NonClone(5);
+    let closure = move || {
+        let _ = captured_value.0;
     };
 
-    let hello = hello.clone(); //~ ERROR the trait bound `S: Clone` is not satisfied
+    closure.clone();
+    //~^ ERROR the trait bound `NonClone: Clone` is not satisfied
 }