import resilient_struct import Foundation // Resilient base class open class ResilientNSObjectOutsideParent: NSObject { open var property: String = "ResilientNSObjectOutsideParent.property" public final var finalProperty: String = "ResilientNSObjectOutsideParent.finalProperty" open class var classProperty: String { return "ResilientNSObjectOutsideParent.classProperty" } override public init() { print("ResilientNSObjectOutsideParent.init()") } open func method() { print("ResilientNSObjectOutsideParent.method()") } open class func classMethod() { print("ResilientNSObjectOutsideParent.classMethod()") } open func getValue() -> Int { return 0 } } // Resilient generic base class open class ResilientGenericNSObjectOutsideParent: NSObject { open var property: A public init(property: A) { self.property = property print("ResilientGenericNSObjectOutsideParent.init()") } open func method() { print("ResilientGenericNSObjectOutsideParent.method()") } open class func classMethod() { print("ResilientGenericNSObjectOutsideParent.classMethod()") } } // Resilient subclass of generic class open class ResilientConcreteNSObjectOutsideChild : ResilientGenericNSObjectOutsideParent { public override init(property: String) { print("ResilientConcreteNSObjectOutsideChild.init(property: String)") super.init(property: property) } open override func method() { print("ResilientConcreteNSObjectOutsideChild.method()") super.method() } open override class func classMethod() { print("ResilientConcreteNSObjectOutsideChild.classMethod()") super.classMethod() } } // Fixed-layout base class @_fixed_layout open class FixedLayoutNSObjectOutsideParent: NSObject {}