public func getVersion() -> Int { #if BEFORE return 0 #else return 1 #endif } public struct ResilientStruct { public init() {} } #if AFTER @_weakLinked public class ResilientClass { public init() {} public func fn(_ x: Int) {} public var storedProp: Int = 0 public var computedProp: Int { get { return 0 } set { } } public subscript(idx: Int) -> Int { get { return 0 } set { } } } @_weakLinked @_fixed_layout public class FixedLayoutClass { public init() {} public func fn(_ x: Int) {} // Make the first field resilient so that the second one has to be accessed // with a field offset global private var resilientField = ResilientStruct() public var storedProp: Int = 0 public var computedProp: Int { get { return 0 } set { } } public subscript(idx: Int) -> Int { get { return 0 } set { } } } #endif // Overriding a weak-linked method open class OpenClass { public init() {} open func oldMethod() {} #if AFTER @_weakLinked open func newMethod() {} #endif } // Inserting a superclass open class Top { public init() {} open func topMethod() {} } #if BEFORE open class Bottom : Top {} #else @_weakLinked open class Middle : Top { open func middleMethod() {} } open class Bottom : Middle {} #endif