Suggest borrowing when it would satisfy an unmet trait bound
When there are multiple implementors for the same trait that is present in an unmet binding, modify the E0277 error to refer to the parent obligation and verify whether borrowing the argument being passed in would satisfy the unmet bound. If it would, suggest it.
This commit is contained in:
@@ -137,10 +137,6 @@ pub trait Fn<Args> : FnMut<Args> {
|
||||
#[rustc_paren_sugar]
|
||||
#[rustc_on_unimplemented(
|
||||
on(Args="()", note="wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}"),
|
||||
on(
|
||||
all(Args="(char,)", _Self="std::string::String"),
|
||||
note="borrowing the `{Self}` might fix the problem"
|
||||
),
|
||||
message="expected a `{FnMut}<{Args}>` closure, found `{Self}`",
|
||||
label="expected an `FnMut<{Args}>` closure, found `{Self}`",
|
||||
)]
|
||||
|
||||
Reference in New Issue
Block a user