@@ -34,6 +34,15 @@ private class PrivateB: PrivateA {
34
34
35
35
sil @PrivateB_yesOverrides : $@convention(method) (@guaranteed PrivateB) -> ()
36
36
37
+ // NOWMO-LABEL: sil_vtable PrivateB {
38
+ // NOWMO: #PrivateA.noOverrides{{.*}} [nonoverridden]
39
+ // NOWMO-NOT: #PrivateA.yesOverrides{{.*}} [nonoverridden]
40
+ // NOWMO: #PrivateA.isFinal{{.*}} [nonoverridden]
41
+
42
+ // WMO-LABEL: sil_vtable PrivateB {
43
+ // WMO: #PrivateA.noOverrides{{.*}} [nonoverridden]
44
+ // WMO-NOT: #PrivateA.yesOverrides{{.*}} [nonoverridden]
45
+ // WMO: #PrivateA.isFinal{{.*}} [nonoverridden]
37
46
sil_vtable PrivateB {
38
47
#PrivateA.noOverrides: @PrivateA_noOverrides [inherited]
39
48
#PrivateA.yesOverrides: @PrivateB_yesOverrides [override]
@@ -71,6 +80,15 @@ internal class InternalB: InternalA {
71
80
72
81
sil @InternalB_yesOverrides : $@convention(method) (@guaranteed InternalB) -> ()
73
82
83
+ // NOWMO-LABEL: sil_vtable InternalB {
84
+ // NOWMO-NOT: #InternalA.noOverrides{{.*}} [nonoverridden]
85
+ // NOWMO-NOT: #InternalA.yesOverrides{{.*}} [nonoverridden]
86
+ // NOWMO: #InternalA.isFinal{{.*}} [nonoverridden]
87
+
88
+ // WMO-LABEL: sil_vtable InternalB {
89
+ // WMO: #InternalA.noOverrides{{.*}} [nonoverridden]
90
+ // WMO-NOT: #InternalA.yesOverrides{{.*}} [nonoverridden]
91
+ // WMO: #InternalA.isFinal{{.*}} [nonoverridden]
74
92
sil_vtable InternalB {
75
93
#InternalA.noOverrides: @InternalA_noOverrides [inherited]
76
94
#InternalA.yesOverrides: @InternalB_yesOverrides [override]
@@ -108,6 +126,15 @@ public class PublicB: PublicA {
108
126
109
127
sil @PublicB_yesOverrides : $@convention(method) (@guaranteed PublicB) -> ()
110
128
129
+ // NOWMO-LABEL: sil_vtable PublicB {
130
+ // NOWMO-NOT: #PublicA.noOverrides{{.*}} [nonoverridden]
131
+ // NOWMO-NOT: #PublicA.yesOverrides{{.*}} [nonoverridden]
132
+ // NOWMO: #PublicA.isFinal{{.*}} [nonoverridden]
133
+
134
+ // WMO-LABEL: sil_vtable PublicB {
135
+ // WMO: #PublicA.noOverrides{{.*}} [nonoverridden]
136
+ // WMO-NOT: #PublicA.yesOverrides{{.*}} [nonoverridden]
137
+ // WMO: #PublicA.isFinal{{.*}} [nonoverridden]
111
138
sil_vtable PublicB {
112
139
#PublicA.noOverrides: @PublicA_noOverrides [inherited]
113
140
#PublicA.yesOverrides: @PublicB_yesOverrides [override]
@@ -145,6 +172,15 @@ open class OpenB: OpenA {
145
172
146
173
sil @OpenB_yesOverrides : $@convention(method) (@guaranteed OpenB) -> ()
147
174
175
+ // NOWMO-LABEL: sil_vtable OpenB {
176
+ // NOWMO-NOT: #OpenA.noOverrides{{.*}} [nonoverridden]
177
+ // NOWMO-NOT: #OpenA.yesOverrides{{.*}} [nonoverridden]
178
+ // NOWMO: #OpenA.isFinal{{.*}} [nonoverridden]
179
+
180
+ // WMO-LABEL: sil_vtable OpenB {
181
+ // WMO-NOT: #OpenA.noOverrides{{.*}} [nonoverridden]
182
+ // WMO-NOT: #OpenA.yesOverrides{{.*}} [nonoverridden]
183
+ // WMO: #OpenA.isFinal{{.*}} [nonoverridden]
148
184
sil_vtable OpenB {
149
185
#OpenA.noOverrides: @PublicA_noOverrides [inherited]
150
186
#OpenA.yesOverrides: @OpenB_yesOverrides [override]
0 commit comments