Combined SE-0366 (third review) and SE-0377 (second review): rename `take`/`taking` to `consume`/`consuming`

Thanks, John. Given that, inout local vars would be really useful. I look forward to the proposal.

To your consum(e|er|ing|ed) naming question: looking at your table, my intuition is that terminology should be aligned along an lvalue/rvalue-flavored distinction betwen “expressions that provide values” (your first column) and “declarations of things that receive values” (the other three columns).

That raises the question of what lhs/rhs combinations like these are allowed and meaningful:

// Are these both allowed? Equivalent?
var x = borrow y
borrow x = y

// Which combinations like these are allowed?
borrow x = consume y
inout x = borrow y
// etc

// Why shouldn’t this be allowed?
consuming x = y

Terminology (including conjugation) should help elucidate all that.

1 Like