Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New mapper (MOS-1827) #32

Merged
merged 21 commits into from
Nov 26, 2024
Merged

New mapper (MOS-1827) #32

merged 21 commits into from
Nov 26, 2024

Conversation

kniazkov
Copy link
Member

Cool Story:
The differential tree isn't being constructed optimally when there are many changes, especially in cases where multiple methods are added or removed from a class (all changes occur within a single node representing the class body), or when multiple lines are added, modified, or removed within a method (changes are contained within a single node representing the method body). The greedy algorithm used in this scenario attempts to match the first child nodes, but this is not the most efficient approach. As a result, the differential tree ends up being "crooked," which leads to similarly flawed patterns being generated.

Task:
Refactor the differential tree construction algorithm to handle complex changes more efficiently, particularly when multiple modifications occur within a single node (such as class bodies or method bodies). Improve the tree-building logic so that it avoids suboptimal matches and ensures that the resulting patterns are accurate.

@kniazkov
Copy link
Member Author

@rultor merge

@rultor
Copy link
Collaborator

rultor commented Nov 26, 2024

@rultor merge

@kniazkov OK, I'll try to merge now. You can check the progress of the merge here.

@rultor rultor merged commit 992be15 into cqfn:master Nov 26, 2024
1 check passed
@rultor
Copy link
Collaborator

rultor commented Nov 26, 2024

@rultor merge

@kniazkov Done! FYI, the full log is here (took me 8min).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants