Open
Description
Problem
I find myself confusing the parse
and from_str
methods quite often. Take for example:
error[E0599]: no function or associated item named `parse` found for struct `connection_string::JdbcString` in the current scope
--> src\connector\mssql.rs:363:55
|
363 | let mut jdbc = connection_string::JdbcString::parse(input)?;
| ^^^^^ function or associated item not found in `connection_string::JdbcString`
parse
doesn't exist on JdbcString
; from_str
does. So the way to fix it would be to write:
// either call `from_str`
let mut jdbc = connection_string::JdbcString::from_str(input)?;
// or flip it and call `parse` on the string
let mut jdbc: connection_string::JdbcString = input.parse()?;
Solution
It'd be great if the diagnostic could detect if parse
was called on a type that implements FromStr
and suggest to use from_str
instead:
error[E0599]: no function or associated item named `parse` found for struct `connection_string::JdbcString` in the current scope
--> src\connector\mssql.rs:363:55
|
363 | let mut jdbc = connection_string::JdbcString::parse(input)?;
| ^^^^^ function or associated item not found in `connection_string::JdbcString`
| |
| help: did you mean to call `connection_string::JdbcString::from_str`?
Metadata
Metadata
Assignees
Labels
Area: Messages for errors, warnings, and lintsArea: Suggestions generated by the compiler applied by `cargo fix`Area: Trait systemCategory: An issue proposing an enhancement or a PR with one.Diagnostics: An error or lint that doesn't give enough information about the problem at hand.Relevant to the compiler team, which will review and decide on the PR/issue.