Open
Conversation
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Base automatically changed from
04-13-ensure_singleton_class_ancestors_are_linearized_when_created_out_of_resolution_loop
to
main
April 20, 2026 17:55
3454bd4 to
9fa22d6
Compare
9fa22d6 to
3351ec6
Compare
Morriar
reviewed
Apr 28, 2026
Contributor
Morriar
left a comment
There was a problem hiding this comment.
Are the lint errors related?
3351ec6 to
a104e54
Compare
a104e54 to
ea66bbb
Compare
st0012
reviewed
May 4, 2026
ea66bbb to
55e1349
Compare
55e1349 to
ddac659
Compare
st0012
reviewed
May 6, 2026
| /// Re-queueing is essential during incremental delete-then-readd of a receiver: without it, | ||
| /// ivars whose owner depends on a freshly-deleted receiver would be permanently dropped or | ||
| /// attached to `Object` (regression of #775). | ||
| fn resolve_ivar_owner( |
Member
There was a problem hiding this comment.
How does this work with weird cases like:
class Foo::Bar # Foo should be a TODO
def Foo.baz
@baz = 1
end
end| } | ||
| } | ||
|
|
||
| #[test] |
Member
There was a problem hiding this comment.
2 additional cases we can cover:
- ivar reference in a singleton class body:
class Foo; class << self; @bar; end; end - ivar reference that can't be resolved from a parent:
class Bar < Foo; def bar; @bar; end; endbutFoodoesn't define@bar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #517
This PR starts indexing and handling instance variable references, which is required to match the Ruby LSP's find references for ivars.
The approach is mostly the same as any other reference. We have a new reference struct that gets collected during indexing and then merged into the main graph.
Resolution is running as a separate step at the end, which reuses the same logic as instance variable definitions.