Add support for extend self
to handle_module_operation
#2855
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By adding the instance methods as class methods through the singleton mixin operations, we are able to get all instance methods "copied" over into the class methods implicitly.
I don't think it's necessary to test whether this extend self applies when the module is opened after being closed again, or re-opened in another file, but we can add that as well if preferred.
Motivation
Closes #2782
Implementation
I simply allowed a
SelfNode
as an argument to enter thehandle_module_operation
method and then utilizedan
Include
entry to include the methods onto the singleton.Automated Tests
Added tests checking that the method resolves as an instance method to the class as well as a class method. Further, we also test the inheritance tree for the singleton class.
Manual Tests
Tried a test file and ensured that methods were represented as class methods: