[5.1][4-24-2019] Cherry-pick of recent module interface fixes #24257
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.
Cherry-pick of:
[ModuleInterface] Allow non-mutable IBOutlet instance properties in module interfaces #24225
If an
@IBOutlet
property ispublic private(set)
its interface only has a getter. Consuming this interface was triggering a diagnostic that@IBOutlet
properties must be mutable. This patch bypasses this check for module interfaces.[Deserialization] Don't add an OverrideAttr if the 'overridden' decl is a convenience init when deserializing #24212
The convenience initializer isn't really being overridden, and the attribute is only introduced after serializing and then de-serializing the AST. The attribute was causing us to incorrectly add the 'override' modifier on such initializers when printing the module interface as part of the merge-modules step. Trying to then consume them would give error: initializer does not override a designated initializer from its superclass.
Resolves rdar://problem/49856177
Resolves rdar://problem/49856927
Both were reviewed by Harlan and Jordan in their respective PRs.