Files
swift-mirror/test/embedded/existential-class-bound2.swift
T
Doug Gregor ae1e3d0865 Build a static library that implements the Embedded Swift platform layer on POSIX
The new library, swiftEmbeddedPlatformPOSIX, implements all of the
_swift_XYZ functions needed to support Embedded Swift as shims on top
of a POSIX system that provides posix_memalign, free, putchar, and so
on. This offers an easier way to bridge between the prior ad hoc
requirements of Embedded Swift and the newer platform abstraction
layer.

Part of rdar://164057124
2026-03-03 09:05:30 -08:00

51 lines
1.1 KiB
Swift

// RUN: %target-run-simple-swift(-enable-experimental-feature Embedded -parse-as-library -wmo %target-embedded-posix-shim) | %FileCheck %s
// REQUIRES: swift_in_compiler
// REQUIRES: executable_test
// REQUIRES: optimized_stdlib
// REQUIRES: swift_feature_Embedded
protocol ClassBound: AnyObject {
func foo()
func bar()
}
extension ClassBound {
func extensionMethod() {
self.foo()
self.bar()
}
}
class MyClass {}
extension MyClass: ClassBound {
func foo() { print("MyClass.foo()") }
func bar() { print("MyClass.bar()") }
}
class MyOtherClass {}
extension MyOtherClass: ClassBound {
func foo() { print("MyOtherClass.foo()") }
func bar() { print("MyOtherClass.bar()") }
}
@main
struct Main {
static func main() {
var array: [any ClassBound] = []
array.append(MyClass())
array.append(MyOtherClass())
for e in array {
e.extensionMethod()
}
// CHECK: MyClass.foo()
// CHECK: MyClass.bar()
// CHECK: MyOtherClass.foo()
// CHECK: MyOtherClass.bar()
}
}