When a NoncopyableGenericsMismatch happens between the compiler and
stdlib, allow the compiler to rebuild the stdlib from its interface
instead of exiting with an error.
These tests were not updated in the transition to
`REQUIRES: noncopyable_generics` and thus running them with a
correctly-built stdlib that has the Copyable requirements.
This test is blocking CI and the pass is not actively maintained.
rdar://118135397 (Swift CI: test:
SILOptimizer/moveonly_computed_property.swift (SIL verification
failed: 'MoveOnly' types can only be copied in Raw SIL?!))
We were missing some of the "artificial" types in the
TypeBase::isNoncopyable implementation. Rather than add them to the
frontend, I just check for those special SIL-only types in
SILType::isMoveOnly.
resolves rdar://117282929
Normally, if we project from a mutable class ivar or global variable, we'll
load a copy in a tight access scope and then project from the copy, in order to
minimize the potential for exclusivity violations while working with classes and
copyable values. However, this is undesirable when a value is move-only, since
copying is not allowed; borrowing the value in place is the expected and only possible
behavior. rdar://105794506