-
Notifications
You must be signed in to change notification settings - Fork 1
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
Lazy definitions #13
Comments
When capturing code with Note: We currently DO NOT remove elements that don't appear in the definitions anymore. So when you first evaluate |
Keeping identity for arbitrary objects turned out to be confusing. We keep classes around via |
I would also be in favor of actually removing methods and accessors from classes when the class definition changes. It may seem like an edge case but there have been multiple confusing situations caused by out-dated methods and accessors being called after renaming them in the class definitions. This could also cause problems with a method got deleted with the intention of calling the superclass. In that case, leaving the out-dated method prevents the super call. This could be problematic if classes could be extended but as long as there are no mixins, it should be fine. |
Entities in the top-level such as class and object definitions currently get re-defined on
moduleSourceChange
andreloadModule
operations. Often modifications of those objects that keep the original identity reflect the users intentions better.options.resetEnv = false
inreloadModule
could signal to keep objects, maybe a more explicit behavior is better*The tricky part are deleted sub-elements such as methods and properties for classes. Given that an object or class can be extended in multiple places, we cannot simply remove all props/methods that don't occur in the latest class / obj definition. What's needed is to track the location of these sub-elements and compare them with the location of the re-definition to figure out if a prop/method should be removed.
The text was updated successfully, but these errors were encountered: