Files
swift-mirror/test/ModuleInterface/attrs.swift
Arnold Schwaighofer 7bfa01a817 swiftinterface: print _specialize functions with targetFunction parameter in .swiftinterface
If we have an internal function with a `_specialize` attribute that has
a `targetFunction:` parameter we want the function to appear in the
.swiftinterface file such that the exported specialization can be picked up by
the compiler.
2022-05-09 10:08:52 -07:00

30 lines
1.2 KiB
Swift

// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -module-name attrs
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -module-name attrs
// RUN: %FileCheck %s < %t.swiftinterface
// CHECK: @_transparent public func glass() -> Swift.Int { return 0 }{{$}}
@_transparent public func glass() -> Int { return 0 }
// CHECK: @_effects(readnone) public func illiterate(){{$}}
@_effects(readnone) public func illiterate() {}
// CHECK: @_effects(notEscaping arg1.**) public func escapeEffects(arg1: Swift.Int){{$}}
@_effects(notEscaping arg1.**) public func escapeEffects(arg1: Int) {}
// CHECK-LABEL: @frozen public struct Point {
@frozen public struct Point {
// CHECK-NEXT: public var x: Swift.Int
public var x: Int
// CHECK-NEXT: public var y: Swift.Int
public var y: Int
} // CHECK-NEXT: {{^}$}}
public func someGenericFunction<T>(_ t: T) -> Int { return 0 }
// CHECK: @_specialize(exported: true, kind: full, target: someGenericFunction(_:), where T == Swift.Int)
// CHECK: internal func __specialize_someGenericFunction<T>(_ t: T)
@_specialize(exported: true, target: someGenericFunction(_:), where T == Int)
internal func __specialize_someGenericFunction<T>(_ t: T) -> Int {
fatalError("don't call")
}