summaryrefslogtreecommitdiffstats
path: root/src/test/ui/return/return-impl-trait-bad.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/return/return-impl-trait-bad.rs')
-rw-r--r--src/test/ui/return/return-impl-trait-bad.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/return/return-impl-trait-bad.rs b/src/test/ui/return/return-impl-trait-bad.rs
new file mode 100644
index 000000000..e3f6ddb9a
--- /dev/null
+++ b/src/test/ui/return/return-impl-trait-bad.rs
@@ -0,0 +1,31 @@
+trait Trait {}
+impl Trait for () {}
+
+fn bad_echo<T>(_t: T) -> T {
+ "this should not suggest impl Trait" //~ ERROR mismatched types
+}
+
+fn bad_echo_2<T: Trait>(_t: T) -> T {
+ "this will not suggest it, because that would probably be wrong" //~ ERROR mismatched types
+}
+
+fn other_bounds_bad<T>() -> T
+where
+ T: Send,
+ Option<T>: Send,
+{
+ "don't suggest this, because Option<T> places additional constraints" //~ ERROR mismatched types
+}
+
+// FIXME: implement this check
+trait GenericTrait<T> {}
+
+fn used_in_trait<T>() -> T
+where
+ T: Send,
+ (): GenericTrait<T>,
+{
+ "don't suggest this, because the generic param is used in the bound." //~ ERROR mismatched types
+}
+
+fn main() {}