On Monday, July 13th, 2026 at 12:23, Tim Düsterhus <[email protected]> wrote:
> 1.
> 
> Conceptionally I like the idea of having an “in-place modification
> operator” for function calls and the semantics of the operator seem to
> be consistent with the existing “modify-assign” operators we have,
> particularly also with regard to operand order. Nice idea!

Thanks! I'm glad others think so as well :).

> 2.
> 
> I appreciate how detailed the RFC describes that the feature will just
> “work as expected” (e.g. with regard to variables targets or callable
> styles), this is good to avoid any ambiguity.

Thanks again, trying to make it as clear as possible.

> 3.
> 
> The only thing I'm missing for the semantics is an explicit explanation
> of the operator precedence and associativity (it has the same precedence
> and associativity as any other assignment operator; but this needs to be
> in the RFC). And please also include explicit examples along the lines
> of:
> 
> If you write `$foo |>= bar(...) |> baz(...)` it will be interpreted as
> if you have written `$foo = (($foo |> bar(...)) |> baz(...))` with the
> very explicit redundant parentheses.
> 
> Please also include some additional more complex examples, e.g. `$foo
> |>= $bar |>= …`, `$foo += $bar |>= …` and similar to make sure there is
> no ambiguity for possible use cases that users might have.

I've added a section in the RFC for this and included more complex examples.

> 4.
> 
> For the examples, I'd like to note that some of the “before” examples
> are needlessly complex and might not fairly represent the old code.
> Specifically:
> 
>      $input = $input |> trim(...) |> strtolower(...);
>      $this->currentOrder->lineItems = $this->currentOrder->lineItems
>          |> array_unique(...)
>          |> array_values(...)
>          |> array_reverse(...);
> 
> could already be:
> 
>      $input = trim($input) |> strtolower(...);
>      $this->currentOrder->lineItems =
> array_unique($this->currentOrder->lineItems)
>          |> array_values(...)
>          |> array_reverse(...);

I've cleaned up the examples to make them more representative of
existing code.

Best,
Caleb

Reply via email to