Skip to content

Commit bd2f100

Browse files
committed
[SourceKit] Add keyword tags to a couple of places I missed in TypeRepr printing
1 parent d08bf68 commit bd2f100

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

lib/AST/TypeRepr.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,10 @@ void FunctionTypeRepr::printImpl(ASTPrinter &Printer,
339339
const PrintOptions &Opts) const {
340340
Printer.printStructurePre(PrintStructureKind::FunctionType);
341341
printTypeRepr(ArgsTy, Printer, Opts);
342-
if (throws())
343-
Printer << " throws"; // FIXME
342+
if (throws()) {
343+
Printer << " ";
344+
Printer.printKeyword("throws");
345+
}
344346
Printer << " -> ";
345347
Printer.printStructurePre(PrintStructureKind::FunctionReturnType);
346348
printTypeRepr(RetTy, Printer, Opts);
@@ -450,7 +452,8 @@ void ProtocolTypeRepr::printImpl(ASTPrinter &Printer,
450452

451453
void InOutTypeRepr::printImpl(ASTPrinter &Printer,
452454
const PrintOptions &Opts) const {
453-
Printer << "inout ";
455+
Printer.printKeyword("inout");
456+
Printer << " ";
454457
printTypeRepr(Base, Printer, Opts);
455458
}
456459

test/SourceKit/DocSupport/doc_source_file.swift.response

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2449,7 +2449,7 @@
24492449
key.usr: "s:F8__main__5test4FRSiT_",
24502450
key.offset: 1676,
24512451
key.length: 26,
2452-
key.fully_annotated_decl: "<decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>test4</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type>inout <ref.struct usr=\"s:Si\">Int</ref.struct></decl.var.parameter.type></decl.var.parameter>)</decl.function.free>",
2452+
key.fully_annotated_decl: "<decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>test4</decl.name>(<decl.var.parameter><decl.var.parameter.name>a</decl.var.parameter.name>: <decl.var.parameter.type><syntaxtype.keyword>inout</syntaxtype.keyword> <ref.struct usr=\"s:Si\">Int</ref.struct></decl.var.parameter.type></decl.var.parameter>)</decl.function.free>",
24532453
key.entities: [
24542454
{
24552455
key.kind: source.lang.swift.decl.var.local,

test/SourceKit/SourceDocInfo/cursor_info.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func genReq<U, V: P1 where V.T == U>(u: U, v: V) {}
128128

129129
let tupleVar1: (((Int, Int), y: Int), z: Int)
130130
let tupleVar2: (f: ()->(), g: (x: Int)->Int)
131-
let tupleVar3: (f: (x: (Int, Int))->(), Int)
131+
let tupleVar3: (f: (inout x: (Int, Int)) throws ->(), Int)
132132

133133
// RUN: rm -rf %t.tmp
134134
// RUN: mkdir %t.tmp
@@ -485,4 +485,4 @@ let tupleVar3: (f: (x: (Int, Int))->(), Int)
485485

486486
// RUN: %sourcekitd-test -req=cursor -pos=131:5 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %mcp_opt %s | FileCheck %s -check-prefix=CHECK59
487487
// CHECK59: source.lang.swift.decl.var.global (131:5-131:14)
488-
// CHECK59: <decl.var.global><syntaxtype.keyword>let</syntaxtype.keyword> <decl.name>tupleVar3</decl.name>: <decl.var.type>(<tuple.element><tuple.element.argument_label>f</tuple.element.argument_label>: <tuple.element.type>(<decl.var.parameter><decl.var.parameter.argument_label>x</decl.var.parameter.argument_label>: <decl.var.parameter.type>(<tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>, <tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>)</decl.var.parameter.type></decl.var.parameter>) -&gt; <decl.function.returntype>()</decl.function.returntype></tuple.element.type></tuple.element>, <tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>)</decl.var.type></decl.var.global>
488+
// CHECK59: <decl.var.global><syntaxtype.keyword>let</syntaxtype.keyword> <decl.name>tupleVar3</decl.name>: <decl.var.type>(<tuple.element><tuple.element.argument_label>f</tuple.element.argument_label>: <tuple.element.type>(<decl.var.parameter><decl.var.parameter.argument_label>x</decl.var.parameter.argument_label>: <decl.var.parameter.type><syntaxtype.keyword>inout</syntaxtype.keyword> (<tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>, <tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>)</decl.var.parameter.type></decl.var.parameter>) <syntaxtype.keyword>throws</syntaxtype.keyword> -&gt; <decl.function.returntype>()</decl.function.returntype></tuple.element.type></tuple.element>, <tuple.element><tuple.element.type><ref.struct usr="s:Si">Int</ref.struct></tuple.element.type></tuple.element>)</decl.var.type></decl.var.global>

0 commit comments

Comments
 (0)