forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreference-dependencies-members-fine.swift
More file actions
69 lines (58 loc) · 3.73 KB
/
Copy pathreference-dependencies-members-fine.swift
File metadata and controls
69 lines (58 loc) · 3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// REQUIRES: shell
// Also uses awk:
// XFAIL OS=windows
// RUN: %empty-directory(%t)
// RUN: cp %s %t/main.swift
// Need -fine-grained-dependency-include-intrafile to be invarient wrt type-body-fingerprints enabled/disabled
// RUN: %target-swift-frontend -enable-fine-grained-dependencies -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - > %t.swiftdeps
// RUN: %target-swift-frontend -enable-fine-grained-dependencies -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - > %t-2.swiftdeps
// RUN: %S/../Inputs/process_fine_grained_swiftdeps.sh <%t.swiftdeps >%t-processed.swiftdeps
// RUN: %S/../Inputs/process_fine_grained_swiftdeps.sh <%t-2.swiftdeps >%t-2-processed.swiftdeps
// RUN: diff %t-processed.swiftdeps %t-2-processed.swiftdeps
// RUN: %FileCheck -check-prefix=PROVIDES-NOMINAL %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=PROVIDES-NOMINAL-2 %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=PROVIDES-MEMBER %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=PROVIDES-MEMBER-NEGATIVE %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=DEPENDS-NOMINAL %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=DEPENDS-MEMBER %s < %t-processed.swiftdeps
// RUN: %FileCheck -check-prefix=DEPENDS-MEMBER-NEGATIVE %s < %t-processed.swiftdeps
// PROVIDES-NOMINAL-DAG: nominal implementation 4main4BaseC '' true
// PROVIDES-NOMINAL-DAG: nominal interface 4main4BaseC '' true
class Base {
// PROVIDES-MEMBER-DAG: potentialMember implementation 4main4BaseC '' true
// PROVIDES-MEMBER-DAG: potentialMember interface 4main4BaseC '' true
// PROVIDES-MEMBER-NEGATIVE-NOT: member {{.*}} 4main4BaseC {{[^']]+}} true
func foo() {}
}
// PROVIDES-NOMINAL-DAG: nominal implementation 4main3SubC '' true
// PROVIDES-NOMINAL-DAG: nominal interface 4main3SubC '' true
// DEPENDS-NOMINAL-DAG: nominal interface 4main9OtherBaseC '' false
class Sub : OtherBase {
// PROVIDES-MEMBER-DAG: potentialMember implementation 4main3SubC '' true
// PROVIDES-MEMBER-NEGATIVE-NOT: {{potentialM|m}}}}ember implementation 4main3SubC {{.+}} true
// DEPENDS-MEMBER-DAG: potentialMember interface 4main9OtherBaseC '' false
// DEPENDS-MEMBER-DAG: member interface 4main9OtherBaseC foo false
// DEPENDS-MEMBER-DAG: member interface 4main9OtherBaseC init false
func foo() {}
}
// PROVIDES-NOMINAL-DAG: nominal implementation 4main9SomeProtoP '' true
// PROVIDES-NOMINAL-DAG: nominal interface 4main9SomeProtoP '' true
// PROVIDES-MEMBER-DAG: potentialMember interface 4main9SomeProtoP '' true
protocol SomeProto {}
// PROVIDES-NOMINAL-DAG: nominal implementation 4main10OtherClassC '' true
// PROVIDES-NOMINAL-2-DAG: nominal interface 4main10OtherClassC '' true
// PROVIDES-MEMBER-DAG: potentialMember interface 4main10OtherClassC '' true
// DEPENDS-MEMBER-DAG: member interface 4main10OtherClassC deinit false
extension OtherClass : SomeProto {}
// PROVIDES-NOMINAL-DAG: nominal implementation 4main11OtherStructV '' true
// PROVIDES-NOMINAL-DAG: nominal interface 4main11OtherStructV '' true
extension OtherStruct {
// PROVIDES-MEMBER-DAG: potentialMember interface 4main11OtherStructV '' true
// PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV foo true
// PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV bar true
// PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV baz true
// DEPENDS-MEMBER-NEGATIVE-NOT:: potentialMember interface 4main11OtherStructV baz false
func foo() {}
var bar: () { return () }
private func baz() {}
}