SE-0304 (4th review): Structured Concurrency

Somewhat of a tangent, but...

the distinction that I've seen in these forums in the past is to differentiate between "has value semantics" and "is a value type." Whether a type is a value type is relatively trivial to determine based on the category of its declaration (enum, struct, tuple, etc.), but determining whether a type has value semantics is potentially much more complicated and heavily implementation-dependent. Consider Array which also wraps a reference internally but still "has value semantics."

Of course, what it even means, precisely, to "have value semantics" isn't something that is entirely clear yet, and might not even make sense to talk about at the level of a type as a whole, so right now we're still mostly in "know it when you see it" territory.

ETA: I was too pessimistic. See Dave’s post below for more information.

4 Likes