PyPayload::special_retrieve is a wrong design because we can't distinguish real int and int created by __index__.
See ArgIntoBool, ArgIntoFloat and ArgIntoComplex for arguments calling type conversion magic method.
The name will be ArgIndex or ArgIntoIndex. I am not sure about the names.
The final step will be dividing original PyIntRef to PyIntRef and ArgIndex. This step will take time.
PyPayload::special_retrieveis a wrong design because we can't distinguish realintand int created by__index__.See
ArgIntoBool,ArgIntoFloatandArgIntoComplexfor arguments calling type conversion magic method.The name will be
ArgIndexorArgIntoIndex. I am not sure about the names.The final step will be dividing original
PyIntReftoPyIntRefandArgIndex. This step will take time.