Skip to content

Commit b82a0f5

Browse files
authored
Merge pull request #64052 from DougGregor/se-382-macro-decls
2 parents 1834469 + 56bf3df commit b82a0f5

12 files changed

+65
-200
lines changed

include/swift/IDE/CompletionLookup.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,9 +558,6 @@ class CompletionLookup final : public swift::VisibleDeclConsumer {
558558
void addTypeRelationFromProtocol(CodeCompletionResultBuilder &builder,
559559
CodeCompletionLiteralKind kind);
560560

561-
/// Add '#file', '#line', et at.
562-
void addPoundLiteralCompletions(bool needPound);
563-
564561
void addValueLiteralCompletions();
565562

566563
void addObjCPoundKeywordCompletions(bool needPound);

lib/IDE/AfterPoundExprCompletion.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ void AfterPoundExprCompletion::deliverResults(
5151
Result.IsImplicitSingleExpressionReturn,
5252
/*expectsNonVoid=*/true);
5353
Lookup.addPoundAvailable(ParentStmtKind);
54-
Lookup.addPoundLiteralCompletions(/*needPound=*/false);
5554
Lookup.addObjCPoundKeywordCompletions(/*needPound=*/false);
5655
Lookup.getMacroCompletions(/*needPound=*/false);
5756
}

lib/IDE/CompletionLookup.cpp

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2577,58 +2577,6 @@ void CompletionLookup::addTypeRelationFromProtocol(
25772577
}
25782578
}
25792579

2580-
void CompletionLookup::addPoundLiteralCompletions(bool needPound) {
2581-
CodeCompletionFlair flair;
2582-
if (isCodeCompletionAtTopLevelOfLibraryFile(CurrDeclContext))
2583-
flair |= CodeCompletionFlairBit::ExpressionAtNonScriptOrMainFileScope;
2584-
2585-
auto addFromProto = [&](MagicIdentifierLiteralExpr::Kind magicKind,
2586-
Optional<CodeCompletionLiteralKind> literalKind) {
2587-
CodeCompletionKeywordKind kwKind;
2588-
switch (magicKind) {
2589-
case MagicIdentifierLiteralExpr::FileIDSpelledAsFile:
2590-
kwKind = CodeCompletionKeywordKind::pound_file;
2591-
break;
2592-
case MagicIdentifierLiteralExpr::FilePathSpelledAsFile:
2593-
// Already handled by above case.
2594-
return;
2595-
#define MAGIC_IDENTIFIER_TOKEN(NAME, TOKEN) \
2596-
case MagicIdentifierLiteralExpr::NAME: \
2597-
kwKind = CodeCompletionKeywordKind::TOKEN; \
2598-
break;
2599-
#include "swift/AST/MagicIdentifierKinds.def"
2600-
}
2601-
2602-
StringRef name = MagicIdentifierLiteralExpr::getKindString(magicKind);
2603-
if (!needPound)
2604-
name = name.substr(1);
2605-
2606-
if (!literalKind) {
2607-
// Pointer type
2608-
addKeyword(name, "UnsafeRawPointer", kwKind, flair);
2609-
return;
2610-
}
2611-
2612-
CodeCompletionResultBuilder builder(Sink, CodeCompletionResultKind::Keyword,
2613-
SemanticContextKind::None);
2614-
builder.addFlair(flair);
2615-
builder.setLiteralKind(literalKind.value());
2616-
builder.setKeywordKind(kwKind);
2617-
builder.addBaseName(name);
2618-
addTypeRelationFromProtocol(builder, literalKind.value());
2619-
};
2620-
2621-
#define MAGIC_STRING_IDENTIFIER(NAME, STRING, SYNTAX_KIND) \
2622-
addFromProto(MagicIdentifierLiteralExpr::NAME, \
2623-
CodeCompletionLiteralKind::StringLiteral);
2624-
#define MAGIC_INT_IDENTIFIER(NAME, STRING, SYNTAX_KIND) \
2625-
addFromProto(MagicIdentifierLiteralExpr::NAME, \
2626-
CodeCompletionLiteralKind::IntegerLiteral);
2627-
#define MAGIC_POINTER_IDENTIFIER(NAME, STRING, SYNTAX_KIND) \
2628-
addFromProto(MagicIdentifierLiteralExpr::NAME, None);
2629-
#include "swift/AST/MagicIdentifierKinds.def"
2630-
}
2631-
26322580
void CompletionLookup::addValueLiteralCompletions() {
26332581
auto &context = CurrDeclContext->getASTContext();
26342582

@@ -2802,7 +2750,6 @@ void CompletionLookup::getValueCompletionsInDeclContext(SourceLoc Loc,
28022750

28032751
if (LiteralCompletions) {
28042752
addValueLiteralCompletions();
2805-
addPoundLiteralCompletions(/*needPound=*/true);
28062753
}
28072754

28082755
addObjCPoundKeywordCompletions(/*needPound=*/true);

stdlib/public/core/Macros.swift

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
#if compiler(>=5.8) && hasAttribute(freestanding)
1413
/// Specifies the module and type name for an externally-defined macro, which
1514
/// must conform to the appropriate set of `Macro` protocols.
1615
///
@@ -22,6 +21,42 @@
2221
/// Use of this macro in any other context is an error.
2322
@freestanding(expression)
2423
public macro externalMacro<T>(module: String, type: String) -> T =
25-
Builtin.ExternalMacro
24+
Builtin.ExternalMacro
2625

27-
#endif
26+
// File and path-related information
27+
28+
/// Produces a unique identifier for the given source file, comprised of
29+
/// the module and file name.
30+
@freestanding(expression)
31+
public macro fileID<T: ExpressibleByStringLiteral>() -> T =
32+
Builtin.FileIDMacro
33+
34+
/// Produces the complete path for the given source file.
35+
@freestanding(expression)
36+
public macro filePath<T: ExpressibleByStringLiteral>() -> T =
37+
Builtin.FilePathMacro
38+
39+
/// Produces either the result of `#filePath` or `#file`, depending
40+
/// on whether concise file paths (SE-0274) are enabled.
41+
@freestanding(expression)
42+
public macro file<T: ExpressibleByStringLiteral>() -> T =
43+
Builtin.FileMacro
44+
45+
/// Produces a string representation of the current function name.
46+
@freestanding(expression)
47+
public macro function<T: ExpressibleByStringLiteral>() -> T =
48+
Builtin.FunctionMacro
49+
50+
/// Produces the line number at which the macro is expanded.
51+
@freestanding(expression)
52+
public macro line<T: ExpressibleByIntegerLiteral>() -> T =
53+
Builtin.LineMacro
54+
55+
/// Produces the column number at which the macro is expanded.
56+
@freestanding(expression)
57+
public macro column<T: ExpressibleByIntegerLiteral>() -> T =
58+
Builtin.ColumnMacro
59+
60+
/// Produces the shared object handle for the macro expansion location.
61+
@freestanding(expression)
62+
public macro dsohandle() -> UnsafeRawPointer = Builtin.DSOHandleMacro

test/IDE/complete_annotation.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ func testGlobal() {
3939
// GLOBAL_EXPR-DAG: Literal[_Color]/None: <name>#colorLiteral</name>(<callarg><callarg.label>red</callarg.label>: <callarg.type><typeid.sys>Float</typeid.sys></callarg.type></callarg>, <callarg><callarg.label>green</callarg.label>: <callarg.type><typeid.sys>Float</typeid.sys></callarg.type></callarg>, <callarg><callarg.label>blue</callarg.label>: <callarg.type><typeid.sys>Float</typeid.sys></callarg.type></callarg>, <callarg><callarg.label>alpha</callarg.label>: <callarg.type><typeid.sys>Float</typeid.sys></callarg.type></callarg>); typename=;
4040
// GLOBAL_EXPR-DAG: Literal[_Image]/None: <name>#imageLiteral</name>(<callarg><callarg.label>resourceName</callarg.label>: <callarg.type><typeid.sys>String</typeid.sys></callarg.type></callarg>); typename=;
4141
// GLOBAL_EXPR-DAG: Literal[Tuple]/None: (<callarg><callarg.param>values</callarg.param></callarg>); typename=;
42-
// GLOBAL_EXPR-DAG: Keyword[#function]/None: <name>#function</name>; typename=<typeid.sys>String</typeid.sys>;
4342
// GLOBAL_EXPR-DAG: Decl[Module]/None/IsSystem: <name>Swift</name>; typename=Module;
4443
// GLOBAL_EXPR-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: <name>Int</name>; typename=<typeid.sys>Int</typeid.sys>;
4544
// GLOBAL_EXPR-DAG: Decl[FreeFunction]/OtherModule[Swift]/IsSystem: <name>print</name>(<callarg><callarg.label>_</callarg.label> <callarg.param>items</callarg.param>: <callarg.type><keyword>Any</keyword></callarg.type>...</callarg>, <callarg><callarg.label>to</callarg.label> <callarg.param>output</callarg.param>: &amp;<callarg.type><typeid.sys>TextOutputStream</typeid.sys></callarg.type></callarg>); typename=<typeid.sys>Void</typeid.sys>;

test/IDE/complete_at_top_level_library.swift

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,6 @@ protocol MyProtocol {}
7575
// LIBRARY-DAG: Literal[Array]/None/Flair[ExprAtFileScope]: [{#(values)#}][#Array#]; name=[]
7676
// LIBRARY-DAG: Literal[Dictionary]/None/Flair[ExprAtFileScope]: [{#(key)#}: {#(value)#}][#Dictionary#]; name=[: ]
7777
// LIBRARY-DAG: Literal[Tuple]/None/Flair[ExprAtFileScope]: ({#(values)#}); name=()
78-
// LIBRARY-DAG: Keyword[#fileID]/None/Flair[ExprAtFileScope]: #fileID[#String#]; name=#fileID
79-
// LIBRARY-DAG: Keyword[#file]/None/Flair[ExprAtFileScope]: #file[#String#]; name=#file
80-
// LIBRARY-DAG: Keyword[#filePath]/None/Flair[ExprAtFileScope]: #filePath[#String#]; name=#filePath
81-
// LIBRARY-DAG: Keyword[#function]/None/Flair[ExprAtFileScope]: #function[#String#]; name=#function
82-
// LIBRARY-DAG: Keyword[#line]/None/Flair[ExprAtFileScope]: #line[#Int#]; name=#line
83-
// LIBRARY-DAG: Keyword[#column]/None/Flair[ExprAtFileScope]: #column[#Int#]; name=#column
84-
// LIBRARY-DAG: Keyword[#dsohandle]/None/Flair[ExprAtFileScope]: #dsohandle[#UnsafeRawPointer#]; name=#dsohandle
8578
// LIBRARY-DAG: Decl[Struct]/CurrModule/Flair[ExprAtFileScope]: MyStruct[#MyStruct#]; name=MyStruct
8679
// LIBRARY-DAG: Decl[Protocol]/CurrModule/Flair[RareType,ExprAtFileScope]: MyProtocol[#MyProtocol#]; name=MyProtocol
8780
// LIBRARY-DAG: Decl[Struct]/OtherModule[Swift]/Flair[ExprAtFileScope]/IsSystem: Int[#Int#]; name=Int
@@ -151,13 +144,6 @@ protocol MyProtocol {}
151144
// SCRIPT-DAG: Literal[Array]/None: [{#(values)#}][#Array#]; name=[]
152145
// SCRIPT-DAG: Literal[Dictionary]/None: [{#(key)#}: {#(value)#}][#Dictionary#]; name=[: ]
153146
// SCRIPT-DAG: Literal[Tuple]/None: ({#(values)#}); name=()
154-
// SCRIPT-DAG: Keyword[#fileID]/None: #fileID[#String#]; name=#fileID
155-
// SCRIPT-DAG: Keyword[#file]/None: #file[#String#]; name=#file
156-
// SCRIPT-DAG: Keyword[#filePath]/None: #filePath[#String#]; name=#filePath
157-
// SCRIPT-DAG: Keyword[#function]/None: #function[#String#]; name=#function
158-
// SCRIPT-DAG: Keyword[#line]/None: #line[#Int#]; name=#line
159-
// SCRIPT-DAG: Keyword[#column]/None: #column[#Int#]; name=#column
160-
// SCRIPT-DAG: Keyword[#dsohandle]/None: #dsohandle[#UnsafeRawPointer#]; name=#dsohandle
161147
// SCRIPT-DAG: Decl[Struct]/CurrModule: MyStruct[#MyStruct#]; name=MyStruct
162148
// SCRIPT-DAG: Decl[Protocol]/CurrModule/Flair[RareType]: MyProtocol[#MyProtocol#]; name=MyProtocol
163149
// SCRIPT-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: Int[#Int#]; name=Int

test/IDE/complete_expr_postfix_begin.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ typealias FooTypealias = Int
4545
// COMMON-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: Int32[#Int32#]{{; name=.+$}}
4646
// COMMON-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: Int64[#Int64#]{{; name=.+$}}
4747
// COMMON-DAG: Decl[Struct]/OtherModule[Swift]/IsSystem: Bool[#Bool#]{{; name=.+$}}
48-
// COMMON-DAG: Keyword[#function]/None{{(/TypeRelation\[Convertible\])?}}: #function[#String#]{{; name=.+$}}
49-
// COMMON-DAG: Keyword[#file]/None{{(/TypeRelation\[Convertible\])?}}: #file[#String#]{{; name=.+$}}
50-
// COMMON-DAG: Keyword[#line]/None{{(/TypeRelation\[Convertible\])?}}: #line[#Int#]{{; name=.+$}}
51-
// COMMON-DAG: Keyword[#column]/None{{(/TypeRelation\[Convertible\])?}}: #column[#Int#]{{; name=.+$}}
5248
// COMMON: End completions
5349

5450
// NO_SELF-NOT: {{[[:<:]][Ss]elf[[:>:]]}}

test/IDE/complete_keywords.swift

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,6 @@
180180
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[try]/None: try{{; name=.+$}}
181181
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[try]/None: try!{{; name=.+$}}
182182
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[try]/None: try?{{; name=.+$}}
183-
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[#function]/None{{(/TypeRelation\[Convertible\])?}}: #function[#String#]{{; name=.+$}}
184-
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[#file]/None{{(/TypeRelation\[Convertible\])?}}: #file[#String#]{{; name=.+$}}
185-
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[#line]/None{{(/TypeRelation\[Convertible\])?}}: #line[#Int#]{{; name=.+$}}
186-
// KW_DECL_STMT_TOPLEVEL-DAG: Keyword[#column]/None{{(/TypeRelation\[Convertible\])?}}: #column[#Int#]{{; name=.+$}}
187183
//
188184
// Literals
189185
//
@@ -252,10 +248,6 @@
252248
// KW_DECL_STMT-DAG: Keyword[try]/None: try{{; name=.+$}}
253249
// KW_DECL_STMT-DAG: Keyword[try]/None: try!{{; name=.+$}}
254250
// KW_DECL_STMT-DAG: Keyword[try]/None: try?{{; name=.+$}}
255-
// KW_DECL_STMT-DAG: Keyword[#function]/None{{(/TypeRelation\[Convertible\])?}}: #function[#String#]{{; name=.+$}}
256-
// KW_DECL_STMT-DAG: Keyword[#file]/None{{(/TypeRelation\[Convertible\])?}}: #file[#String#]{{; name=.+$}}
257-
// KW_DECL_STMT-DAG: Keyword[#line]/None{{(/TypeRelation\[Convertible\])?}}: #line[#Int#]{{; name=.+$}}
258-
// KW_DECL_STMT-DAG: Keyword[#column]/None{{(/TypeRelation\[Convertible\])?}}: #column[#Int#]{{; name=.+$}}
259251
//
260252
// Literals
261253
//
@@ -272,10 +264,6 @@
272264
// KW_EXPR-DAG: Keyword[try]/None: try{{; name=.+$}}
273265
// KW_EXPR-DAG: Keyword[try]/None: try!{{; name=.+$}}
274266
// KW_EXPR-DAG: Keyword[try]/None: try?{{; name=.+$}}
275-
// KW_EXPR-DAG: Keyword[#function]/None{{(/TypeRelation\[Convertible\])?}}: #function[#String#]{{; name=.+$}}
276-
// KW_EXPR-DAG: Keyword[#file]/None{{(/TypeRelation\[Convertible\])?}}: #file[#String#]{{; name=.+$}}
277-
// KW_EXPR-DAG: Keyword[#line]/None{{(/TypeRelation\[Convertible\])?}}: #line[#Int#]{{; name=.+$}}
278-
// KW_EXPR-DAG: Keyword[#column]/None{{(/TypeRelation\[Convertible\])?}}: #column[#Int#]{{; name=.+$}}
279267
//
280268
// let and var
281269
//
@@ -484,20 +472,10 @@ func inSwitch(val: Int) {
484472
func testContextualType() {
485473
let _: UInt32 = #^CONTEXT_UINT32^#
486474
// CONTEXT_UINT32: Begin completions
487-
// CONTEXT_UINT32-DAG: Keyword[#function]/None: #function[#String#]; name=#function
488-
// CONTEXT_UINT32-DAG: Keyword[#file]/None: #file[#String#]; name=#file
489-
// CONTEXT_UINT32-DAG: Keyword[#line]/None/TypeRelation[Convertible]: #line[#UInt32#]; name=#line
490-
// CONTEXT_UINT32-DAG: Keyword[#column]/None/TypeRelation[Convertible]: #column[#UInt32#]; name=#column
491-
// CONTEXT_UINT32-DAG: Keyword[#dsohandle]/None: #dsohandle[#UnsafeRawPointer#]; name=#dsohandle
492475
// CONTEXT_UINT32: End completions
493476

494477
let _: StaticString = #^CONTEXT_STATICSTRING^#
495478
// CONTEXT_STATICSTRING: Begin completions
496-
// CONTEXT_STATICSTRING-DAG: Keyword[#function]/None/TypeRelation[Convertible]: #function[#StaticString#]; name=#function
497-
// CONTEXT_STATICSTRING-DAG: Keyword[#file]/None/TypeRelation[Convertible]: #file[#StaticString#]; name=#file
498-
// CONTEXT_STATICSTRING-DAG: Keyword[#line]/None: #line[#Int#]; name=#line
499-
// CONTEXT_STATICSTRING-DAG: Keyword[#column]/None: #column[#Int#]; name=#column
500-
// CONTEXT_STATICSTRING-DAG: Keyword[#dsohandle]/None: #dsohandle[#UnsafeRawPointer#]; name=#dsohandle
501479
// CONTEXT_STATICSTRING: End completions
502480
}
503481

test/IDE/complete_pound_expr.swift

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,36 @@ func test1() {
1616
}
1717

1818
// POUND_EXPR_INTCONTEXT: Begin completions, 8 items
19-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#function]/None: function[#String#]; name=function
20-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#file]/None: file[#String#]; name=file
21-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#fileID]/None: fileID[#String#]; name=fileID
22-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#filePath]/None: filePath[#String#]; name=filePath
23-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#line]/None/TypeRelation[Convertible]: line[#Int#]; name=line
24-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#column]/None/TypeRelation[Convertible]: column[#Int#]; name=column
25-
// POUND_EXPR_INTCONTEXT-DAG: Keyword[#dsohandle]/None: dsohandle[#UnsafeRawPointer#]; name=dsohandle
19+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: function[#ExpressibleByStringLiteral#]; name=function
20+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: fileID[#ExpressibleByStringLiteral#]; name=fileID
21+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: file[#ExpressibleByStringLiteral#]; name=file
22+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: dsohandle[#UnsafeRawPointer#]; name=dsohandle
23+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: column[#ExpressibleByIntegerLiteral#]; name=column
24+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: line[#ExpressibleByIntegerLiteral#]; name=line
2625
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: externalMacro({#module: String#}, {#type: String#})[#T#]; name=externalMacro(module:type:)
26+
// POUND_EXPR_INTCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: filePath[#ExpressibleByStringLiteral#]; name=filePath
2727
// POUND_EXPR_INTCONTEXT: End completions
2828

2929
// POUND_EXPR_STRINGCONTEXT: Begin completions, 9 items
30-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#function]/None/TypeRelation[Convertible]: function[#String#];
31-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#file]/None/TypeRelation[Convertible]: file[#String#];
32-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#fileID]/None/TypeRelation[Convertible]: fileID[#String#];
33-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#filePath]/None/TypeRelation[Convertible]: filePath[#String#];
34-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#line]/None: line[#Int#];
35-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#column]/None: column[#Int#];
36-
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword[#dsohandle]/None: dsohandle[#UnsafeRawPointer#];
30+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: function[#ExpressibleByStringLiteral#]; name=function
31+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: fileID[#ExpressibleByStringLiteral#]; name=fileID
32+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: file[#ExpressibleByStringLiteral#]; name=file
33+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: dsohandle[#UnsafeRawPointer#]; name=dsohandle
34+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: column[#ExpressibleByIntegerLiteral#]; name=column
35+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: line[#ExpressibleByIntegerLiteral#]; name=line
36+
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: filePath[#ExpressibleByStringLiteral#]; name=filePath
3737
// POUND_EXPR_STRINGCONTEXT-DAG: Keyword/None/TypeRelation[Convertible]: keyPath({#@objc property sequence#})[#String#];
3838
// POUND_EXPR_STRINGCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: externalMacro({#module: String#}, {#type: String#})[#T#]; name=externalMacro(module:type:)
3939
// POUND_EXPR_STRINGCONTEXT: End completions
4040

4141
// POUND_EXPR_SELECTORCONTEXT: Begin completions, 9 items
42-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#function]/None/TypeRelation[Convertible]: function[#Selector#];
43-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#file]/None/TypeRelation[Convertible]: file[#Selector#];
44-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#fileID]/None/TypeRelation[Convertible]: fileID[#Selector#];
45-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#filePath]/None/TypeRelation[Convertible]: filePath[#Selector#];
46-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#line]/None: line[#Int#];
47-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#column]/None: column[#Int#];
48-
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword[#dsohandle]/None: dsohandle[#UnsafeRawPointer#];
42+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: function[#ExpressibleByStringLiteral#]; name=function
43+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: fileID[#ExpressibleByStringLiteral#]; name=fileID
44+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: file[#ExpressibleByStringLiteral#]; name=file
45+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: dsohandle[#UnsafeRawPointer#]; name=dsohandle
46+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: column[#ExpressibleByIntegerLiteral#]; name=column
47+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: line[#ExpressibleByIntegerLiteral#]; name=line
48+
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: filePath[#ExpressibleByStringLiteral#]; name=filePath
4949
// POUND_EXPR_SELECTORCONTEXT-DAG: Keyword/None/TypeRelation[Convertible]: selector({#@objc method#})[#Selector#];
5050
// POUND_EXPR_SELECTORCONTEXT-DAG: Decl[Macro]/OtherModule[Swift]/IsSystem: externalMacro({#module: String#}, {#type: String#})[#T#]; name=externalMacro(module:type:)
5151
// POUND_EXPR_SELECTORCONTEXT: End completions

0 commit comments

Comments
 (0)