Fix regression: account for trait methods in arg count mismatch error
This commit is contained in:
parent
385ef1514c
commit
c06c707fbf
3 changed files with 33 additions and 0 deletions
|
|
@ -831,6 +831,11 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
|
|||
span,
|
||||
node: hir::ImplItemKind::Method(hir::MethodSig { ref decl, .. }, _),
|
||||
..
|
||||
}) |
|
||||
hir::map::NodeTraitItem(&hir::TraitItem {
|
||||
span,
|
||||
node: hir::TraitItemKind::Method(hir::MethodSig { ref decl, .. }, _),
|
||||
..
|
||||
}) => {
|
||||
(self.tcx.sess.codemap().def_span(span), decl.inputs.iter()
|
||||
.map(|arg| match arg.clone().into_inner().node {
|
||||
|
|
|
|||
16
src/test/ui/issue-47706-trait.rs
Normal file
16
src/test/ui/issue-47706-trait.rs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
trait T {
|
||||
fn f(&self, _: ()) {
|
||||
None::<()>.map(Self::f);
|
||||
}
|
||||
//~^^ ERROR function is expected to take a single 0-tuple as argument
|
||||
}
|
||||
12
src/test/ui/issue-47706-trait.stderr
Normal file
12
src/test/ui/issue-47706-trait.stderr
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0601]: main function not found
|
||||
|
||||
error[E0593]: function is expected to take a single 0-tuple as argument, but it takes 2 distinct arguments
|
||||
--> $DIR/issue-47706-trait.rs:13:20
|
||||
|
|
||||
12 | fn f(&self, _: ()) {
|
||||
| ------------------ takes 2 distinct arguments
|
||||
13 | None::<()>.map(Self::f);
|
||||
| ^^^ expected function that takes a single 0-tuple as argument
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue