I think the key distinction to draw is that I’m suggesting @noImplicitCopy
be automatically applied to all code that isn’t in an ImplicitlyCopyable
scope – or, to put it another way, that code that isn’t in an ImplicitlyCopyable
scope doesn’t automatically synthesise conformances to ImplicitlyCopyable
for Copyable
types that are used within said scope (wherever they may be defined). That’s in addition to suppressing automatic conformance of Copyable
for all types defined outside of an ImplicitlyCopyable
scope.
Rephrasing without negative constraints: code within an ImplicityCopyable
scope automatically generates conformances to ImplicitlyCopyable
for all Copyable
types regardless of where they’re defined, and additionally synthesises conformances to Copyable
for all types defined within that scope. All current Swift code is assumed to be implicitly within an ImplicityCopyable
scope.