rust-lang / rust-lang/rust-analyzer
Assist to replace operator invocation with the corresponding method call
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
1 +$0 1
should result in
std::ops::Add::add(1, 1)
(or shorter path if Add is in scope.
Note that some operators are a bit more complicated, primarily 1 == 1 is semantically equivalent to std::cmp::PartialEq::::eq(&1, &1), same for PartialOrd
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No file, test, or entry point is named in the issue. Start by tracing existing assists that transform Rust expressions and the syntax handling for binary operators, then identify the operator-to-trait method mappings and special cases such as equality and ordering. Done means the assist converts the stated operators to equivalent fully qualified method calls without changing semantics, with tests covering the examples and special cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100