Package CMO: Prevent serializing types from SDK/system modules imported as @_implementationOnly. #79140
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, types from @_implementationOnly modules can be serialized into client modules if their
defining modules are SDK or system modules. However, @_implementationOnly is intended to hide
types from external clients, and may cause the type’s metadata (e.g., field offsets) to be stripped. If
such types are serialized and later accessed by a client module, it can lead to linker errors due to the
missing metadata. This PR prevents all types imported with @_implementationOnly from being serialized.
Resolves rdar://144181455