Point to ADT definition when not finding variant, method, assoc type

This commit is contained in:
Esteban Küber 2017-11-15 22:18:52 -08:00
parent 6a972cd855
commit f796fcd623
19 changed files with 286 additions and 105 deletions

View File

@ -175,32 +175,49 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
let tcx = self.tcx;
let actual = self.resolve_type_vars_if_possible(&rcvr_ty);
let mut err = if !actual.references_error() {
struct_span_err!(tcx.sess, span, E0599,
"no {} named `{}` found for type `{}` in the \
current scope",
if mode == Mode::MethodCall {
"method"
} else if actual.is_enum() {
"variant"
} else {
let fresh_ty = actual.is_fresh_ty();
match (item_name.as_str().chars().next(), fresh_ty) {
(Some(name), false) if name.is_lowercase() => {
"function or associated item"
}
(Some(_), false) => "associated item",
(Some(_), true) | (None, false) => {
"variant or associated item"
}
(None, true) => "variant",
}
},
item_name,
self.ty_to_string(actual))
let ty_string = self.ty_to_string(actual);
let type_str = if mode == Mode::MethodCall {
"method"
} else if actual.is_enum() {
"variant"
} else {
self.tcx.sess.diagnostic().struct_dummy()
match (item_name.as_str().chars().next(), actual.is_fresh_ty()) {
(Some(name), false) if name.is_lowercase() => {
"function or associated item"
}
(Some(_), false) => "associated item",
(Some(_), true) | (None, false) => {
"variant or associated item"
}
(None, true) => "variant",
}
};
let mut err = if !actual.references_error() {
struct_span_err!(
tcx.sess,
span,
E0599,
"no {} named `{}` found for type `{}` in the current scope",
type_str,
item_name,
ty_string
)
} else {
tcx.sess.diagnostic().struct_dummy()
};
if let Some(def) = actual.ty_adt_def() {
let full_sp = tcx.def_span(def.did);
let def_sp = tcx.sess.codemap().def_span(full_sp);
err.span_label(def_sp, format!("{} `{}` not found {}",
type_str,
item_name,
if def.is_enum() {
"here"
} else {
"for this"
}));
}
// If the method name is the name of a field with a function or closure type,
// give a helping note that it has to be called as (x.f)(...).
@ -243,6 +260,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
_ => {}
}
}
} else {
err.span_label(span, format!("{} not found in `{}`", type_str, ty_string));
}
if self.is_fn_ty(&rcvr_ty, span) {

View File

@ -10,6 +10,7 @@
enum color { rgb(isize, isize, isize), rgba(isize, isize, isize, isize), }
//~^ NOTE variant `hsl` not found here
fn main() {
let red: color = color::rgb(255, 0, 0);

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
enum Delicious {
enum Delicious { //~ NOTE variant `PIE` not found here
Pie = 0x1,
Apple = 0x2,
ApplePie = Delicious::Apple as isize | Delicious::PIE as isize,

View File

@ -9,6 +9,7 @@
// except according to those terms.
enum Token { LeftParen, RightParen, Plus, Minus, /* etc */ }
//~^ NOTE variant `Homura` not found here
fn use_token(token: &Token) { unimplemented!() }

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
pub enum SomeEnum {
pub enum SomeEnum { //~ NOTE variant `A` not found here
B = SomeEnum::A,
//~^ ERROR no variant named `A` found for type `SomeEnum`
}

View File

@ -10,7 +10,7 @@
// This should not cause an ICE
enum Foo {
enum Foo { //~ NOTE variant `Baz` not found here
Bar(u8)
}
fn main(){

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `foo` found for type `Bar` in the current scope
--> $DIR/issue-21659-show-relevant-trait-impls-3.rs:30:8
|
23 | struct Bar;
| ----------- method `foo` not found for this
...
30 | f1.foo(1usize);
| ^^^
|

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `is_empty` found for type `Foo` in the current scope
--> $DIR/method-suggestion-no-duplication.rs:19:15
|
14 | struct Foo;
| ----------- method `is_empty` not found for this
...
19 | foo(|s| s.is_empty());
| ^^^^^^^^
|

View File

@ -12,17 +12,22 @@ error[E0599]: no method named `method` found for type `u32` in the current scope
candidate #4: `use no_method_suggested_traits::Reexported;`
error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&u32>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:38:44
|
38 | std::rc::Rc::new(&mut Box::new(&1u32)).method();
| ^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following traits are implemented but not in scope, perhaps add a `use` for one of them:
candidate #1: `use foo::Bar;`
candidate #2: `use no_method_suggested_traits::foo::PubPub;`
candidate #3: `use no_method_suggested_traits::qux::PrivPub;`
candidate #4: `use no_method_suggested_traits::Reexported;`
--> $DIR/no-method-suggested-traits.rs:38:44
|
38 | std::rc::Rc::new(&mut Box::new(&1u32)).method();
| ^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method` not found for this
|
= help: items from traits can only be used if the trait is in scope
= note: the following traits are implemented but not in scope, perhaps add a `use` for one of them:
candidate #1: `use foo::Bar;`
candidate #2: `use no_method_suggested_traits::foo::PubPub;`
candidate #3: `use no_method_suggested_traits::qux::PrivPub;`
candidate #4: `use no_method_suggested_traits::Reexported;`
error[E0599]: no method named `method` found for type `char` in the current scope
--> $DIR/no-method-suggested-traits.rs:44:9
@ -35,14 +40,19 @@ error[E0599]: no method named `method` found for type `char` in the current scop
candidate #1: `use foo::Bar;`
error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&char>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:48:43
|
48 | std::rc::Rc::new(&mut Box::new(&'a')).method();
| ^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a `use` for it:
candidate #1: `use foo::Bar;`
--> $DIR/no-method-suggested-traits.rs:48:43
|
48 | std::rc::Rc::new(&mut Box::new(&'a')).method();
| ^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method` not found for this
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a `use` for it:
candidate #1: `use foo::Bar;`
error[E0599]: no method named `method` found for type `i32` in the current scope
--> $DIR/no-method-suggested-traits.rs:53:10
@ -55,18 +65,25 @@ error[E0599]: no method named `method` found for type `i32` in the current scope
candidate #1: `use no_method_suggested_traits::foo::PubPub;`
error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&i32>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:57:44
|
57 | std::rc::Rc::new(&mut Box::new(&1i32)).method();
| ^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a `use` for it:
candidate #1: `use no_method_suggested_traits::foo::PubPub;`
--> $DIR/no-method-suggested-traits.rs:57:44
|
57 | std::rc::Rc::new(&mut Box::new(&1i32)).method();
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method` not found for this
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a `use` for it:
candidate #1: `use no_method_suggested_traits::foo::PubPub;`
error[E0599]: no method named `method` found for type `Foo` in the current scope
--> $DIR/no-method-suggested-traits.rs:62:9
|
14 | struct Foo;
| ----------- method `method` not found for this
...
62 | Foo.method();
| ^^^^^^
|
@ -80,19 +97,24 @@ error[E0599]: no method named `method` found for type `Foo` in the current scope
candidate #6: `no_method_suggested_traits::Reexported`
error[E0599]: no method named `method` found for type `std::rc::Rc<&mut std::boxed::Box<&Foo>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:71:43
|
71 | std::rc::Rc::new(&mut Box::new(&Foo)).method();
| ^^^^^^
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following traits define an item `method`, perhaps you need to implement one of them:
candidate #1: `foo::Bar`
candidate #2: `no_method_suggested_traits::foo::PubPub`
candidate #3: `no_method_suggested_traits::bar::PubPriv`
candidate #4: `no_method_suggested_traits::qux::PrivPub`
candidate #5: `no_method_suggested_traits::quz::PrivPriv`
candidate #6: `no_method_suggested_traits::Reexported`
--> $DIR/no-method-suggested-traits.rs:71:43
|
71 | std::rc::Rc::new(&mut Box::new(&Foo)).method();
| ^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following traits define an item `method`, perhaps you need to implement one of them:
candidate #1: `foo::Bar`
candidate #2: `no_method_suggested_traits::foo::PubPub`
candidate #3: `no_method_suggested_traits::bar::PubPriv`
candidate #4: `no_method_suggested_traits::qux::PrivPub`
candidate #5: `no_method_suggested_traits::quz::PrivPriv`
candidate #6: `no_method_suggested_traits::Reexported`
error[E0599]: no method named `method2` found for type `u64` in the current scope
--> $DIR/no-method-suggested-traits.rs:81:10
@ -105,40 +127,60 @@ error[E0599]: no method named `method2` found for type `u64` in the current scop
candidate #1: `foo::Bar`
error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::boxed::Box<&u64>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:85:44
|
85 | std::rc::Rc::new(&mut Box::new(&1u64)).method2();
| ^^^^^^^
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
candidate #1: `foo::Bar`
--> $DIR/no-method-suggested-traits.rs:85:44
|
85 | std::rc::Rc::new(&mut Box::new(&1u64)).method2();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method2` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
candidate #1: `foo::Bar`
error[E0599]: no method named `method2` found for type `no_method_suggested_traits::Foo` in the current scope
--> $DIR/no-method-suggested-traits.rs:90:37
|
90 | no_method_suggested_traits::Foo.method2();
| ^^^^^^^
|
::: $DIR/auxiliary/no_method_suggested_traits.rs
|
13 | pub struct Foo;
| --------------- method `method2` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
candidate #1: `foo::Bar`
error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Foo>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:94:71
|
94 | std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
| ^^^^^^^
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
candidate #1: `foo::Bar`
--> $DIR/no-method-suggested-traits.rs:94:71
|
94 | std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method2();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method2` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
candidate #1: `foo::Bar`
error[E0599]: no method named `method2` found for type `no_method_suggested_traits::Bar` in the current scope
--> $DIR/no-method-suggested-traits.rs:98:40
|
98 | no_method_suggested_traits::Bar::X.method2();
| ^^^^^^^
|
::: $DIR/auxiliary/no_method_suggested_traits.rs
|
14 | pub enum Bar { X }
| ------------ method `method2` not found here
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
@ -149,6 +191,11 @@ error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::bo
|
102 | std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method2();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method2` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method2`, perhaps you need to implement it:
@ -157,6 +204,9 @@ error[E0599]: no method named `method2` found for type `std::rc::Rc<&mut std::bo
error[E0599]: no method named `method3` found for type `Foo` in the current scope
--> $DIR/no-method-suggested-traits.rs:107:9
|
14 | struct Foo;
| ----------- method `method3` not found for this
...
107 | Foo.method3();
| ^^^^^^^
|
@ -169,6 +219,11 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
|
111 | std::rc::Rc::new(&mut Box::new(&Foo)).method3();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method3` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method3`, perhaps you need to implement it:
@ -177,6 +232,9 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
error[E0599]: no method named `method3` found for type `Bar` in the current scope
--> $DIR/no-method-suggested-traits.rs:115:12
|
15 | enum Bar { X }
| -------- method `method3` not found here
...
115 | Bar::X.method3();
| ^^^^^^^
|
@ -189,6 +247,11 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
|
119 | std::rc::Rc::new(&mut Box::new(&Bar::X)).method3();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method3` not found for this
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following trait defines an item `method3`, perhaps you need to implement it:
@ -205,30 +268,55 @@ error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::bo
|
126 | std::rc::Rc::new(&mut Box::new(&1_usize)).method3(); //~ ERROR no method named
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method3` not found for this
error[E0599]: no method named `method3` found for type `no_method_suggested_traits::Foo` in the current scope
--> $DIR/no-method-suggested-traits.rs:127:37
|
127 | no_method_suggested_traits::Foo.method3(); //~ ERROR no method named
| ^^^^^^^
|
::: $DIR/auxiliary/no_method_suggested_traits.rs
|
13 | pub struct Foo;
| --------------- method `method3` not found for this
error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Foo>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:128:71
|
128 | std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Foo)).method3();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method3` not found for this
error[E0599]: no method named `method3` found for type `no_method_suggested_traits::Bar` in the current scope
--> $DIR/no-method-suggested-traits.rs:130:40
|
130 | no_method_suggested_traits::Bar::X.method3(); //~ ERROR no method named
| ^^^^^^^
|
::: $DIR/auxiliary/no_method_suggested_traits.rs
|
14 | pub enum Bar { X }
| ------------ method `method3` not found here
error[E0599]: no method named `method3` found for type `std::rc::Rc<&mut std::boxed::Box<&no_method_suggested_traits::Bar>>` in the current scope
--> $DIR/no-method-suggested-traits.rs:131:74
|
131 | std::rc::Rc::new(&mut Box::new(&no_method_suggested_traits::Bar::X)).method3();
| ^^^^^^^
|
::: /checkout/src/liballoc/rc.rs
|
284 | pub struct Rc<T: ?Sized> {
| ------------------------ method `method3` not found for this
error: aborting due to 24 previous errors

View File

@ -28,6 +28,9 @@ error[E0061]: this function takes 2 parameters but 1 parameter was supplied
error[E0599]: no method named `take` found for type `Foo` in the current scope
--> $DIR/method-call-err-msg.rs:34:7
|
13 | pub struct Foo;
| --------------- method `take` not found for this
...
34 | .take() //~ ERROR no method named `take` found for type `Foo` in the current scope
| ^^^^
|

View File

@ -1,12 +1,17 @@
error[E0599]: no method named `count` found for type `std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]>` in the current scope
--> $DIR/issue-36053-2.rs:17:55
|
17 | once::<&str>("str").fuse().filter(|a: &str| true).count();
| ^^^^^
|
= note: the method `count` exists but the following trait bounds were not satisfied:
`std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]> : std::iter::Iterator`
`&mut std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]> : std::iter::Iterator`
--> $DIR/issue-36053-2.rs:17:55
|
17 | once::<&str>("str").fuse().filter(|a: &str| true).count();
| ^^^^^
|
::: /checkout/src/libcore/iter/mod.rs
|
1200 | pub struct Filter<I, P> {
| ----------------------- method `count` not found for this
|
= note: the method `count` exists but the following trait bounds were not satisfied:
`std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]> : std::iter::Iterator`
`&mut std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]> : std::iter::Iterator`
error[E0631]: type mismatch in closure arguments
--> $DIR/issue-36053-2.rs:17:32

View File

@ -1,11 +1,16 @@
error[E0599]: no method named `unwrap` found for type `std::result::Result<(), Foo>` in the current scope
--> $DIR/method-help-unsatisfied-bound.rs:15:7
|
15 | a.unwrap();
| ^^^^^^
|
= note: the method `unwrap` exists but the following trait bounds were not satisfied:
`Foo : std::fmt::Debug`
--> $DIR/method-help-unsatisfied-bound.rs:15:7
|
15 | a.unwrap();
| ^^^^^^
|
::: /checkout/src/libcore/result.rs
|
256 | pub enum Result<T, E> {
| --------------------- method `unwrap` not found here
|
= note: the method `unwrap` exists but the following trait bounds were not satisfied:
`Foo : std::fmt::Debug`
error: aborting due to previous error

View File

@ -2,7 +2,7 @@ error[E0599]: no associated item named `XXX` found for type `u32` in the current
--> $DIR/no-double-error.rs:18:9
|
18 | u32::XXX => { }
| ^^^^^^^^
| ^^^^^^^^ associated item not found in `u32`
error: aborting due to previous error

View File

@ -33,6 +33,9 @@ note: candidate #3 is defined in the trait `UnusedTrait`
error[E0599]: no method named `fff` found for type `Myisize` in the current scope
--> $DIR/issue-7575.rs:74:30
|
48 | struct Myisize(isize);
| ---------------------- method `fff` not found for this
...
74 | u.f8(42) + u.f9(342) + m.fff(42)
| ^^^
|

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-18343.rs:16:28: 16:33]>` in the current scope
--> $DIR/issue-18343.rs:17:7
|
11 | struct Obj<F> where F: FnMut() -> u32 {
| ------------------------------------- method `closure` not found for this
...
17 | o.closure();
| ^^^^^^^ field, not a method
|

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-2392.rs:49:36: 49:41]>` in the current scope
--> $DIR/issue-2392.rs:50:15
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `closure` not found for this
...
50 | o_closure.closure(); //~ ERROR no method named `closure` found
| ^^^^^^^ field, not a method
|
@ -9,6 +12,9 @@ error[E0599]: no method named `closure` found for type `Obj<[closure@$DIR/issue-
error[E0599]: no method named `not_closure` found for type `Obj<[closure@$DIR/issue-2392.rs:49:36: 49:41]>` in the current scope
--> $DIR/issue-2392.rs:54:15
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `not_closure` not found for this
...
54 | o_closure.not_closure();
| ^^^^^^^^^^^ field, not a method
|
@ -17,6 +23,9 @@ error[E0599]: no method named `not_closure` found for type `Obj<[closure@$DIR/is
error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
--> $DIR/issue-2392.rs:60:12
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `closure` not found for this
...
60 | o_func.closure(); //~ ERROR no method named `closure` found
| ^^^^^^^ field, not a method
|
@ -25,6 +34,9 @@ error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>`
error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the current scope
--> $DIR/issue-2392.rs:65:14
|
30 | struct BoxedObj {
| --------------- method `boxed_closure` not found for this
...
65 | boxed_fn.boxed_closure();//~ ERROR no method named `boxed_closure` found
| ^^^^^^^^^^^^^ field, not a method
|
@ -33,6 +45,9 @@ error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the c
error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the current scope
--> $DIR/issue-2392.rs:70:19
|
30 | struct BoxedObj {
| --------------- method `boxed_closure` not found for this
...
70 | boxed_closure.boxed_closure();//~ ERROR no method named `boxed_closure` found
| ^^^^^^^^^^^^^ field, not a method
|
@ -41,6 +56,9 @@ error[E0599]: no method named `boxed_closure` found for type `BoxedObj` in the c
error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
--> $DIR/issue-2392.rs:77:12
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `closure` not found for this
...
77 | w.wrap.closure();//~ ERROR no method named `closure` found
| ^^^^^^^ field, not a method
|
@ -49,6 +67,9 @@ error[E0599]: no method named `closure` found for type `Obj<fn() -> u32 {func}>`
error[E0599]: no method named `not_closure` found for type `Obj<fn() -> u32 {func}>` in the current scope
--> $DIR/issue-2392.rs:81:12
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `not_closure` not found for this
...
81 | w.wrap.not_closure();
| ^^^^^^^^^^^ field, not a method
|
@ -57,6 +78,9 @@ error[E0599]: no method named `not_closure` found for type `Obj<fn() -> u32 {fun
error[E0599]: no method named `closure` found for type `Obj<std::boxed::Box<std::boxed::FnBox<(), Output=u32> + 'static>>` in the current scope
--> $DIR/issue-2392.rs:86:24
|
25 | struct Obj<F> where F: FnOnce() -> u32 {
| -------------------------------------- method `closure` not found for this
...
86 | check_expression().closure();//~ ERROR no method named `closure` found
| ^^^^^^^ field, not a method
|
@ -65,6 +89,9 @@ error[E0599]: no method named `closure` found for type `Obj<std::boxed::Box<std:
error[E0599]: no method named `f1` found for type `FuncContainer` in the current scope
--> $DIR/issue-2392.rs:94:31
|
15 | struct FuncContainer {
| -------------------- method `f1` not found for this
...
94 | (*self.container).f1(1); //~ ERROR no method named `f1` found
| ^^ field, not a method
|
@ -73,6 +100,9 @@ error[E0599]: no method named `f1` found for type `FuncContainer` in the current
error[E0599]: no method named `f2` found for type `FuncContainer` in the current scope
--> $DIR/issue-2392.rs:97:31
|
15 | struct FuncContainer {
| -------------------- method `f2` not found for this
...
97 | (*self.container).f2(1); //~ ERROR no method named `f2` found
| ^^ field, not a method
|
@ -81,6 +111,9 @@ error[E0599]: no method named `f2` found for type `FuncContainer` in the current
error[E0599]: no method named `f3` found for type `FuncContainer` in the current scope
--> $DIR/issue-2392.rs:100:31
|
15 | struct FuncContainer {
| -------------------- method `f3` not found for this
...
100 | (*self.container).f3(1); //~ ERROR no method named `f3` found
| ^^ field, not a method
|

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `example` found for type `Example` in the current scope
--> $DIR/issue-32128.rs:22:10
|
11 | struct Example {
| -------------- method `example` not found for this
...
22 | demo.example(1);
| ^^^^^^^ field, not a method
|

View File

@ -1,6 +1,9 @@
error[E0599]: no method named `dog_age` found for type `animal::Dog` in the current scope
--> $DIR/private-field.rs:26:23
|
12 | pub struct Dog {
| -------------- method `dog_age` not found for this
...
26 | let dog_age = dog.dog_age();
| ^^^^^^^ private field, not a method

View File

@ -1,18 +1,26 @@
error[E0599]: no method named `bat` found for type `Foo` in the current scope
--> $DIR/suggest-methods.rs:28:7
|
11 | struct Foo;
| ----------- method `bat` not found for this
...
28 | f.bat(1.0);
| ^^^
|
= help: did you mean `bar`?
error[E0599]: no method named `is_emtpy` found for type `std::string::String` in the current scope
--> $DIR/suggest-methods.rs:31:15
|
31 | let _ = s.is_emtpy();
| ^^^^^^^^
|
= help: did you mean `is_empty`?
--> $DIR/suggest-methods.rs:31:15
|
31 | let _ = s.is_emtpy();
| ^^^^^^^^
|
::: /checkout/src/liballoc/string.rs
|
294 | pub struct String {
| ----------------- method `is_emtpy` not found for this
|
= help: did you mean `is_empty`?
error[E0599]: no method named `count_eos` found for type `u32` in the current scope
--> $DIR/suggest-methods.rs:35:19