swift
1232424b - RemoteMirror generic multi-payload-enum fixes (#41903)

Commit
4 years ago
RemoteMirror generic multi-payload-enum fixes (#41903) Apparently, RemoteMirror chokes on certain MPEs with generic payload types. It does not recognize the generic payload type so ends up defaulting to a zero size. This causes the overall enum size to be miscalculated unless there is another non-generic payload that's at least as large. The case below requires us to reprocess the metatype to "thicken" it. That process inadvertently lost information about the depth of generic nesting, which caused the RemoteMirror to be unable to resolve the type of `C.E.t` at runtime. ``` class C<T> { enum E<T> { case t(T) case u(Int) } var e: E<T>? } ``` Solution: add code to the thickening logic to recursively thicken parent types to preserve the nesting of generics. Resolves rdar://90490128
Author
Parents
Loading