Skip to content

Commit 78d6822

Browse files
authored
Merge pull request #66458 from ahoppen/ahoppen/consume-borrow-highlighting
[SourceKit] Highlight `consuming` and `borrowing` as keywords
2 parents 138def7 + 2ff585d commit 78d6822

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

lib/Parse/ParseDecl.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4624,6 +4624,7 @@ Parser::parseTypeAttributeListPresent(ParamDecl::Specifier &Specifier,
46244624
}
46254625

46264626
if (Tok.isContextualKeyword("_const")) {
4627+
Tok.setKind(tok::contextual_keyword);
46274628
ConstLoc = consumeToken();
46284629
continue;
46294630
}
@@ -4646,6 +4647,7 @@ Parser::parseTypeAttributeListPresent(ParamDecl::Specifier &Specifier,
46464647
}
46474648
}
46484649
}
4650+
Tok.setKind(tok::contextual_keyword);
46494651
SpecifierLoc = consumeToken();
46504652
}
46514653

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
func foo(a: consuming Int, b: borrowing Int, c: _const Int) {}
2+
3+
// RUN: %sourcekitd-test -req=syntax-map %s | %FileCheck %s
4+
5+
// CHECK: key.syntaxmap: [
6+
// CHECK-NEXT: {
7+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
8+
// CHECK-NEXT: key.offset: 0,
9+
// CHECK-NEXT: key.length: 4
10+
// CHECK-NEXT: },
11+
// CHECK-NEXT: {
12+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
13+
// CHECK-NEXT: key.offset: 5,
14+
// CHECK-NEXT: key.length: 3
15+
// CHECK-NEXT: },
16+
// CHECK-NEXT: {
17+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
18+
// CHECK-NEXT: key.offset: 9,
19+
// CHECK-NEXT: key.length: 1
20+
// CHECK-NEXT: },
21+
// CHECK-NEXT: {
22+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
23+
// CHECK-NEXT: key.offset: 12,
24+
// CHECK-NEXT: key.length: 9
25+
// CHECK-NEXT: },
26+
// CHECK-NEXT: {
27+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
28+
// CHECK-NEXT: key.offset: 22,
29+
// CHECK-NEXT: key.length: 3
30+
// CHECK-NEXT: },
31+
// CHECK-NEXT: {
32+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
33+
// CHECK-NEXT: key.offset: 27,
34+
// CHECK-NEXT: key.length: 1
35+
// CHECK-NEXT: },
36+
// CHECK-NEXT: {
37+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
38+
// CHECK-NEXT: key.offset: 30,
39+
// CHECK-NEXT: key.length: 9
40+
// CHECK-NEXT: },
41+
// CHECK-NEXT: {
42+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
43+
// CHECK-NEXT: key.offset: 40,
44+
// CHECK-NEXT: key.length: 3
45+
// CHECK-NEXT: },
46+
// CHECK-NEXT: {
47+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
48+
// CHECK-NEXT: key.offset: 45,
49+
// CHECK-NEXT: key.length: 1
50+
// CHECK-NEXT: },
51+
// CHECK-NEXT: {
52+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
53+
// CHECK-NEXT: key.offset: 48,
54+
// CHECK-NEXT: key.length: 6
55+
// CHECK-NEXT: },
56+
// CHECK-NEXT: {
57+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
58+
// CHECK-NEXT: key.offset: 55,
59+
// CHECK-NEXT: key.length: 3
60+
// CHECK-NEXT: },

0 commit comments

Comments
 (0)