Skip to content

Consider merging the entire resolution phase within the fixed-point loop #760

@vinistock

Description

@vinistock

We've been hitting some edge cases where we need to do post-loop processing, like resolving instance variable references and attaching them to their respective declarations. I'm starting to suspect that there's actually a better way to structure this if we include everything inside the loop.

We originally set things up as resolution loop + handle other definitions to ensure dependency ordering. If we find an unresolved constant reference while handling other definitions, we know we couldn't resolve it for sure. The problem is that we're now getting more and more post steps, like handling method visibility and instance variable references.

We might be able to merge everything into a single loop, which can hopefully simplify some of these steps. It may require better dependency tracking or sorting of operations. Investigate if this is possible and if the trade offs are favourable. Do we get better performance? Is the code easier to manage?

Metadata

Metadata

Assignees

No one assigned

    Labels

    hardThis issue is hard. It may involve ambiguity and challenging technical aspects

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions