Support ~Copyable, ~Escapable in simple standard library protocols

The documentation of the protocol disagrees:

A type whose values can be implicitly or explicitly copied.

What you're describing is something like the @noImplicitCopy attribute pitched here: Selective control of implicit copying behavior: `take`, `borrow`, and `copy` operators, `@noImplicitCopy`

Of course, we can split hairs and talk about a type that provides its own operation to clone its values despite being non-copyable, but that's not something we should call a "copy" because that term has specific meaning in Swift.

2 Likes