Actions
Feature #16123
closedAllow calling a private method with `self.`
Feature #16123:
Allow calling a private method with `self.`
Status:
Closed
Assignee:
-
Target version:
-
Description
Problem¶
There is an inconsistency between calling a private attribute writer being allowed with self.value = syntax and self.value not being allowed on a private attribute writer.
Calling a private method in this way can be useful when trying to assign the return value of this private method to a local variable with the same name.
Solution¶
The attached patch handles this by compiling the calling into a function call by using the VM_CALL_FCALL flag, so it is as if the call were made without the self. prefix, except it won't be confused with local variables at the VM instruction level. It is also compiled like an assignment call, except I didn't use the COMPILE_RECV macro, since that would remove the CHECK macro usage around the COMPILE line.
Files
Actions