Skip to content

Commit 857c2c3

Browse files
committed
Tests: Add serialization of witness for conformance to package protocol tests.
Missing from #70100.
1 parent d16d979 commit 857c2c3

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed
Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,52 @@
11
// This file is also used by witness_tables_serialized_import.swift.
22

3-
// RUN: %target-swift-emit-silgen %s | %FileCheck -check-prefix CHECK -check-prefix CHECK-NONRESILIENT %s
4-
// RUN: %target-swift-emit-silgen -enable-library-evolution %s | %FileCheck -check-prefix CHECK -check-prefix CHECK-RESILIENT %s
3+
// RUN: %target-swift-emit-silgen %s -package-name Package | %FileCheck -check-prefix CHECK -check-prefix CHECK-NONRESILIENT %s
4+
// RUN: %target-swift-emit-silgen -enable-library-evolution %s -package-name Package | %FileCheck -check-prefix CHECK -check-prefix CHECK-RESILIENT %s
55

66
public protocol PublicProtocol {}
77

8-
@usableFromInline
8+
package protocol PackageProtocol {}
9+
10+
@usableFromInline internal protocol UsableFromInlineProtocol {}
11+
912
internal protocol InternalProtocol {}
1013

11-
@_fixed_layout
12-
public struct PublicStruct : PublicProtocol, InternalProtocol {}
14+
@frozen
15+
public struct PublicFrozenStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
1316

14-
public struct PublicResilientStruct : PublicProtocol, InternalProtocol {}
17+
public struct PublicResilientStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
18+
19+
package struct PackageStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
1520

1621
@usableFromInline
17-
internal struct InternalStruct : PublicProtocol, InternalProtocol {}
22+
internal struct UsableFromInlineStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
23+
24+
// CHECK-DAG: sil_witness_table [serialized] PublicFrozenStruct: PublicProtocol
25+
// CHECK-DAG: sil_witness_table [serialized] PublicFrozenStruct: UsableFromInlineProtocol
26+
// CHECK-DAG: sil_witness_table PublicFrozenStruct: PackageProtocol
27+
// CHECK-DAG: sil_witness_table hidden PublicFrozenStruct: InternalProtocol
1828

19-
// CHECK-DAG: sil_witness_table [serialized] PublicStruct: PublicProtocol
20-
// CHECK-DAG: sil_witness_table [serialized] PublicStruct: InternalProtocol
29+
// CHECK-DAG: sil_witness_table [serialized] PackageStruct: PublicProtocol
30+
// CHECK-DAG: sil_witness_table [serialized] PackageStruct: UsableFromInlineProtocol
31+
// CHECK-DAG: sil_witness_table PackageStruct: PackageProtocol
32+
// CHECK-DAG: sil_witness_table hidden PackageStruct: InternalProtocol
2133

22-
// CHECK-RESILIENT-DAG: sil_witness_table InternalStruct: InternalProtocol
23-
// CHECK-RESILIENT-DAG: sil_witness_table InternalStruct: PublicProtocol
34+
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: UsableFromInlineProtocol
35+
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PublicProtocol
36+
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PackageProtocol
37+
// CHECK-RESILIENT-DAG: sil_witness_table hidden UsableFromInlineStruct: InternalProtocol
2438

2539
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: PublicProtocol
26-
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: InternalProtocol
40+
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: UsableFromInlineProtocol
41+
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: PackageProtocol
42+
// CHECK-RESILIENT-DAG: sil_witness_table hidden PublicResilientStruct: InternalProtocol
2743

28-
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] InternalStruct: InternalProtocol
29-
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] InternalStruct: PublicProtocol
44+
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] UsableFromInlineStruct: UsableFromInlineProtocol
45+
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] UsableFromInlineStruct: PublicProtocol
46+
// CHECK-NONRESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PackageProtocol
47+
// CHECK-NONRESILIENT-DAG: sil_witness_table hidden UsableFromInlineStruct: InternalProtocol
3048

3149
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: PublicProtocol
32-
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: InternalProtocol
50+
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: UsableFromInlineProtocol
51+
// CHECK-NONRESILIENT-DAG: sil_witness_table PublicResilientStruct: PackageProtocol
52+
// CHECK-NONRESILIENT-DAG: sil_witness_table hidden PublicResilientStruct: InternalProtocol

test/SILGen/witness_tables_serialized_import.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend -emit-module %S/witness_tables_serialized.swift -o %t -enable-library-evolution
2+
// RUN: %target-swift-frontend -emit-module %S/witness_tables_serialized.swift -o %t -enable-library-evolution -package-name Package
33
// RUN: %target-swift-emit-silgen -I %t %s | %FileCheck %s
44

55
import witness_tables_serialized

0 commit comments

Comments
 (0)