-
Notifications
You must be signed in to change notification settings - Fork 194
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
Restore recursive behavior of AbstractTreeViwer#internalExpandToLevel() #2707
Restore recursive behavior of AbstractTreeViwer#internalExpandToLevel() #2707
Conversation
Test Results 1 818 files ± 0 1 818 suites ±0 1h 37m 50s ⏱️ + 6m 47s For more details on these failures, see this check. Results for commit 9bea968. ± Comparison against base commit d4aa37b. ♻️ This comment has been updated with latest results. |
f0e7a51
to
4d46497
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TreeViewerTest.java
Show resolved
Hide resolved
The method AbstractTreeViewer#internalExpandToLevel() used be a recursively called method (by implementation and specification). As a protected method, it is part of the API. With a recent change, the method was changed to delegate to a different method, removing it's recursive property. Consumers that have created subtypes of the AbstractTreeViewer and rely the recursive behavior of that method by overwriting it face a regression by that change. This change restores the existing, recursive behavior of that method while still keeping the reuse of the implementation across other use cases. A test case ensuring the contractual recursive execution is added.
4d46497
to
9bea968
Compare
I have adapted the PR to include the performance improvement (but putting more of the custom expansion functionality in the lambda). Can you have another look whether that properly reflects your improvement, @fedejeanne? |
Test failure is unrelated: #294 |
The method
AbstractTreeViewer#internalExpandToLevel()
used be a recursively called method (by implementation and specification). As a protected method, it is part of the API.With a recent change (see #1072), the method was changed to delegate to a different method, removing it's recursive property. Consumers that have created subtypes of the AbstractTreeViewer and rely the recursive behavior of that method by overwriting it face a regression by that change.
This change restores the existing, recursive behavior of that method while still keeping the reuse of the implementation across other use cases. A test case ensuring the contractual recursive execution is added.