added improved diagnostic for a function defined with an invalid qualifier
This commit is contained in:
parent
801821d156
commit
1b54ad0585
9 changed files with 89 additions and 0 deletions
|
@ -611,6 +611,15 @@ impl<'a> Parser<'a> {
|
||||||
appl,
|
appl,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ["def", "fun", "func", "function"].contains(&symbol.as_str()) {
|
||||||
|
err.span_suggestion_short(
|
||||||
|
self.prev_token.span,
|
||||||
|
&format!("write `fn` instead of `{symbol}` to declare a function"),
|
||||||
|
"fn",
|
||||||
|
appl,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add suggestion for a missing closing angle bracket if '>' is included in expected_tokens
|
// Add suggestion for a missing closing angle bracket if '>' is included in expected_tokens
|
||||||
|
|
10
src/test/ui/parser/fn-defined-using-def.rs
Normal file
10
src/test/ui/parser/fn-defined-using-def.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Check what happens when `def` is used to define a function, instead of `fn`
|
||||||
|
// edition:2021
|
||||||
|
|
||||||
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
def foo() {}
|
||||||
|
//~^ ERROR expected one of `!` or `::`, found `foo`
|
||||||
|
//~^^ HELP write `fn` instead of `def` to declare a function
|
||||||
|
|
||||||
|
fn main() {}
|
10
src/test/ui/parser/fn-defined-using-def.stderr
Normal file
10
src/test/ui/parser/fn-defined-using-def.stderr
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
error: expected one of `!` or `::`, found `foo`
|
||||||
|
--> $DIR/fn-defined-using-def.rs:6:5
|
||||||
|
|
|
||||||
|
LL | def foo() {}
|
||||||
|
| --- ^^^ expected one of `!` or `::`
|
||||||
|
| |
|
||||||
|
| help: write `fn` instead of `def` to declare a function
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
10
src/test/ui/parser/fn-defined-using-fun.rs
Normal file
10
src/test/ui/parser/fn-defined-using-fun.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Check what happens when `fun` is used to define a function, instead of `fn`
|
||||||
|
// edition:2021
|
||||||
|
|
||||||
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
fun foo() {}
|
||||||
|
//~^ ERROR expected one of `!` or `::`, found `foo`
|
||||||
|
//~^^ HELP write `fn` instead of `fun` to declare a function
|
||||||
|
|
||||||
|
fn main() {}
|
10
src/test/ui/parser/fn-defined-using-fun.stderr
Normal file
10
src/test/ui/parser/fn-defined-using-fun.stderr
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
error: expected one of `!` or `::`, found `foo`
|
||||||
|
--> $DIR/fn-defined-using-fun.rs:6:5
|
||||||
|
|
|
||||||
|
LL | fun foo() {}
|
||||||
|
| --- ^^^ expected one of `!` or `::`
|
||||||
|
| |
|
||||||
|
| help: write `fn` instead of `fun` to declare a function
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
10
src/test/ui/parser/fn-defined-using-func.rs
Normal file
10
src/test/ui/parser/fn-defined-using-func.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Check what happens when `func` is used to define a function, instead of `fn`
|
||||||
|
// edition:2021
|
||||||
|
|
||||||
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
func foo() {}
|
||||||
|
//~^ ERROR expected one of `!` or `::`, found `foo`
|
||||||
|
//~^^ HELP write `fn` instead of `func` to declare a function
|
||||||
|
|
||||||
|
fn main() {}
|
10
src/test/ui/parser/fn-defined-using-func.stderr
Normal file
10
src/test/ui/parser/fn-defined-using-func.stderr
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
error: expected one of `!` or `::`, found `foo`
|
||||||
|
--> $DIR/fn-defined-using-func.rs:6:6
|
||||||
|
|
|
||||||
|
LL | func foo() {}
|
||||||
|
| ---- ^^^ expected one of `!` or `::`
|
||||||
|
| |
|
||||||
|
| help: write `fn` instead of `func` to declare a function
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
10
src/test/ui/parser/fn-defined-using-function.rs
Normal file
10
src/test/ui/parser/fn-defined-using-function.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// Check what happens when `function` is used to define a function, instead of `fn`
|
||||||
|
// edition:2021
|
||||||
|
|
||||||
|
#![allow(dead_code)]
|
||||||
|
|
||||||
|
function foo() {}
|
||||||
|
//~^ ERROR expected one of `!` or `::`, found `foo`
|
||||||
|
//~^^ HELP write `fn` instead of `function` to declare a function
|
||||||
|
|
||||||
|
fn main() {}
|
10
src/test/ui/parser/fn-defined-using-function.stderr
Normal file
10
src/test/ui/parser/fn-defined-using-function.stderr
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
error: expected one of `!` or `::`, found `foo`
|
||||||
|
--> $DIR/fn-defined-using-function.rs:6:10
|
||||||
|
|
|
||||||
|
LL | function foo() {}
|
||||||
|
| -------- ^^^ expected one of `!` or `::`
|
||||||
|
| |
|
||||||
|
| help: write `fn` instead of `function` to declare a function
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue