Skip to content

Commit e0362d8

Browse files
committed
Test: Enhance TBDGen test coverage for the @_specialize attribute.
1 parent a694907 commit e0362d8

File tree

2 files changed

+51
-7
lines changed

2 files changed

+51
-7
lines changed

test/TBD/specialize_attr.swift

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// REQUIRES: VENDOR=apple
2+
3+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s
4+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s
5+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing
6+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing
7+
8+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing -O %s
9+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing -O %s
10+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing -O
11+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing -O
12+
13+
@_specialize(exported: false, where T == Int)
14+
@_specialize(exported: true, where T == Float)
15+
public func foo<T>(_ x : T) -> T { return x }
16+
17+
@_specialize(exported: false, where T == Int)
18+
@_specialize(exported: true, where T == Float)
19+
internal func fooInternal<T>(_ x : T) -> T { return x }
20+
21+
@_specialize(exported: false, where T == Int)
22+
@_specialize(exported: true, where T == Float)
23+
private func fooPrivate<T>(_ x : T) -> T { return x }
24+
25+
public struct S {
26+
@_specialize(exported: false, where T == Int)
27+
@_specialize(exported: true, where T == Float)
28+
public func foo<T>(_ x : T) -> T { return x }
29+
30+
@_specialize(exported: false, where T == Int)
31+
@_specialize(exported: true, where T == Float)
32+
internal func fooInternal<T>(_ x : T) -> T { return x }
33+
34+
@_specialize(exported: false, where T == Int)
35+
@_specialize(exported: true, where T == Float)
36+
private func fooPrivate<T>(_ x : T) -> T { return x }
37+
}
38+
39+
public class C {
40+
@_specialize(exported: false, where T == Int)
41+
@_specialize(exported: true, where T == Float)
42+
public func foo<T>(_ x : T) -> T { return x }
43+
44+
@_specialize(exported: false, where T == Int)
45+
@_specialize(exported: true, where T == Float)
46+
internal func fooInternal<T>(_ x : T) -> T { return x }
47+
48+
@_specialize(exported: false, where T == Int)
49+
@_specialize(exported: true, where T == Float)
50+
private func fooPrivate<T>(_ x : T) -> T { return x }
51+
}

test/TBD/specialize_verify.swift

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)