summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2023-01-06 00:24:42 +0900
committerYuki Okushi <jtitor@2k36.org>2023-01-06 00:24:42 +0900
commitb83fa06c561dbccb1cdb35c4862d4f47969a1cab (patch)
treece225d179d4247c5c22975ebc218d97fae190a24
parente94fab69d020d75517cb55fafacb2d270ad6e0ac (diff)
downloadrust-b83fa06c561dbccb1cdb35c4862d4f47969a1cab.tar.gz
rust-b83fa06c561dbccb1cdb35c4862d4f47969a1cab.zip
Add regression test for #58355
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
-rw-r--r--src/test/ui/type/issue-58355.rs7
-rw-r--r--src/test/ui/type/issue-58355.stderr13
2 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/type/issue-58355.rs b/src/test/ui/type/issue-58355.rs
new file mode 100644
index 00000000000..3b62fdece40
--- /dev/null
+++ b/src/test/ui/type/issue-58355.rs
@@ -0,0 +1,7 @@
+#![crate_type = "lib"]
+
+pub fn foo(callback: fn() -> dyn ToString) {
+    let mut x: Option<Box<dyn Fn() -> dyn ToString>> = None;
+    x = Some(Box::new(callback));
+    //~^ ERROR: the size for values of type `dyn ToString` cannot be known at compilation time
+}
diff --git a/src/test/ui/type/issue-58355.stderr b/src/test/ui/type/issue-58355.stderr
new file mode 100644
index 00000000000..6f89a7b0049
--- /dev/null
+++ b/src/test/ui/type/issue-58355.stderr
@@ -0,0 +1,13 @@
+error[E0277]: the size for values of type `dyn ToString` cannot be known at compilation time
+  --> $DIR/issue-58355.rs:5:14
+   |
+LL |     x = Some(Box::new(callback));
+   |              ^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
+   |
+   = help: within `fn() -> dyn ToString`, the trait `Sized` is not implemented for `dyn ToString`
+   = note: required because it appears within the type `fn() -> dyn ToString`
+   = note: required for the cast from `fn() -> dyn ToString` to the object type `dyn Fn() -> (dyn ToString + 'static)`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.