summaryrefslogtreecommitdiffstats
path: root/tests/ui/typeck/bad-type-in-vec-push.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/typeck/bad-type-in-vec-push.rs')
-rw-r--r--tests/ui/typeck/bad-type-in-vec-push.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ui/typeck/bad-type-in-vec-push.rs b/tests/ui/typeck/bad-type-in-vec-push.rs
new file mode 100644
index 000000000..a807f030c
--- /dev/null
+++ b/tests/ui/typeck/bad-type-in-vec-push.rs
@@ -0,0 +1,20 @@
+// The error message here still is pretty confusing.
+
+fn main() {
+ let mut result = vec![1];
+ // The type of `result` is constrained to be `Vec<{integer}>` here.
+ // But the logic we use to find what expression constrains a type
+ // is not sophisticated enough to know this.
+
+ let mut vector = Vec::new();
+ vector.sort();
+ result.push(vector);
+ //~^ ERROR mismatched types
+ // So it thinks that the type of `result` is constrained here.
+}
+
+fn example2() {
+ let mut x = vec![1];
+ x.push("");
+ //~^ ERROR mismatched types
+}