forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomplete_doc_keyword.swift
108 lines (94 loc) · 2.57 KB
/
complete_doc_keyword.swift
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TYPE1 | %FileCheck %s -check-prefix=TYPE1
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER1 | %FileCheck %s -check-prefix=MEMBER1
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER2 | %FileCheck %s -check-prefix=MEMBER2
/**
- keyword: C1, Class
- recommended: C2
*/
class C1 {
/**
- keyword: v1, Int
- recommended: v2
*/
var v1 : Int = 0
/**
- keyword: v2, Int
- recommendedover: v1
*/
var v2 : Int = 0
/**
- keyword: f1, func
- recommended: f2
*/
func f1() {}
/**
- keyword: f2, func
- recommendedover: f1
*/
func f2() {}
}
/**
- keyword: C2, Class
- recommendedover: C1
*/
class C2 {}
/**
- keyword: S1, Struct
- recommendedover: S2
*/
struct S1 {}
/**
- keyword: S2, Struct
- recommended: S1
*/
struct S2 {}
/**
- keyword: E1, Enum
- recommended: E2
*/
enum E1{}
/**
- keyword: E2, Enum
- recommendedover: E1
*/
enum E2{}
/**
- keyword: S3, Struct
*/
struct S3 {
/**
- nonmutatingvariant: fooing
*/
mutating func foo() {}
/**
- mutatingvariant: foo
*/
func fooing() -> S3 {}
}
func foo1() {
#^TYPE1^#
// TYPE1: Begin completions
// TYPE1-DAG: Decl[Class]/CurrModule/keyword[C1, Class]/recommended[C2]: C1[#C1#]
// TYPE1-DAG: Decl[Struct]/CurrModule/keyword[S1, Struct]/recommendedover[S2]: S1[#S1#]
// TYPE1-DAG: Decl[Enum]/CurrModule/keyword[E2, Enum]/recommendedover[E1]: E2[#E2#]
// TYPE1-DAG: Decl[Struct]/CurrModule/keyword[S2, Struct]/recommended[S1]: S2[#S2#]
// TYPE1-DAG: Decl[Class]/CurrModule/keyword[C2, Class]/recommendedover[C1]: C2[#C2#]
// TYPE1-DAG: Decl[Enum]/CurrModule/keyword[E1, Enum]/recommended[E2]: E1[#E1#]
// TYPE1-DAG: Decl[Struct]/CurrModule/keyword[S3, Struct]: S3[#S3#]
}
func foo2() {
let c = C1()
c.#^MEMBER1^#
// MEMBER1: Begin completions
// MEMBER1-NEXT: Decl[InstanceVar]/CurrNominal/keyword[v1, Int]/recommended[v2]: v1[#Int#]
// MEMBER1-NEXT: Decl[InstanceVar]/CurrNominal/keyword[v2, Int]/recommendedover[v1]: v2[#Int#]
// MEMBER1-NEXT: Decl[InstanceMethod]/CurrNominal/keyword[f1, func]/recommended[f2]: f1()[#Void#]
// MEMBER1-NEXT: Decl[InstanceMethod]/CurrNominal/keyword[f2, func]/recommendedover[f1]: f2()[#Void#]
}
func foo3() {
let s = S3()
s.#^MEMBER2^#
// MEMBER2: Begin completions
// MEMBER2-NEXT: Decl[InstanceMethod]/CurrNominal/nonmutatingvariant[fooing]: foo()[#Void#]
// MEMBER2-NEXT: Decl[InstanceMethod]/CurrNominal/mutatingvariant[foo]: fooing()[#S3#]
}