You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When triggering a struct rename, whenever self refers to that struct type as a function argument, or when Self is used to reference that struct, they are incorrectly renamed.
Bug
self and Self are incorrectly renamed.
To Reproduce
No response
Project Impact
None
Impact Context
No response
Workaround
None
Workaround Description
No response
Additional Context
No response
Installation Method
None
Nargo Version
No response
NoirJS Version
No response
Would you like to submit a PR for this Issue?
Yes
Support Needs
No response
The text was updated successfully, but these errors were encountered:
# Description
## Problem
Resolves#5412
## Summary
When a function parameter is `self` and it refers to a struct type, that
variable is linked to that type (through a synthetic "Self" type):
```rust
struct Foo {
}
impl Foo {
fn foo(self) { // <-- here
}
}
```
Then, when renaming `Foo`, those `self` occurrences were incorrectly
renamed. To fix that, in this PR we don't track these synthetic `Self`
types in the reference graph.
The second thing here is that when using `Self` to refer to a struct
type, that `Self` was also incorrectly renamed. To fix this we now track
whether a reference to a type came from `Self` or from the actual struct
name. Then we don't rename these `Self` references.
Note that we still keep these `Self` references in order for "find all
references" to return them (this is similar to how rust-analyzer works).
https://github.com/noir-lang/noir/assets/209371/8eeeebd7-816f-4e8f-a6cc-426a5172c1a7
## Additional Context
None.
## Documentation\*
Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.
# PR Checklist\*
- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.
Aim
Renaming a struct shouldn't rename
self
orSelf
.Expected Behavior
When triggering a struct rename, whenever
self
refers to that struct type as a function argument, or whenSelf
is used to reference that struct, they are incorrectly renamed.Bug
self
andSelf
are incorrectly renamed.To Reproduce
No response
Project Impact
None
Impact Context
No response
Workaround
None
Workaround Description
No response
Additional Context
No response
Installation Method
None
Nargo Version
No response
NoirJS Version
No response
Would you like to submit a PR for this Issue?
Yes
Support Needs
No response
The text was updated successfully, but these errors were encountered: