Skip to content

Commit edd8ceb

Browse files
committed
[SourceKit] Add accessibility in extension structure (SR-4823)
1 parent a24a439 commit edd8ceb

File tree

5 files changed

+13
-0
lines changed

5 files changed

+13
-0
lines changed

test/SourceKit/DocumentStructure/access_parse.swift.response

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,7 @@
538538
},
539539
{
540540
key.kind: source.lang.swift.decl.extension,
541+
key.accessibility: source.lang.swift.accessibility.internal,
541542
key.name: "DefAccess",
542543
key.offset: 1399,
543544
key.length: 43,
@@ -561,6 +562,7 @@
561562
},
562563
{
563564
key.kind: source.lang.swift.decl.extension,
565+
key.accessibility: source.lang.swift.accessibility.internal,
564566
key.name: "PubAccess",
565567
key.offset: 1443,
566568
key.length: 43,
@@ -584,6 +586,7 @@
584586
},
585587
{
586588
key.kind: source.lang.swift.decl.extension,
589+
key.accessibility: source.lang.swift.accessibility.internal,
587590
key.name: "IntAccess",
588591
key.offset: 1487,
589592
key.length: 43,
@@ -607,6 +610,7 @@
607610
},
608611
{
609612
key.kind: source.lang.swift.decl.extension,
613+
key.accessibility: source.lang.swift.accessibility.internal,
610614
key.name: "PrivAccess",
611615
key.offset: 1531,
612616
key.length: 44,
@@ -630,6 +634,7 @@
630634
},
631635
{
632636
key.kind: source.lang.swift.decl.extension,
637+
key.accessibility: source.lang.swift.accessibility.private,
633638
key.name: "PubAccess",
634639
key.offset: 1584,
635640
key.length: 47,

test/SourceKit/DocumentStructure/structure.swift.invalid.response

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
key.substructure: [
66
{
77
key.kind: source.lang.swift.decl.extension,
8+
key.accessibility: source.lang.swift.accessibility.internal,
89
key.name: "OuterCls",
910
key.offset: 0,
1011
key.length: 43,

test/SourceKit/DocumentStructure/structure.swift.response

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@
213213
},
214214
{
215215
key.kind: source.lang.swift.decl.extension,
216+
key.accessibility: source.lang.swift.accessibility.internal,
216217
key.name: "OuterCls",
217218
key.offset: 377,
218219
key.length: 45,
@@ -528,6 +529,7 @@
528529
},
529530
{
530531
key.kind: source.lang.swift.decl.extension,
532+
key.accessibility: source.lang.swift.accessibility.internal,
531533
key.name: "Foo",
532534
key.offset: 999,
533535
key.length: 58,

test/SourceKit/InterfaceGen/gen_clang_module.swift.response

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5600,6 +5600,7 @@ public class FooOverlayClassDerived : Foo.FooOverlayClassBase {
56005600
},
56015601
{
56025602
key.kind: source.lang.swift.decl.extension,
5603+
key.accessibility: source.lang.swift.accessibility.internal,
56035604
key.name: "FooClassBase",
56045605
key.offset: 5429,
56055606
key.length: 66,
@@ -5621,6 +5622,7 @@ public class FooOverlayClassDerived : Foo.FooOverlayClassBase {
56215622
},
56225623
{
56235624
key.kind: source.lang.swift.decl.extension,
5625+
key.accessibility: source.lang.swift.accessibility.internal,
56245626
key.name: "FooClassBase",
56255627
key.offset: 5542,
56265628
key.length: 107,
@@ -5651,6 +5653,7 @@ public class FooOverlayClassDerived : Foo.FooOverlayClassBase {
56515653
},
56525654
{
56535655
key.kind: source.lang.swift.decl.extension,
5656+
key.accessibility: source.lang.swift.accessibility.internal,
56545657
key.name: "FooClassBase",
56555658
key.offset: 5651,
56565659
key.length: 66,

tools/SourceKit/lib/SwiftLang/SwiftEditor.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,6 +1025,8 @@ class SwiftDocumentStructureWalker: public ide::SyntaxModelWalker {
10251025
if (Node.Kind != SyntaxStructureKind::Parameter) {
10261026
if (auto *VD = dyn_cast_or_null<ValueDecl>(Node.Dcl)) {
10271027
AccessLevel = getAccessibilityUID(inferAccessibility(VD));
1028+
} else if (auto *ED = dyn_cast_or_null<ExtensionDecl>(Node.Dcl)) {
1029+
AccessLevel = getAccessibilityUID(inferDefaultAccessibility(ED));
10281030
}
10291031
if (auto *ASD = dyn_cast_or_null<AbstractStorageDecl>(Node.Dcl)) {
10301032
Optional<Accessibility> SetAccess = inferSetterAccessibility(ASD);

0 commit comments

Comments
 (0)