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