summaryrefslogtreecommitdiffstats
path: root/src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs')
-rw-r--r--src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs b/src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs
new file mode 100644
index 000000000..a75c91cc9
--- /dev/null
+++ b/src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs
@@ -0,0 +1,11 @@
+// Check that we don't blindly emit a diagnostic claiming that "`main` has an invalid return type"
+// if we encounter a type that doesn't implement `std::process::Termination` and is not actually
+// the return type of the program entry `main`.
+
+fn receive(_: impl std::process::Termination) {}
+
+struct Something;
+
+fn main() {
+ receive(Something); //~ ERROR the trait bound `Something: Termination` is not satisfied
+}