1
1
// RUN: %target-parse-verify-swift
2
- // RUN: %target-swift-frontend -emit-silgen -o /dev/null %s
2
+ // RUN: %target-swift-frontend -emit-silgen %s | FileCheck %s
3
3
4
4
// This file tests that the AST produced after fixing accessibility warnings
5
5
// is valid according to SILGen and the verifiers.
6
6
7
7
public struct PublicStruct {
8
+ // CHECK-DAG: sil{{( \[.+\])*}} @_TFV22accessibility_warnings12PublicStructg9publicVarSi
8
9
public var publicVar = 0
10
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings12PublicStructCfT_S0_
9
11
}
10
12
11
13
internal struct InternalStruct {
12
- public var publicVar = 0 // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
14
+ public var publicVar = 0
15
+
16
+ public private( set) var publicVarPrivateSet = 0
13
17
14
- public private ( set) var publicVarPrivateSet = 0 // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
18
+ public public ( set) var publicVarPublicSet = 0
15
19
16
- public public( set) var publicVarPublicSet = 0 // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}} {{10-22=}}
20
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStructg16publicVarGetOnlySi
21
+ public var publicVarGetOnly : Int { return 0 }
17
22
18
- public var publicVarGetOnly : Int { return 0 } // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
23
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStructg15publicVarGetSetSi
24
+ public var publicVarGetSet : Int { get { return 0 } set { } }
19
25
20
- public var publicVarGetSet : Int { get { return 0 } set { } } // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
26
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStructCfT_S0_
21
27
}
22
28
23
29
private struct PrivateStruct {
24
- public var publicVar = 0 // expected-warning {{declaring a public var for a private struct}} {{3-9=private}}
30
+ public var publicVar = 0
31
+ // CHECK-DAG: sil private @_TFV22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0213PrivateStructCfT_S0_
25
32
}
26
33
27
34
28
35
extension PublicStruct {
36
+ // CHECK-DAG: sil @_TFV22accessibility_warnings12PublicStructCfT1xSi_S0_
29
37
public init ( x: Int ) { self . init ( ) }
30
38
39
+ // CHECK-DAG: sil @_TFV22accessibility_warnings12PublicStructg18publicVarExtensionSi
31
40
public var publicVarExtension : Int { get { return 0 } set { } }
32
41
}
33
42
34
43
extension InternalStruct {
35
- public init ( x: Int ) { self . init ( ) } // expected-warning {{declaring a public initializer for an internal struct}} {{3-9=internal}}
44
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStructCfT1xSi_S0_
45
+ public init ( x: Int ) { self . init ( ) }
36
46
37
- public var publicVarExtension : Int { get { return 0 } set { } } // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
47
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStructg18publicVarExtensionSi
48
+ public var publicVarExtension : Int { get { return 0 } set { } }
38
49
}
39
50
40
51
extension PrivateStruct {
41
- public init ( x: Int ) { self . init ( ) } // expected-warning {{declaring a public initializer for a private struct}} {{3-9=private}}
52
+ // CHECK-DAG: sil private @_TFV22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0213PrivateStructCfT1xSi_S0_
53
+ public init ( x: Int ) { self . init ( ) }
42
54
43
- public var publicVarExtension : Int { get { return 0 } set { } } // expected-warning {{declaring a public var for a private struct}} {{3-9=private}}
55
+ // CHECK-DAG: sil private @_TFV22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0213PrivateStructg18publicVarExtensionSi
56
+ public var publicVarExtension : Int { get { return 0 } set { } }
44
57
}
45
58
46
59
public extension PublicStruct {
60
+ // CHECK-DAG: sil @_TFV22accessibility_warnings12PublicStruct15extMemberPublicfT_T_
47
61
public func extMemberPublic( ) { }
62
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings12PublicStructP33_5D2F2E026754A901C0FF90C404896D0213extImplPublicfT_T_
48
63
private func extImplPublic( ) { }
49
64
}
50
65
internal extension PublicStruct {
66
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings12PublicStruct17extMemberInternalfT_T_
51
67
public func extMemberInternal( ) { } // expected-warning {{declaring a public instance method in an internal extension}} {{3-9=internal}}
68
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings12PublicStructP33_5D2F2E026754A901C0FF90C404896D0215extImplInternalfT_T_
52
69
private func extImplInternal( ) { }
53
70
}
54
71
private extension PublicStruct {
72
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings12PublicStructP33_5D2F2E026754A901C0FF90C404896D0216extMemberPrivatefT_T_
55
73
public func extMemberPrivate( ) { } // expected-warning {{declaring a public instance method in a private extension}} {{3-9=private}}
74
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings12PublicStructP33_5D2F2E026754A901C0FF90C404896D0214extImplPrivatefT_T_
56
75
private func extImplPrivate( ) { }
57
76
}
58
77
59
78
internal extension InternalStruct {
79
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings14InternalStruct17extMemberInternalfT_T_
60
80
public func extMemberInternal( ) { } // expected-warning {{declaring a public instance method in an internal extension}} {{3-9=internal}}
81
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings14InternalStructP33_5D2F2E026754A901C0FF90C404896D0215extImplInternalfT_T_
61
82
private func extImplInternal( ) { }
62
83
}
63
84
private extension InternalStruct {
85
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings14InternalStructP33_5D2F2E026754A901C0FF90C404896D0216extMemberPrivatefT_T_
64
86
public func extMemberPrivate( ) { } // expected-warning {{declaring a public instance method in a private extension}} {{3-9=private}}
87
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings14InternalStructP33_5D2F2E026754A901C0FF90C404896D0214extImplPrivatefT_T_
65
88
private func extImplPrivate( ) { }
66
89
}
67
90
68
91
69
92
private extension PrivateStruct {
93
+ // CHECK-DAG: sil private @_TFV22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0213PrivateStruct16extMemberPrivatefT_T_
70
94
public func extMemberPrivate( ) { } // expected-warning {{declaring a public instance method in a private extension}} {{3-9=private}}
95
+ // CHECK-DAG: sil private @_TFV22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0213PrivateStruct14extImplPrivatefT_T_
71
96
private func extImplPrivate( ) { }
72
97
}
73
98
@@ -77,7 +102,10 @@ public protocol PublicReadOnlyOperations {
77
102
}
78
103
79
104
internal struct PrivateSettersForReadOnlyInternal : PublicReadOnlyOperations {
80
- public private( set) var size = 0 // expected-warning {{declaring a public var for an internal struct}} {{3-9=internal}}
105
+ // CHECK-DAG: sil hidden{{( \[.+\])*}} @_TFV22accessibility_warnings33PrivateSettersForReadOnlyInternalg4sizeSi
106
+ public private( set) var size = 0
107
+ // CHECK-DAG: sil hidden @_TFV22accessibility_warnings33PrivateSettersForReadOnlyInternalg9subscriptFSiSi
108
+ // CHECK-DAG: sil private @_TFV22accessibility_warnings33PrivateSettersForReadOnlyInternals9subscriptFSiSi
81
109
internal private( set) subscript ( _: Int ) -> Int { // no-warning
82
110
get { return 42 }
83
111
set { }
@@ -86,22 +114,32 @@ internal struct PrivateSettersForReadOnlyInternal : PublicReadOnlyOperations {
86
114
87
115
88
116
public class PublicClass {
117
+ // CHECK-DAG: sil{{( \[.+\])*}} @_TFC22accessibility_warnings11PublicClassg9publicVarSi
89
118
public var publicVar = 0
119
+ // CHECK-DAG: sil hidden @_TFC22accessibility_warnings11PublicClasscfT_S0_
90
120
}
91
121
92
122
internal class InternalClass {
93
- public var publicVar = 0 // expected-warning {{declaring a public var for an internal class}} {{3-9=internal}}
123
+ // CHECK-DAG: sil hidden{{( \[.+\])*}} @_TFC22accessibility_warnings13InternalClassg9publicVarSi
124
+ public var publicVar = 0
94
125
95
- public private( set) var publicVarPrivateSet = 0 // expected-warning {{declaring a public var for an internal class}} {{3-9=internal}}
126
+ // CHECK-DAG: sil hidden [transparent] @_TFC22accessibility_warnings13InternalClassg19publicVarPrivateSetSi
127
+ public private( set) var publicVarPrivateSet = 0
96
128
97
- public public( set) var publicVarPublicSet = 0 // expected-warning {{declaring a public var for an internal class}} {{3-9=internal}}
129
+ public public( set) var publicVarPublicSet = 0
98
130
99
- public var publicVarGetOnly : Int { return 0 } // expected-warning {{declaring a public var for an internal class}} {{3-9=internal}}
131
+ // CHECK-DAG: sil hidden @_TFC22accessibility_warnings13InternalClassg16publicVarGetOnlySi
132
+ public var publicVarGetOnly : Int { return 0 }
100
133
101
- public var publicVarGetSet : Int { get { return 0 } set { } } // expected-warning {{declaring a public var for an internal class}} {{3-9=internal}}
134
+ // CHECK-DAG: sil hidden @_TFC22accessibility_warnings13InternalClassg15publicVarGetSetSi
135
+ public var publicVarGetSet : Int { get { return 0 } set { } }
136
+
137
+ // CHECK-DAG: sil hidden @_TFC22accessibility_warnings13InternalClasscfT_S0_
102
138
}
103
139
104
140
private class PrivateClass {
105
- public var publicVar = 0 // expected-warning {{declaring a public var for a private class}} {{3-9=private}}
141
+ // CHECK-DAG: sil private{{( \[.+\])*}} @_TFC22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0212PrivateClassg9publicVarSi
142
+ public var publicVar = 0
143
+ // CHECK-DAG: sil private @_TFC22accessibility_warningsP33_5D2F2E026754A901C0FF90C404896D0212PrivateClasscfT_S0_
106
144
}
107
145
0 commit comments