Skip to content

Commit bc71cf7

Browse files
committed
Merge remote-tracking branch 'origin/main' into rebranch
2 parents 0adf20a + 9180e01 commit bc71cf7

19 files changed

+268
-376
lines changed

lib/IDE/SyntaxModel.cpp

+18-10
Original file line numberDiff line numberDiff line change
@@ -555,23 +555,20 @@ std::pair<bool, Expr *> ModelASTWalker::walkToExprPre(Expr *E) {
555555
if (isa<DefaultArgumentExpr>(Elem))
556556
return;
557557

558-
CharSourceRange NR;
559558
auto NL = Arg.getLabelLoc();
560559
auto Name = Arg.getLabel();
561-
if (NL.isValid() && !Name.empty())
562-
NR = CharSourceRange(NL, Name.getLength());
563560

564561
SyntaxStructureNode SN;
565562
SN.Kind = SyntaxStructureKind::Argument;
566-
SN.NameRange = NR;
567563
SN.BodyRange = charSourceRangeFromSourceRange(SM, Elem->getSourceRange());
568-
if (NR.isValid()) {
569-
SN.Range = charSourceRangeFromSourceRange(SM, SourceRange(NR.getStart(),
570-
Elem->getEndLoc()));
571-
passTokenNodesUntil(NR.getStart(), ExcludeNodeAtLocation);
572-
}
573-
else
564+
if (NL.isValid() && !Name.empty()) {
565+
SN.NameRange = CharSourceRange(NL, Name.getLength());
566+
SN.Range = charSourceRangeFromSourceRange(
567+
SM, SourceRange(NL, Elem->getEndLoc()));
568+
passTokenNodesUntil(NL, ExcludeNodeAtLocation);
569+
} else {
574570
SN.Range = SN.BodyRange;
571+
}
575572

576573
pushStructureNode(SN, Elem);
577574
};
@@ -605,6 +602,17 @@ std::pair<bool, Expr *> ModelASTWalker::walkToExprPre(Expr *E) {
605602
SM, CE->getArgs()->getSourceRange());
606603
pushStructureNode(SN, CE);
607604

605+
} else if (auto *SE = dyn_cast<SubscriptExpr>(E)) {
606+
SyntaxStructureNode SN;
607+
SN.Kind = SyntaxStructureKind::CallExpression;
608+
SN.Range = charSourceRangeFromSourceRange(SM, E->getSourceRange());
609+
SN.NameRange =
610+
charSourceRangeFromSourceRange(SM, SE->getBase()->getSourceRange());
611+
if (SE->getArgs()->getSourceRange().isValid())
612+
SN.BodyRange = innerCharSourceRangeFromSourceRange(
613+
SM, SE->getArgs()->getSourceRange());
614+
pushStructureNode(SN, SE);
615+
608616
} else if (auto *ObjectE = dyn_cast<ObjectLiteralExpr>(E)) {
609617
SyntaxStructureNode SN;
610618
SN.Kind = SyntaxStructureKind::ObjectLiteralExpression;

test/SourceKit/DocumentStructure/access_parse.swift.response

-4
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,6 @@
543543
key.kind: source.lang.swift.decl.enumcase,
544544
key.offset: 911,
545545
key.length: 9,
546-
key.nameoffset: 0,
547-
key.namelength: 0,
548546
key.substructure: [
549547
{
550548
key.kind: source.lang.swift.decl.enumelement,
@@ -561,8 +559,6 @@
561559
key.kind: source.lang.swift.decl.enumcase,
562560
key.offset: 923,
563561
key.length: 9,
564-
key.nameoffset: 0,
565-
key.namelength: 0,
566562
key.substructure: [
567563
{
568564
key.kind: source.lang.swift.decl.enumelement,

test/SourceKit/DocumentStructure/mark_edit.swift.response

+2-6
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
{
77
key.kind: source.lang.swift.syntaxtype.comment.mark,
88
key.offset: 5,
9-
key.length: 11,
10-
key.nameoffset: 0,
11-
key.namelength: 0
9+
key.length: 11
1210
}
1311
]
1412
}
@@ -18,9 +16,7 @@
1816
{
1917
key.kind: source.lang.swift.syntaxtype.comment.mark,
2018
key.offset: 6,
21-
key.length: 11,
22-
key.nameoffset: 0,
23-
key.namelength: 0
19+
key.length: 11
2420
}
2521
]
2622
}

0 commit comments

Comments
 (0)