File: complete_at_top_level_library.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (144 lines) | stat: -rw-r--r-- 10,666 bytes parent folder | download
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// RUN: %empty-directory(%t.ccp)

// Repeat twice to ensure completion caches works correctly. i.e. no sticky flairs
// RUN: %target-swift-ide-test -code-completion -source-filename %s -completion-cache-path=%t.ccp -code-completion-token=TOPLEVEL -parse-as-library | %FileCheck %s -check-prefix=LIBRARY
// RUN: %target-swift-ide-test -code-completion -source-filename %s -completion-cache-path=%t.ccp -code-completion-token=TOPLEVEL | %FileCheck %s -check-prefix=SCRIPT
// RUN: %target-swift-ide-test -code-completion -source-filename %s -completion-cache-path=%t.ccp -code-completion-token=TOPLEVEL -parse-as-library | %FileCheck %s -check-prefix=LIBRARY
// RUN: %target-swift-ide-test -code-completion -source-filename %s -completion-cache-path=%t.ccp -code-completion-token=TOPLEVEL | %FileCheck %s -check-prefix=SCRIPT

struct MyStruct {}
protocol MyProtocol {}

#^TOPLEVEL^#

// LIBRARY-DAG: Keyword[associatedtype]/None:       associatedtype; name=associatedtype
// LIBRARY-DAG: Keyword[class]/None/Flair[CommonKeyword]: class; name=class
// LIBRARY-DAG: Keyword[deinit]/None:               deinit; name=deinit
// LIBRARY-DAG: Keyword[enum]/None/Flair[CommonKeyword]: enum; name=enum
// LIBRARY-DAG: Keyword[extension]/None/Flair[CommonKeyword]: extension; name=extension
// LIBRARY-DAG: Keyword[func]/None:                 func; name=func
// LIBRARY-DAG: Keyword[import]/None:               import; name=import
// LIBRARY-DAG: Keyword[init]/None:                 init; name=init
// LIBRARY-DAG: Keyword[operator]/None:             operator; name=operator
// LIBRARY-DAG: Keyword[precedencegroup]/None:      precedencegroup; name=precedencegroup
// LIBRARY-DAG: Keyword[protocol]/None/Flair[CommonKeyword]: protocol; name=protocol
// LIBRARY-DAG: Keyword[struct]/None/Flair[CommonKeyword]: struct; name=struct
// LIBRARY-DAG: Keyword[subscript]/None:            subscript; name=subscript
// LIBRARY-DAG: Keyword[typealias]/None:            typealias; name=typealias
// LIBRARY-DAG: Keyword[fileprivate]/None:          fileprivate; name=fileprivate
// LIBRARY-DAG: Keyword[internal]/None:             internal; name=internal
// LIBRARY-DAG: Keyword[private]/None:              private; name=private
// LIBRARY-DAG: Keyword[public]/None:               public; name=public
// LIBRARY-DAG: Keyword[static]/None:               static; name=static
// LIBRARY-DAG: Keyword/None:                       final; name=final
// LIBRARY-DAG: Keyword/None:                       required; name=required
// LIBRARY-DAG: Keyword/None:                       optional; name=optional
// LIBRARY-DAG: Keyword/None:                       lazy; name=lazy
// LIBRARY-DAG: Keyword/None:                       dynamic; name=dynamic
// LIBRARY-DAG: Keyword/None:                       infix; name=infix
// LIBRARY-DAG: Keyword/None:                       prefix; name=prefix
// LIBRARY-DAG: Keyword/None:                       postfix; name=postfix
// LIBRARY-DAG: Keyword/None:                       mutating; name=mutating
// LIBRARY-DAG: Keyword/None:                       nonmutating; name=nonmutating
// LIBRARY-DAG: Keyword/None:                       convenience; name=convenience
// LIBRARY-DAG: Keyword/None:                       override; name=override
// LIBRARY-DAG: Keyword/None:                       open; name=open
// LIBRARY-DAG: Keyword/None:                       weak; name=weak
// LIBRARY-DAG: Keyword/None:                       unowned; name=unowned
// LIBRARY-DAG: Keyword/None:                       indirect; name=indirect
// LIBRARY-DAG: Keyword/None:                       nonisolated; name=nonisolated
// LIBRARY-DAG: Keyword[defer]/None/Flair[ExprAtFileScope]: defer; name=defer
// LIBRARY-DAG: Keyword[if]/None/Flair[ExprAtFileScope]: if; name=if
// LIBRARY-DAG: Keyword[guard]/None/Flair[ExprAtFileScope]: guard; name=guard
// LIBRARY-DAG: Keyword[do]/None/Flair[ExprAtFileScope]: do; name=do
// LIBRARY-DAG: Keyword[repeat]/None/Flair[ExprAtFileScope]: repeat; name=repeat
// LIBRARY-DAG: Keyword[else]/None/Flair[ExprAtFileScope]: else; name=else
// LIBRARY-DAG: Keyword[for]/None/Flair[ExprAtFileScope]: for; name=for
// LIBRARY-DAG: Keyword[while]/None/Flair[ExprAtFileScope]: while; name=while
// LIBRARY-DAG: Keyword[break]/None/Flair[ExprAtFileScope]: break; name=break
// LIBRARY-DAG: Keyword[continue]/None/Flair[ExprAtFileScope]: continue; name=continue
// LIBRARY-DAG: Keyword[fallthrough]/None/Flair[ExprAtFileScope]: fallthrough; name=fallthrough
// LIBRARY-DAG: Keyword[switch]/None/Flair[ExprAtFileScope]: switch; name=switch
// LIBRARY-DAG: Keyword[let]/None:                  let; name=let
// LIBRARY-DAG: Keyword[var]/None:                  var; name=var
// LIBRARY-DAG: Keyword[try]/None/Flair[ExprAtFileScope]: try; name=try
// LIBRARY-DAG: Keyword[try]/None/Flair[ExprAtFileScope]: try!; name=try!
// LIBRARY-DAG: Keyword[try]/None/Flair[ExprAtFileScope]: try?; name=try?
// LIBRARY-DAG: Keyword/None/Flair[ExprAtFileScope]: await; name=await
// LIBRARY-DAG: Literal[Integer]/None/Flair[ExprAtFileScope]: 0[#Int#]; name=0
// LIBRARY-DAG: Literal[Boolean]/None/Flair[ExprAtFileScope]: true[#Bool#]; name=true
// LIBRARY-DAG: Literal[Boolean]/None/Flair[ExprAtFileScope]: false[#Bool#]; name=false
// LIBRARY-DAG: Literal[Nil]/None/Flair[ExprAtFileScope]: nil; name=nil
// LIBRARY-DAG: Literal[String]/None/Flair[ExprAtFileScope]: "{#(abc)#}"[#String#]; name=""
// LIBRARY-DAG: Literal[Array]/None/Flair[ExprAtFileScope]: [{#(values)#}][#Array#]; name=[]
// LIBRARY-DAG: Literal[Dictionary]/None/Flair[ExprAtFileScope]: [{#(key)#}: {#(value)#}][#Dictionary#]; name=[: ]
// LIBRARY-DAG: Literal[Tuple]/None/Flair[ExprAtFileScope]: ({#(values)#}); name=()
// LIBRARY-DAG: Decl[Struct]/CurrModule/Flair[ExprAtFileScope]: MyStruct[#MyStruct#]; name=MyStruct
// LIBRARY-DAG: Decl[Protocol]/CurrModule/Flair[RareType,ExprAtFileScope]: MyProtocol[#MyProtocol#]; name=MyProtocol
// LIBRARY-DAG: Decl[Struct]/OtherModule[Swift]/Flair[ExprAtFileScope]/IsSystem: Int[#Int#]; name=Int

// SCRIPT-DAG: Keyword[associatedtype]/None:       associatedtype; name=associatedtype
// SCRIPT-DAG: Keyword[class]/None:                class; name=class
// SCRIPT-DAG: Keyword[deinit]/None:               deinit; name=deinit
// SCRIPT-DAG: Keyword[enum]/None:                 enum; name=enum
// SCRIPT-DAG: Keyword[extension]/None:            extension; name=extension
// SCRIPT-DAG: Keyword[func]/None:                 func; name=func
// SCRIPT-DAG: Keyword[import]/None:               import; name=import
// SCRIPT-DAG: Keyword[init]/None:                 init; name=init
// SCRIPT-DAG: Keyword[operator]/None:             operator; name=operator
// SCRIPT-DAG: Keyword[precedencegroup]/None:      precedencegroup; name=precedencegroup
// SCRIPT-DAG: Keyword[protocol]/None:             protocol; name=protocol
// SCRIPT-DAG: Keyword[struct]/None:                struct; name=struct
// SCRIPT-DAG: Keyword[subscript]/None:            subscript; name=subscript
// SCRIPT-DAG: Keyword[typealias]/None:            typealias; name=typealias
// SCRIPT-DAG: Keyword[fileprivate]/None:          fileprivate; name=fileprivate
// SCRIPT-DAG: Keyword[internal]/None:             internal; name=internal
// SCRIPT-DAG: Keyword[private]/None:              private; name=private
// SCRIPT-DAG: Keyword[public]/None:               public; name=public
// SCRIPT-DAG: Keyword[static]/None:               static; name=static
// SCRIPT-DAG: Keyword/None:                       final; name=final
// SCRIPT-DAG: Keyword/None:                       required; name=required
// SCRIPT-DAG: Keyword/None:                       optional; name=optional
// SCRIPT-DAG: Keyword/None:                       lazy; name=lazy
// SCRIPT-DAG: Keyword/None:                       dynamic; name=dynamic
// SCRIPT-DAG: Keyword/None:                       infix; name=infix
// SCRIPT-DAG: Keyword/None:                       prefix; name=prefix
// SCRIPT-DAG: Keyword/None:                       postfix; name=postfix
// SCRIPT-DAG: Keyword/None:                       mutating; name=mutating
// SCRIPT-DAG: Keyword/None:                       nonmutating; name=nonmutating
// SCRIPT-DAG: Keyword/None:                       convenience; name=convenience
// SCRIPT-DAG: Keyword/None:                       override; name=override
// SCRIPT-DAG: Keyword/None:                       open; name=open
// SCRIPT-DAG: Keyword/None:                       weak; name=weak
// SCRIPT-DAG: Keyword/None:                       unowned; name=unowned
// SCRIPT-DAG: Keyword/None:                       indirect; name=indirect
// SCRIPT-DAG: Keyword/None:                       nonisolated; name=nonisolated
// SCRIPT-DAG: Keyword[defer]/None:                defer; name=defer
// SCRIPT-DAG: Keyword[if]/None:                   if; name=if
// SCRIPT-DAG: Keyword[guard]/None:                guard; name=guard
// SCRIPT-DAG: Keyword[do]/None:                   do; name=do
// SCRIPT-DAG: Keyword[repeat]/None:               repeat; name=repeat
// SCRIPT-DAG: Keyword[else]/None:                 else; name=else
// SCRIPT-DAG: Keyword[for]/None:                  for; name=for
// SCRIPT-DAG: Keyword[while]/None:                while; name=while
// SCRIPT-DAG: Keyword[break]/None:                break; name=break
// SCRIPT-DAG: Keyword[continue]/None:             continue; name=continue
// SCRIPT-DAG: Keyword[fallthrough]/None:          fallthrough; name=fallthrough
// SCRIPT-DAG: Keyword[switch]/None:               switch; name=switch
// SCRIPT-DAG: Keyword[let]/None:                  let; name=let
// SCRIPT-DAG: Keyword[var]/None:                  var; name=var
// SCRIPT-DAG: Keyword[try]/None:                  try; name=try
// SCRIPT-DAG: Keyword[try]/None:                  try!; name=try!
// SCRIPT-DAG: Keyword[try]/None:                  try?; name=try?
// SCRIPT-DAG: Keyword/None:                       await; name=await
// SCRIPT-DAG: Literal[Integer]/None: 0[#Int#]; name=0
// SCRIPT-DAG: Literal[Boolean]/None: true[#Bool#]; name=true
// SCRIPT-DAG: Literal[Boolean]/None: false[#Bool#]; name=false
// SCRIPT-DAG: Literal[Nil]/None: nil; name=nil
// SCRIPT-DAG: Literal[String]/None: "{#(abc)#}"[#String#]; name=""
// SCRIPT-DAG: Literal[Array]/None: [{#(values)#}][#Array#]; name=[]
// SCRIPT-DAG: Literal[Dictionary]/None: [{#(key)#}: {#(value)#}][#Dictionary#]; name=[: ]
// SCRIPT-DAG: Literal[Tuple]/None: ({#(values)#}); name=()
// SCRIPT-DAG: Decl[Struct]/CurrModule: MyStruct[#MyStruct#]; name=MyStruct
// SCRIPT-DAG: Decl[Protocol]/CurrModule/Flair[RareType]: MyProtocol[#MyProtocol#]; name=MyProtocol
// SCRIPT-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: Int[#Int#]; name=Int