Skip to content

Commit d88ac25

Browse files
committed
SILGen: resilient class tests
- final fields of resilient classes are accessed through accessor - accessors are not transparent Seems this already works.
1 parent 304f4f0 commit d88ac25

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

test/Inputs/resilient_class.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class OutsideParent {
2525

2626
public class ResilientOutsideParent {
2727
public var property: String = "ResilientOutsideParent.property"
28+
public final var finalProperty: String = "ResilientOutsideParent.finalProperty"
2829

2930
public class var classProperty: String {
3031
return "ResilientOutsideParent.classProperty"

test/SILGen/class_resilience.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// RUN: %target-swift-frontend -I %S/../Inputs -enable-source-import -emit-silgen -enable-resilience %s | FileCheck %s
2+
3+
import resilient_class
4+
5+
// Accessing final property of resilient class from different resilience domain
6+
// through accessor
7+
8+
// CHECK-LABEL: sil @_TF16class_resilience20finalPropertyOfOtherFC15resilient_class22ResilientOutsideParentT_
9+
// CHECK: function_ref @_TFC15resilient_class22ResilientOutsideParentg13finalPropertySS
10+
11+
public func finalPropertyOfOther(other: ResilientOutsideParent) {
12+
_ = other.finalProperty
13+
}
14+
15+
public class MyResilientClass {
16+
public final var finalProperty: String = "MyResilientClass.finalProperty"
17+
}
18+
19+
// Accessing final property of resilient class from my resilience domain
20+
// directly
21+
22+
// CHECK-LABEL: sil @_TF16class_resilience19finalPropertyOfMineFCS_16MyResilientClassT_
23+
// CHECK: ref_element_addr %0 : $MyResilientClass, #MyResilientClass.finalProperty
24+
25+
public func finalPropertyOfMine(other: MyResilientClass) {
26+
_ = other.finalProperty
27+
}
28+

0 commit comments

Comments
 (0)