Rollup merge of #105965 - compiler-errors:issue-105896, r=cjgillot
Provide local extern function arg names Fixes #105896
This commit is contained in:
commit
3fba7b4523
3 changed files with 40 additions and 1 deletions
|
@ -160,9 +160,13 @@ pub fn provide(providers: &mut Providers) {
|
||||||
} else if let Node::TraitItem(&TraitItem {
|
} else if let Node::TraitItem(&TraitItem {
|
||||||
kind: TraitItemKind::Fn(_, TraitFn::Required(idents)),
|
kind: TraitItemKind::Fn(_, TraitFn::Required(idents)),
|
||||||
..
|
..
|
||||||
|
})
|
||||||
|
| Node::ForeignItem(&ForeignItem {
|
||||||
|
kind: ForeignItemKind::Fn(_, idents, _),
|
||||||
|
..
|
||||||
}) = hir.get(hir_id)
|
}) = hir.get(hir_id)
|
||||||
{
|
{
|
||||||
tcx.arena.alloc_slice(idents)
|
idents
|
||||||
} else {
|
} else {
|
||||||
span_bug!(hir.span(hir_id), "fn_arg_names: unexpected item {:?}", id);
|
span_bug!(hir.span(hir_id), "fn_arg_names: unexpected item {:?}", id);
|
||||||
}
|
}
|
||||||
|
|
9
src/test/ui/argument-suggestions/extern-fn-arg-names.rs
Normal file
9
src/test/ui/argument-suggestions/extern-fn-arg-names.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
extern "Rust" {
|
||||||
|
fn dstfn(src: i32, dst: err);
|
||||||
|
//~^ ERROR cannot find type `err` in this scope
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
dstfn(1);
|
||||||
|
//~^ ERROR this function takes 2 arguments but 1 argument was supplied
|
||||||
|
}
|
26
src/test/ui/argument-suggestions/extern-fn-arg-names.stderr
Normal file
26
src/test/ui/argument-suggestions/extern-fn-arg-names.stderr
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
error[E0412]: cannot find type `err` in this scope
|
||||||
|
--> $DIR/extern-fn-arg-names.rs:2:29
|
||||||
|
|
|
||||||
|
LL | fn dstfn(src: i32, dst: err);
|
||||||
|
| ^^^ not found in this scope
|
||||||
|
|
||||||
|
error[E0061]: this function takes 2 arguments but 1 argument was supplied
|
||||||
|
--> $DIR/extern-fn-arg-names.rs:7:5
|
||||||
|
|
|
||||||
|
LL | dstfn(1);
|
||||||
|
| ^^^^^--- an argument is missing
|
||||||
|
|
|
||||||
|
note: function defined here
|
||||||
|
--> $DIR/extern-fn-arg-names.rs:2:8
|
||||||
|
|
|
||||||
|
LL | fn dstfn(src: i32, dst: err);
|
||||||
|
| ^^^^^
|
||||||
|
help: provide the argument
|
||||||
|
|
|
||||||
|
LL | dstfn(1, /* dst */);
|
||||||
|
| ~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0061, E0412.
|
||||||
|
For more information about an error, try `rustc --explain E0061`.
|
Loading…
Add table
Add a link
Reference in a new issue