forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomplete_popular_api.swift
106 lines (90 loc) · 3.2 KB
/
complete_popular_api.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
func test(x: Foo) {
x.
}
func bad() {}
func good() {}
func okay() {}
struct Foo {
func bad() { }
func good() { }
func okay() {}
var sad: Int
var xhappy: Int
var zmeh: Int
}
// RUN: %sourcekitd-test -req=complete.open -pos=2:1 -req-opts=hidelowpriority=0 %s -- %s > %t.nopopular.top
// RUN: %sourcekitd-test -req=complete.open -pos=3:5 %s -- %s > %t.nopopular.foo
// RUN: FileCheck %s -check-prefix=NOPOP_TOP < %t.nopopular.top
// RUN: FileCheck %s -check-prefix=NOPOP_FOO < %t.nopopular.foo
// RUN: %sourcekitd-test -req=complete.setpopularapi -req-opts=popular=%s.popular,unpopular=%s.unpopular \
// RUN: == -req=complete.open -req-opts=hidelowpriority=0 -pos=2:1 %s -- %s > %t.popular.top
// RUN: %sourcekitd-test -req=complete.setpopularapi -req-opts=popular=%s.popular,unpopular=%s.unpopular \
// RUN: == -req=complete.open -pos=3:5 %s -- %s > %t.popular.foo
// RUN: FileCheck %s -check-prefix=POP_TOP < %t.popular.top
// RUN: FileCheck %s -check-prefix=POP_FOO < %t.popular.foo
// NOPOP_TOP: key.name: "bad()
// NOPOP_TOP: key.name: "good()
// NOPOP_TOP: key.name: "okay()
// POP_TOP: key.name: "good()
// POP_TOP: key.name: "okay()
// POP_TOP: key.name: "bad()
// NOPOP_FOO: key.name: "bad()
// NOPOP_FOO: key.name: "good()
// NOPOP_FOO: key.name: "okay()
// NOPOP_FOO: key.name: "sad
// NOPOP_FOO: key.name: "xhappy
// NOPOP_FOO: key.name: "zmeh
// POP_FOO: key.name: "good()
// POP_FOO: key.name: "xhappy
// POP_FOO: key.name: "okay()
// POP_FOO: key.name: "zmeh
// POP_FOO: key.name: "sad
// POP_FOO: key.name: "bad()
// RUN: %complete-test -hide-none -fuzz -group=none -popular="%s.popular" -unpopular="%s.unpopular" -tok=POPULAR_STMT_0 %s -- -I %S/Inputs > %t.popular.stmt.0
// RUN: FileCheck %s -check-prefix=POPULAR_STMT_0 < %t.popular.stmt.0
import PopularAPI
var globalColor = 0
struct OuterNominal {
var fromOuterNominalColor: Int = 0
class Super {
var fromSuperColor: Int = 0
}
class Derived : Super {
var fromDerivedColor: Int = 0
func test(argColor: Int) {
let localColor = 1
#^POPULAR_STMT_0,,col^#
// POPULAR_STMT_0-LABEL: Results for filterText: [
// POPULAR_STMT_0: argColor
// POPULAR_STMT_0: localColor
// POPULAR_STMT_0: fromDerivedColor
// POPULAR_STMT_0: fromSuperColor
// POPULAR_STMT_0: fromOuterNominalColor
// POPULAR_STMT_0: good()
// POPULAR_STMT_0: globalColor
// POPULAR_STMT_0: okay()
// POPULAR_STMT_0: DDModuleColor
// POPULAR_STMT_0: CCModuleColor
// POPULAR_STMT_0: EEModuleColor
// bad() ends up here because it's an unpopular global but that's still better
// than a random "other module" result like ModuleColaborate.
// POPULAR_STMT_0: bad()
// POPULAR_STMT_0: ModuleColaborate
// POPULAR_STMT_0: ]
// POPULAR_STMT_0-LABEL: Results for filterText: col [
// POPULAR_STMT_0: argColor
// POPULAR_STMT_0: localColor
// POPULAR_STMT_0: fromDerivedColor
// POPULAR_STMT_0: fromSuperColor
// POPULAR_STMT_0: fromOuterNominalColor
// POPULAR_STMT_0: globalColor
// POPULAR_STMT_0: DDModuleColor
// POPULAR_STMT_0: CCModuleColor
// POPULAR_STMT_0: EEModuleColor
// POPULAR_STMT_0: ModuleColaborate
// POPULAR_STMT_0: BBModuleColor
// POPULAR_STMT_0: AAModuleColor
// POPULAR_STMT_0: ]
}
}
}