mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
* [InterfaceGen] Print abstract accessors in protocols This patch slightly cleans up printing accessors and ensures we print accessors abstractly in protocol context for textual interfaces. It also removes some assuptions around the FunctionBody callback and makes them more explicit. * Print getter and setter for didSet decls * Test _read and _modify * Fix logic for skipping willSet/didSet * Update 'final' test for new getter printing behavior
44 lines
1.2 KiB
Swift
44 lines
1.2 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -emit-module -o %t/Test.swiftmodule -emit-interface-path %t/Test.swiftinterface -module-name Test %s
|
|
// RUN: %FileCheck %s < %t/Test.swiftinterface
|
|
// RUN: %target-swift-frontend -emit-module -o /dev/null -merge-modules %t/Test.swiftmodule -disable-objc-attr-requires-foundation-module -emit-interface-path - -module-name Test | %FileCheck %s
|
|
|
|
// CHECK: final public class FinalClass {
|
|
public final class FinalClass {
|
|
// CHECK: @inlinable final public class var a: [[INT:(Swift.)?Int]] {
|
|
// CHECK-NEXT: {{^}} get {
|
|
// CHECK-NEXT: return 3
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: }
|
|
@inlinable
|
|
public final class var a: Int {
|
|
return 3
|
|
}
|
|
|
|
// CHECK: final public class var b: [[INT]] {
|
|
// CHECK-NEXT: {{^}} @inlinable get {
|
|
// CHECK-NEXT: return 3
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: set[[NEWVALUE:(\(newValue\))?]]{{$}}
|
|
// CHECK-NEXT: }
|
|
public final class var b: Int {
|
|
@inlinable get {
|
|
return 3
|
|
}
|
|
set {
|
|
print("x")
|
|
}
|
|
}
|
|
|
|
// CHECK: public static var c: [[INT]] {
|
|
// CHECK-NEXT: {{^}} get
|
|
// CHECK-NEXT: @inlinable set[[NEWVALUE]] {}
|
|
// CHECK-NEXT: }
|
|
public static var c: Int {
|
|
get {
|
|
return 0
|
|
}
|
|
@inlinable set {}
|
|
}
|
|
}
|