mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Tests: Add serialization of witness for conformance to package protocol tests.
Missing from https://github.com/apple/swift/pull/70100/.
This commit is contained in:
@@ -1,32 +1,52 @@
|
||||
// This file is also used by witness_tables_serialized_import.swift.
|
||||
|
||||
// RUN: %target-swift-emit-silgen %s | %FileCheck -check-prefix CHECK -check-prefix CHECK-NONRESILIENT %s
|
||||
// RUN: %target-swift-emit-silgen -enable-library-evolution %s | %FileCheck -check-prefix CHECK -check-prefix CHECK-RESILIENT %s
|
||||
// RUN: %target-swift-emit-silgen %s -package-name Package | %FileCheck -check-prefix CHECK -check-prefix CHECK-NONRESILIENT %s
|
||||
// RUN: %target-swift-emit-silgen -enable-library-evolution %s -package-name Package | %FileCheck -check-prefix CHECK -check-prefix CHECK-RESILIENT %s
|
||||
|
||||
public protocol PublicProtocol {}
|
||||
|
||||
@usableFromInline
|
||||
package protocol PackageProtocol {}
|
||||
|
||||
@usableFromInline internal protocol UsableFromInlineProtocol {}
|
||||
|
||||
internal protocol InternalProtocol {}
|
||||
|
||||
@_fixed_layout
|
||||
public struct PublicStruct : PublicProtocol, InternalProtocol {}
|
||||
@frozen
|
||||
public struct PublicFrozenStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
|
||||
|
||||
public struct PublicResilientStruct : PublicProtocol, InternalProtocol {}
|
||||
public struct PublicResilientStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
|
||||
|
||||
package struct PackageStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
|
||||
|
||||
@usableFromInline
|
||||
internal struct InternalStruct : PublicProtocol, InternalProtocol {}
|
||||
internal struct UsableFromInlineStruct : PublicProtocol, UsableFromInlineProtocol, PackageProtocol, InternalProtocol {}
|
||||
|
||||
// CHECK-DAG: sil_witness_table [serialized] PublicStruct: PublicProtocol
|
||||
// CHECK-DAG: sil_witness_table [serialized] PublicStruct: InternalProtocol
|
||||
// CHECK-DAG: sil_witness_table [serialized] PublicFrozenStruct: PublicProtocol
|
||||
// CHECK-DAG: sil_witness_table [serialized] PublicFrozenStruct: UsableFromInlineProtocol
|
||||
// CHECK-DAG: sil_witness_table PublicFrozenStruct: PackageProtocol
|
||||
// CHECK-DAG: sil_witness_table hidden PublicFrozenStruct: InternalProtocol
|
||||
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table InternalStruct: InternalProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table InternalStruct: PublicProtocol
|
||||
// CHECK-DAG: sil_witness_table [serialized] PackageStruct: PublicProtocol
|
||||
// CHECK-DAG: sil_witness_table [serialized] PackageStruct: UsableFromInlineProtocol
|
||||
// CHECK-DAG: sil_witness_table PackageStruct: PackageProtocol
|
||||
// CHECK-DAG: sil_witness_table hidden PackageStruct: InternalProtocol
|
||||
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: UsableFromInlineProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PublicProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PackageProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table hidden UsableFromInlineStruct: InternalProtocol
|
||||
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: PublicProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: InternalProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: UsableFromInlineProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table PublicResilientStruct: PackageProtocol
|
||||
// CHECK-RESILIENT-DAG: sil_witness_table hidden PublicResilientStruct: InternalProtocol
|
||||
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] InternalStruct: InternalProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] InternalStruct: PublicProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] UsableFromInlineStruct: UsableFromInlineProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] UsableFromInlineStruct: PublicProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table UsableFromInlineStruct: PackageProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table hidden UsableFromInlineStruct: InternalProtocol
|
||||
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: PublicProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: InternalProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table [serialized] PublicResilientStruct: UsableFromInlineProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table PublicResilientStruct: PackageProtocol
|
||||
// CHECK-NONRESILIENT-DAG: sil_witness_table hidden PublicResilientStruct: InternalProtocol
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: %target-swift-frontend -emit-module %S/witness_tables_serialized.swift -o %t -enable-library-evolution
|
||||
// RUN: %target-swift-frontend -emit-module %S/witness_tables_serialized.swift -o %t -enable-library-evolution -package-name Package
|
||||
// RUN: %target-swift-emit-silgen -I %t %s | %FileCheck %s
|
||||
|
||||
import witness_tables_serialized
|
||||
|
||||
Reference in New Issue
Block a user