Skip to content

Commit 5f6645d

Browse files
committed
Add test for str for "expected primitive, found type"
1 parent d37e6df commit 5f6645d

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
#![allow(non_camel_case_types)]
22

33
struct bool;
4+
struct str;
45

56
fn foo(_: bool) {}
7+
fn bar(_: &str) {}
68

79
fn main() {
810
foo(true);
911
//~^ ERROR mismatched types [E0308]
12+
bar("hello");
13+
//~^ ERROR mismatched types [E0308]
1014
}

tests/ui/mismatched_types/similar_paths_primitive.stderr

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error[E0308]: mismatched types
2-
--> $DIR/similar_paths_primitive.rs:8:9
2+
--> $DIR/similar_paths_primitive.rs:10:9
33
|
44
LL | foo(true);
55
| --- ^^^^ expected `bool`, found a different `bool`
@@ -14,11 +14,32 @@ note: `bool` is defined in the current crate
1414
LL | struct bool;
1515
| ^^^^^^^^^^^
1616
note: function defined here
17-
--> $DIR/similar_paths_primitive.rs:5:4
17+
--> $DIR/similar_paths_primitive.rs:6:4
1818
|
1919
LL | fn foo(_: bool) {}
2020
| ^^^ -------
2121

22-
error: aborting due to 1 previous error
22+
error[E0308]: mismatched types
23+
--> $DIR/similar_paths_primitive.rs:12:9
24+
|
25+
LL | bar("hello");
26+
| --- ^^^^^^^ expected `str`, found a different `str`
27+
| |
28+
| arguments to this function are incorrect
29+
|
30+
= note: str and `str` have similar names, but are actually distinct types
31+
= note: str is a primitive defined by the language
32+
note: `str` is defined in the current crate
33+
--> $DIR/similar_paths_primitive.rs:4:1
34+
|
35+
LL | struct str;
36+
| ^^^^^^^^^^
37+
note: function defined here
38+
--> $DIR/similar_paths_primitive.rs:7:4
39+
|
40+
LL | fn bar(_: &str) {}
41+
| ^^^ -------
42+
43+
error: aborting due to 2 previous errors
2344

2445
For more information about this error, try `rustc --explain E0308`.

0 commit comments

Comments
 (0)