Files
swift-mirror/validation-test/Serialization/Inputs/rdar29694978.h
Jordan Rose 97b06445e3 Always desugar the base type of an extension when serializing. (#6336)
This "fixes" two issues:

- The name of a non-public typealias would leak into the public
  interface if the extension had any public members.

- A common pattern of defining a platform-specific typealias for an
  imported class and then extending that type would lead to
  circularity when trying to deserialize the typealias. We /shouldn't/
  be loading the extension at that point, but fixing that would be
  much harder.

The "right" answer is to (a) check that the typealias is public if the
extension has any public members, and (b) somehow ensure there is no
circularity issue (either by not importing the extension as a result
of importing the typealias, or by the extension being able to set its
sugared base type later).

rdar://problem/29694978
2016-12-19 16:44:35 -08:00

14 lines
195 B
Objective-C

@import Foundation;
@protocol BaseProto
@end
@protocol SubProto <BaseProto>
@end
@interface NonGenericType: NSObject <SubProto>
@end
@interface GenericType<Element>: NSObject <SubProto>
@end