let self_is_available = self.self_value_is_available(path[0].ident.span, span);
match candidate {
AssocSuggestion::Field => {
- err.span_suggestion(
- span,
- "try",
- format!("self.{}", path_str),
- Applicability::MachineApplicable,
- );
- if !self_is_available {
- err.span_label(span, format!("`self` value is a keyword \
- only available in \
- methods with `self` parameter"));
+ if self_is_available {
+ err.span_suggestion(
+ span,
+ "you might have meant to use the available field",
+ format!("self.{}", path_str),
+ Applicability::MachineApplicable,
+ );
+ } else {
+ err.span_label(
+ span,
+ format!("a field by this name exists in `Self::{}`", path_str),
+ );
}
}
AssocSuggestion::MethodWithSelf if self_is_available => {
--> $DIR/class-missing-self.rs:9:7
|
LL | meows += 1;
- | ^^^^^ help: try: `self.meows`
+ | ^^^^^ help: you might have meant to use the available field: `self.meows`
error[E0425]: cannot find function `sleep` in this scope
--> $DIR/class-missing-self.rs:10:7
--- /dev/null
+struct A {
+ banana: u8,
+}
+
+impl A {
+ fn new(peach: u8) -> A {
+ A {
+ banana: banana //~ ERROR cannot find value `banana` in this scope
+ }
+ }
+
+ fn foo(&self, peach: u8) -> A {
+ A {
+ banana: banana //~ ERROR cannot find value `banana` in this scope
+ }
+ }
+}
--- /dev/null
+error[E0425]: cannot find value `banana` in this scope
+ --> $DIR/issue-60057.rs:8:21
+ |
+LL | banana: banana
+ | ^^^^^^ a field by this name exists in `Self::banana`
+
+error[E0425]: cannot find value `banana` in this scope
+ --> $DIR/issue-60057.rs:14:21
+ |
+LL | banana: banana
+ | ^^^^^^ help: you might have meant to use the available field: `self.banana`
+
+error[E0601]: `main` function not found in crate `issue_60057`
+ |
+ = note: consider adding a `main` function to `$DIR/issue-60057.rs`
+
+error: aborting due to 3 previous errors
+
+Some errors occurred: E0425, E0601.
+For more information about an error, try `rustc --explain E0425`.
--> $DIR/issue-14254.rs:30:9
|
LL | x;
- | ^ help: try: `self.x`
+ | ^ help: you might have meant to use the available field: `self.x`
error[E0425]: cannot find value `y` in this scope
--> $DIR/issue-14254.rs:32:9
|
LL | y;
- | ^ help: try: `self.y`
+ | ^ help: you might have meant to use the available field: `self.y`
error[E0425]: cannot find value `a` in this scope
--> $DIR/issue-14254.rs:34:9
--> $DIR/issue-14254.rs:47:9
|
LL | x;
- | ^ help: try: `self.x`
+ | ^ help: you might have meant to use the available field: `self.x`
error[E0425]: cannot find value `y` in this scope
--> $DIR/issue-14254.rs:49:9
|
LL | y;
- | ^ help: try: `self.y`
+ | ^ help: you might have meant to use the available field: `self.y`
error[E0425]: cannot find value `a` in this scope
--> $DIR/issue-14254.rs:51:9
--> $DIR/issue-2356.rs:39:5
|
LL | whiskers -= other;
- | ^^^^^^^^
- | |
- | `self` value is a keyword only available in methods with `self` parameter
- | help: try: `self.whiskers`
+ | ^^^^^^^^ a field by this name exists in `Self::whiskers`
error[E0425]: cannot find function `shave` in this scope
--> $DIR/issue-2356.rs:41:5
--> $DIR/issue-2356.rs:79:5
|
LL | whiskers = 0;
- | ^^^^^^^^ help: try: `self.whiskers`
+ | ^^^^^^^^ help: you might have meant to use the available field: `self.whiskers`
error[E0425]: cannot find value `whiskers` in this scope
--> $DIR/issue-2356.rs:84:5
|
LL | whiskers = 4;
- | ^^^^^^^^
- | |
- | `self` value is a keyword only available in methods with `self` parameter
- | help: try: `self.whiskers`
+ | ^^^^^^^^ a field by this name exists in `Self::whiskers`
error[E0425]: cannot find function `purr_louder` in this scope
--> $DIR/issue-2356.rs:86:5
--> $DIR/resolve-assoc-suggestions.rs:20:9
|
LL | field;
- | ^^^^^ help: try: `self.field`
+ | ^^^^^ help: you might have meant to use the available field: `self.field`
error[E0412]: cannot find type `Type` in this scope
--> $DIR/resolve-assoc-suggestions.rs:23:16
--> $DIR/resolve-speculative-adjustment.rs:23:9
|
LL | field;
- | ^^^^^ help: try: `self.field`
+ | ^^^^^ help: you might have meant to use the available field: `self.field`
error[E0425]: cannot find function `method` in this scope
--> $DIR/resolve-speculative-adjustment.rs:25:9
--> $DIR/unresolved_static_type_field.rs:9:11
|
LL | f(cx);
- | ^^
- | |
- | `self` value is a keyword only available in methods with `self` parameter
- | help: try: `self.cx`
+ | ^^ a field by this name exists in `Self::cx`
error: aborting due to previous error