Files
swift-mirror/test/ModuleInterface/final.swift
Harlan 8ba8222333 [InterfaceGen] Print abstract accessors in protocols (#19379)
* [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
2018-09-20 15:43:01 -07:00

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 {}
}
}