mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
86 lines
1.3 KiB
Swift
86 lines
1.3 KiB
Swift
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
|