-
Notifications
You must be signed in to change notification settings - Fork 301
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
Evil Test Case 2 for Parser/Resolver #973
Comments
Ooh nested |
Okay this is one interesting test for refactor/rename 2.0 - renaming the interface in 1.4.3 wrecks the code, by renaming all references to the class name, but not the class itself, and not the implementation members. Renaming the private Renaming the target of the last assignment in the nested
But wrecks the implementations:
...and best of all, doesn't rename the call site:
In other words, this code reveals all of 1.4.3's major flaws. I'll test it against the 2.0 resolver and rename refactoring tonight. |
Ok. This bug is still present in 2.0 - renaming an interface member wrecks the implementations:
The I was able to rename the
But not from this one:
The refactoring correctly renamed the actual class module, but then there was this:
...which looks very much like a resolver bug. In fact,
...which reveals further issues, notably here:
Where In other words... you've just sent me back to the drawing board with this one. |
Okay, so, tackling this elephant... one bite at a time.
Take this instruction:
The assignment target on the left side, is correctly resolved. The right-side member call however, doesn't take the I'll fix that, and then I'll implement the find all references XAML UI before continuing, because find all references is a much better tool than the rename refactoring to assist with this... especially given the bugs in the rename refactoring that this code highlights. |
Okay. One down. I've refactored the logic I had implemented to resolve
As a result, |
I'll have throw some events into test case 3, passing some globals and some interfaces as arguments. Maybe some as byref and some as byval.... :-) |
1 Module and 2 Classes
There's an Interface, so The Locals Window will not help you!
The text was updated successfully, but these errors were encountered: