Rollup merge of #98677 - lyming2007:issue-98492-fix, r=lcnr

For diagnostic information of Boolean, remind it as use the type: 'bool'

Fixes #98492.

It helps programmers coming from other languages
	modified:   compiler/rustc_resolve/src/late/diagnostics.rs
This commit is contained in:
Matthias Krüger 2022-06-30 19:55:53 +02:00 committed by GitHub
commit 6ee667374e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 6 deletions

View File

@ -1503,6 +1503,8 @@ fn likely_rust_type(path: &[Segment]) -> Option<Symbol> {
Some(match name {
"byte" => sym::u8, // In Java, bytes are signed, but in practice one almost always wants unsigned bytes.
"short" => sym::i16,
"Bool" => sym::bool,
"Boolean" => sym::bool,
"boolean" => sym::bool,
"int" => sym::i32,
"long" => sym::i64,

View File

@ -7,6 +7,13 @@ fn main() {
let y: long = 74802374902374923;
//~^ ERROR cannot find type `long` in this scope
//~| HELP perhaps you intended to use this type
let v1: Boolean = true;
//~^ ERROR: cannot find type `Boolean` in this scope [E0412]
//~| HELP perhaps you intended to use this type
let v2: Bool = true;
//~^ ERROR: cannot find type `Bool` in this scope [E0412]
//~| HELP a builtin type with a similar name exists
//~| HELP perhaps you intended to use this type
}
fn z(a: boolean) {

View File

@ -16,8 +16,32 @@ LL | let y: long = 74802374902374923;
| not found in this scope
| help: perhaps you intended to use this type: `i64`
error[E0412]: cannot find type `Boolean` in this scope
--> $DIR/recommend-literal.rs:10:13
|
LL | let v1: Boolean = true;
| ^^^^^^^
| |
| not found in this scope
| help: perhaps you intended to use this type: `bool`
error[E0412]: cannot find type `Bool` in this scope
--> $DIR/recommend-literal.rs:13:13
|
LL | let v2: Bool = true;
| ^^^^
|
help: a builtin type with a similar name exists
|
LL | let v2: bool = true;
| ~~~~
help: perhaps you intended to use this type
|
LL | let v2: bool = true;
| ~~~~
error[E0412]: cannot find type `boolean` in this scope
--> $DIR/recommend-literal.rs:12:9
--> $DIR/recommend-literal.rs:19:9
|
LL | fn z(a: boolean) {
| ^^^^^^^
@ -26,7 +50,7 @@ LL | fn z(a: boolean) {
| help: perhaps you intended to use this type: `bool`
error[E0412]: cannot find type `byte` in this scope
--> $DIR/recommend-literal.rs:17:11
--> $DIR/recommend-literal.rs:24:11
|
LL | fn a() -> byte {
| ^^^^
@ -35,7 +59,7 @@ LL | fn a() -> byte {
| help: perhaps you intended to use this type: `u8`
error[E0412]: cannot find type `float` in this scope
--> $DIR/recommend-literal.rs:24:12
--> $DIR/recommend-literal.rs:31:12
|
LL | width: float,
| ^^^^^
@ -44,7 +68,7 @@ LL | width: float,
| help: perhaps you intended to use this type: `f32`
error[E0412]: cannot find type `int` in this scope
--> $DIR/recommend-literal.rs:27:19
--> $DIR/recommend-literal.rs:34:19
|
LL | depth: Option<int>,
| ^^^ not found in this scope
@ -59,7 +83,7 @@ LL | struct Data<int> {
| +++++
error[E0412]: cannot find type `short` in this scope
--> $DIR/recommend-literal.rs:33:16
--> $DIR/recommend-literal.rs:40:16
|
LL | impl Stuff for short {}
| ^^^^^
@ -67,6 +91,6 @@ LL | impl Stuff for short {}
| not found in this scope
| help: perhaps you intended to use this type: `i16`
error: aborting due to 7 previous errors
error: aborting due to 9 previous errors
For more information about this error, try `rustc --explain E0412`.