Suggest changing quotes when str/char type mismatch

This commit is contained in:
chordtoll 2022-01-01 13:32:04 -08:00
parent 4f49627c6f
commit 3087c4dfb7
No known key found for this signature in database
GPG key ID: 6F33950B44755770
10 changed files with 143 additions and 3 deletions

View file

@ -0,0 +1,6 @@
// When a MULTI-character string literal is used where a char should be,
// DO NOT suggest changing to single quotes.
fn main() {
let _: char = "foo"; //~ ERROR mismatched types
}

View file

@ -0,0 +1,11 @@
error[E0308]: mismatched types
--> $DIR/char-as-str-multi.rs:5:19
|
LL | let _: char = "foo";
| ---- ^^^^^ expected `char`, found `&str`
| |
| expected due to this
error: aborting due to previous error
For more information about this error, try `rustc --explain E0308`.

View file

@ -0,0 +1,11 @@
// When a SINGLE-character string literal is used where a char should be,
// suggest changing to single quotes.
// Testing both single-byte and multi-byte characters, as we should handle both.
// run-rustfix
fn main() {
let _: char = 'a'; //~ ERROR mismatched types
let _: char = '人'; //~ ERROR mismatched types
}

View file

@ -0,0 +1,11 @@
// When a SINGLE-character string literal is used where a char should be,
// suggest changing to single quotes.
// Testing both single-byte and multi-byte characters, as we should handle both.
// run-rustfix
fn main() {
let _: char = "a"; //~ ERROR mismatched types
let _: char = ""; //~ ERROR mismatched types
}

View file

@ -0,0 +1,29 @@
error[E0308]: mismatched types
--> $DIR/char-as-str-single.rs:9:19
|
LL | let _: char = "a";
| ---- ^^^ expected `char`, found `&str`
| |
| expected due to this
|
help: if you meant to write a `char` literal, use single quotes
|
LL | let _: char = 'a';
| ~~~
error[E0308]: mismatched types
--> $DIR/char-as-str-single.rs:10:19
|
LL | let _: char = "人";
| ---- ^^^^ expected `char`, found `&str`
| |
| expected due to this
|
help: if you meant to write a `char` literal, use single quotes
|
LL | let _: char = '人';
| ~~~~
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0308`.

View file

@ -0,0 +1,8 @@
// When a char literal is used where a str should be,
// suggest changing to double quotes.
// run-rustfix
fn main() {
let _: &str = "a"; //~ ERROR mismatched types
}

View file

@ -0,0 +1,8 @@
// When a char literal is used where a str should be,
// suggest changing to double quotes.
// run-rustfix
fn main() {
let _: &str = 'a'; //~ ERROR mismatched types
}

View file

@ -0,0 +1,16 @@
error[E0308]: mismatched types
--> $DIR/str-as-char.rs:7:19
|
LL | let _: &str = 'a';
| ---- ^^^ expected `&str`, found `char`
| |
| expected due to this
|
help: if you meant to write a `str` literal, use double quotes
|
LL | let _: &str = "a";
| ~~~
error: aborting due to previous error
For more information about this error, try `rustc --explain E0308`.

View file

@ -12,6 +12,11 @@ error[E0308]: mismatched types
|
LL | let v: Vec(&str) = vec!['1', '2'];
| ^^^ expected `&str`, found `char`
|
help: if you meant to write a `str` literal, use double quotes
|
LL | let v: Vec(&str) = vec!["1", '2'];
| ~~~
error: aborting due to 2 previous errors