summaryrefslogtreecommitdiffstats
path: root/tests/ui/type
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/type')
-rw-r--r--tests/ui/type/type-check/assignment-in-if.stderr9
-rw-r--r--tests/ui/type/type-check/point-at-inference-3.fixed3
-rw-r--r--tests/ui/type/type-check/point-at-inference-3.rs3
-rw-r--r--tests/ui/type/type-check/point-at-inference-3.stderr6
-rw-r--r--tests/ui/type/type-check/point-at-inference-4.rs3
-rw-r--r--tests/ui/type/type-check/point-at-inference-4.stderr11
-rw-r--r--tests/ui/type/type-check/point-at-inference.stderr4
7 files changed, 24 insertions, 15 deletions
diff --git a/tests/ui/type/type-check/assignment-in-if.stderr b/tests/ui/type/type-check/assignment-in-if.stderr
index de133e559..9f4558ada 100644
--- a/tests/ui/type/type-check/assignment-in-if.stderr
+++ b/tests/ui/type/type-check/assignment-in-if.stderr
@@ -67,9 +67,6 @@ LL | x == 5
error[E0308]: mismatched types
--> $DIR/assignment-in-if.rs:44:18
|
-LL | if y = (Foo { foo: x }) {
- | - here the type of `x` is inferred to be `usize`
-...
LL | if x == x && x = x && x == x {
| ------ ^ expected `bool`, found `usize`
| |
@@ -78,9 +75,6 @@ LL | if x == x && x = x && x == x {
error[E0308]: mismatched types
--> $DIR/assignment-in-if.rs:44:22
|
-LL | if y = (Foo { foo: x }) {
- | - here the type of `x` is inferred to be `usize`
-...
LL | if x == x && x = x && x == x {
| ^ expected `bool`, found `usize`
@@ -98,9 +92,6 @@ LL | if x == x && x == x && x == x {
error[E0308]: mismatched types
--> $DIR/assignment-in-if.rs:51:28
|
-LL | if y = (Foo { foo: x }) {
- | - here the type of `x` is inferred to be `usize`
-...
LL | if x == x && x == x && x = x {
| ---------------- ^ expected `bool`, found `usize`
| |
diff --git a/tests/ui/type/type-check/point-at-inference-3.fixed b/tests/ui/type/type-check/point-at-inference-3.fixed
index edd4adf8b..15a3b5805 100644
--- a/tests/ui/type/type-check/point-at-inference-3.fixed
+++ b/tests/ui/type/type-check/point-at-inference-3.fixed
@@ -2,7 +2,8 @@
fn main() {
let mut v = Vec::new();
v.push(0i32);
- //~^ NOTE this is of type `i32`, which causes `v` to be inferred as `Vec<i32>`
+ //~^ NOTE this argument has type `i32`...
+ //~| NOTE ... which causes `v` to have type `Vec<i32>`
v.push(0);
v.push(1i32); //~ ERROR mismatched types
//~^ NOTE expected `i32`, found `u32`
diff --git a/tests/ui/type/type-check/point-at-inference-3.rs b/tests/ui/type/type-check/point-at-inference-3.rs
index 49d7b5007..a48c4f986 100644
--- a/tests/ui/type/type-check/point-at-inference-3.rs
+++ b/tests/ui/type/type-check/point-at-inference-3.rs
@@ -2,7 +2,8 @@
fn main() {
let mut v = Vec::new();
v.push(0i32);
- //~^ NOTE this is of type `i32`, which causes `v` to be inferred as `Vec<i32>`
+ //~^ NOTE this argument has type `i32`...
+ //~| NOTE ... which causes `v` to have type `Vec<i32>`
v.push(0);
v.push(1u32); //~ ERROR mismatched types
//~^ NOTE expected `i32`, found `u32`
diff --git a/tests/ui/type/type-check/point-at-inference-3.stderr b/tests/ui/type/type-check/point-at-inference-3.stderr
index 2c4907ed2..238764812 100644
--- a/tests/ui/type/type-check/point-at-inference-3.stderr
+++ b/tests/ui/type/type-check/point-at-inference-3.stderr
@@ -1,8 +1,10 @@
error[E0308]: mismatched types
- --> $DIR/point-at-inference-3.rs:7:12
+ --> $DIR/point-at-inference-3.rs:8:12
|
LL | v.push(0i32);
- | ---- this is of type `i32`, which causes `v` to be inferred as `Vec<i32>`
+ | - ---- this argument has type `i32`...
+ | |
+ | ... which causes `v` to have type `Vec<i32>`
...
LL | v.push(1u32);
| ---- ^^^^ expected `i32`, found `u32`
diff --git a/tests/ui/type/type-check/point-at-inference-4.rs b/tests/ui/type/type-check/point-at-inference-4.rs
index aea9b2c6c..3deb234c2 100644
--- a/tests/ui/type/type-check/point-at-inference-4.rs
+++ b/tests/ui/type/type-check/point-at-inference-4.rs
@@ -11,8 +11,11 @@ fn main() {
let s = S(None);
s.infer(0i32);
//~^ ERROR this method takes 2 arguments but 1 argument was supplied
+ //~| NOTE this argument has type `i32`...
+ //~| NOTE ... which causes `s` to have type `S<i32, _>`
//~| NOTE an argument is missing
//~| HELP provide the argument
+ //~| HELP change the type of the numeric literal from `i32` to `u32`
let t: S<u32, _> = s;
//~^ ERROR mismatched types
//~| NOTE expected `S<u32, _>`, found `S<i32, _>`
diff --git a/tests/ui/type/type-check/point-at-inference-4.stderr b/tests/ui/type/type-check/point-at-inference-4.stderr
index 28833d2ed..5f7bb8b93 100644
--- a/tests/ui/type/type-check/point-at-inference-4.stderr
+++ b/tests/ui/type/type-check/point-at-inference-4.stderr
@@ -15,8 +15,13 @@ LL | s.infer(0i32, /* b */);
| ~~~~~~~~~~~~~~~
error[E0308]: mismatched types
- --> $DIR/point-at-inference-4.rs:16:24
+ --> $DIR/point-at-inference-4.rs:19:24
|
+LL | s.infer(0i32);
+ | - ---- this argument has type `i32`...
+ | |
+ | ... which causes `s` to have type `S<i32, _>`
+...
LL | let t: S<u32, _> = s;
| --------- ^ expected `S<u32, _>`, found `S<i32, _>`
| |
@@ -24,6 +29,10 @@ LL | let t: S<u32, _> = s;
|
= note: expected struct `S<u32, _>`
found struct `S<i32, _>`
+help: change the type of the numeric literal from `i32` to `u32`
+ |
+LL | s.infer(0u32);
+ | ~~~
error: aborting due to 2 previous errors
diff --git a/tests/ui/type/type-check/point-at-inference.stderr b/tests/ui/type/type-check/point-at-inference.stderr
index a76b4f90c..5fc94d4d1 100644
--- a/tests/ui/type/type-check/point-at-inference.stderr
+++ b/tests/ui/type/type-check/point-at-inference.stderr
@@ -2,7 +2,9 @@ error[E0308]: mismatched types
--> $DIR/point-at-inference.rs:12:9
|
LL | foo.push(i);
- | - this is of type `&{integer}`, which causes `foo` to be inferred as `Vec<&{integer}>`
+ | --- - this argument has type `&{integer}`...
+ | |
+ | ... which causes `foo` to have type `Vec<&{integer}>`
...
LL | bar(foo);
| --- ^^^ expected `Vec<i32>`, found `Vec<&{integer}>`