summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mismatched_types/wrap-suggestion-privacy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/mismatched_types/wrap-suggestion-privacy.rs')
-rw-r--r--src/test/ui/mismatched_types/wrap-suggestion-privacy.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/mismatched_types/wrap-suggestion-privacy.rs b/src/test/ui/mismatched_types/wrap-suggestion-privacy.rs
new file mode 100644
index 000000000..63cb1a129
--- /dev/null
+++ b/src/test/ui/mismatched_types/wrap-suggestion-privacy.rs
@@ -0,0 +1,24 @@
+mod inner {
+ pub struct Wrapper<T>(T);
+}
+
+fn needs_wrapper(t: inner::Wrapper<i32>) {}
+fn needs_wrapping(t: std::num::Wrapping<i32>) {}
+fn needs_ready(t: std::future::Ready<i32>) {}
+
+fn main() {
+ // Suggest wrapping expression because type is local
+ // and its privacy can be easily changed
+ needs_wrapper(0);
+ //~^ ERROR mismatched types
+ //~| HELP try wrapping the expression in `inner::Wrapper`
+
+ // Suggest wrapping expression because field is accessible
+ needs_wrapping(0);
+ //~^ ERROR mismatched types
+ //~| HELP try wrapping the expression in `std::num::Wrapping`
+
+ // Do not suggest wrapping expression
+ needs_ready(Some(0));
+ //~^ ERROR mismatched types
+}