Skip to content

Commit 28945da

Browse files
committed
[Sema] Test that we don't generate a TRC for skipped functions
1 parent 14905bb commit 28945da

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed
Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,49 @@
11
/// Check for reliable availability checking in inlinable code even when
22
/// skipping some function bodies. rdar://82269657
33

4-
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.12
5-
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.12 -experimental-skip-non-inlinable-function-bodies
6-
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.12 -experimental-skip-non-inlinable-function-bodies-without-types
7-
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.12 -experimental-skip-all-function-bodies
4+
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.10 2>&1 \
5+
// RUN: | %FileCheck %s --check-prefixes TRC-API,TRC-INLINABLE,TRC-WITHTYPES,TRC-FULL
6+
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.10 -experimental-skip-non-inlinable-function-bodies-without-types 2>&1 \
7+
// RUN: | %FileCheck %s --check-prefixes TRC-API,TRC-INLINABLE,TRC-WITHTYPES,TRC-FULL-NOT
8+
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.10 -experimental-skip-non-inlinable-function-bodies 2>&1 \
9+
// RUN: | %FileCheck %s --check-prefixes TRC-API,TRC-INLINABLE,TRC-WITHTYPES-NOT,TRC-FULL-NOT
10+
// RUN: %target-swift-frontend -typecheck -dump-type-refinement-contexts %s -target x86_64-apple-macos10.10 -experimental-skip-all-function-bodies 2>&1 \
11+
// RUN: | %FileCheck %s --check-prefixes TRC-API,TRC-INLINABLE-NOT,TRC-WITHTYPES-NOT,TRC-FULL-NOT
812

913
// REQUIRES: OS=macosx
1014

11-
@available(macOS 10.14, *)
15+
@available(macOS 10.12, *)
1216
public func foo() { }
17+
// TRC-API: (root versions=[10.10.0,+Inf)
18+
// TRC-API: (decl versions=[10.12,+Inf) decl=foo()
1319

1420
@inlinable public func inlinableFunc() {
15-
if #available(macOS 10.14, *) {
21+
if #available(macOS 10.12, *) {
1622
foo()
1723
}
1824
}
25+
// TRC-INLINABLE: (condition_following_availability versions=[10.12,+Inf)
26+
// TRC-INLINABLE: (if_then versions=[10.12,+Inf)
27+
// TRC-INLINABLE-NOT-NOT: (condition_following_availability versions=[10.12,+Inf)
28+
// TRC-INLINABLE-NOT-NOT: (if_then versions=[10.12,+Inf)
1929

2030
public func funcWithType() {
2131
struct S {}
32+
if #available(macOS 10.13, *) {
33+
foo()
34+
}
35+
}
36+
// TRC-WITHTYPES: (condition_following_availability versions=[10.13,+Inf)
37+
// TRC-WITHTYPES: (if_then versions=[10.13,+Inf)
38+
// TRC-WITHTYPES-NOT-NOT: (condition_following_availability versions=[10.13,+Inf)
39+
// TRC-WITHTYPES-NOT-NOT: (if_then versions=[10.13,+Inf)
40+
41+
public func funcSkippable() {
2242
if #available(macOS 10.14, *) {
2343
foo()
2444
}
2545
}
46+
// TRC-FULL: (condition_following_availability versions=[10.14,+Inf)
47+
// TRC-FULL: (if_then versions=[10.14,+Inf)
48+
// TRC-FULL-NOT-NOT: (condition_following_availability versions=[10.14,+Inf)
49+
// TRC-FULL-NOT-NOT: (if_then versions=[10.14,+Inf)

0 commit comments

Comments
 (0)