On 25/08/2024 16:54, Rob Landers wrote:
Hi Rowan, you went through a lot of trouble to write this out, and the reasoning makes sense to me. However, all the nonsensical things you say shouldn’t be allowed are already perfectly allowed today, you just have to type a bunch of boilerplate reflection code. There is no new behavior here, just new syntax.
Firstly, your response to John was essentially "please give more details" [https://externals.io/message/125183#125214], and your response to me is "thanks for the details, but I'm not going to engage with them". That's a bit frustrating.
Secondly, I don't think "it's possible with half a dozen lines of reflection, so it's fine for it to be a first-class feature of the language syntax" is a strong argument. The Reflection API is a bit like the Advanced Settings panel in a piece of software, it comes with a big "Proceed with Caution" warning. You only move something from that Advanced Settings panel to the main UI when it's going to be commonly used, and generally safe to use. I don't think allowing arbitrary operations on a value that's declared as the default of some other function passes that test.
Regards, -- Rowan Tommins [IMSoP]