On Thu, Oct 9, 2025, at 4:39 PM, Tim Düsterhus wrote: > I've given it another read. Remarks: > >> Positional placeholders that map to the variadic portion of the >> underlying function will be named $args0, $args1, etc., and may be >> called by name if desired. > > What will happen if the original function already has a parameter named > $args0?
It will skip over existing names. I've updated the text accordingly. >> Prefill all parameters, making a "delayed call" or "thunk" > > The example desugaring is inconsistent with the previously explained > semantics: Here an arbitrary number of arguments is accepted, but > previously it says "will result in a Closure with no parameters". Hm, I think that should probably read "no required parameters". It would only make a difference if the underlying function had an optional variadic AND you called the thunk with extra, extraneous args. *Various typos fixed along the way* > ------ > > Questions: > > - Are PFAs legal in constant expressions? e.g. does the following work: > `const Foo = intval(?, 10);`? At the moment no, though Arnaud says that should be doable, with some reasonable restrictions. (No variables, no variable callable name, etc.) > - The RFC says that it compiles down to the equivalent Closure. Can you > add an example of a stack trace for completeness? Ideally one with > SensitiveParameter working. That will then showcase the closure naming, > SensitiveParameters and that there are two stack frames for the call. > > Best regards > Tim Düsterhus I've asked Arnaud to generate one for the RFC. --Larry Garfield
