Skip to content

Commit 7f105e4

Browse files
authored
Merge pull request #18059 from ahoppen/01a-rename-absolute-position
[libSyntax] Rename getAbsolutePosition-related methods for more clarity
2 parents 6f42fcc + 705f5b7 commit 7f105e4

File tree

8 files changed

+23
-23
lines changed

8 files changed

+23
-23
lines changed

include/swift/Syntax/Syntax.h

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,16 +200,15 @@ class Syntax {
200200
return Data->getAbsolutePosition();
201201
}
202202

203-
/// Get the absolute end position (exclusively) of this raw syntax: its offset,
204-
/// line, and column.
205-
AbsolutePosition getAbsoluteEndPosition() const {
206-
return Data->getAbsoluteEndPosition();
203+
/// Get the absolute end position (exclusively) where the trailing trivia of
204+
/// this node ends.
205+
AbsolutePosition getAbsoluteEndPositionAfterTrailingTrivia() const {
206+
return Data->getAbsoluteEndPositionAfterTrailingTrivia();
207207
}
208208

209-
/// Get the absolute position without skipping the leading trivia of this
210-
/// node.
211-
AbsolutePosition getAbsolutePositionWithLeadingTrivia() const {
212-
return Data->getAbsolutePositionWithLeadingTrivia();
209+
/// Get the absolute position at which the leading trivia of this node starts.
210+
AbsolutePosition getAbsolutePositionBeforeLeadingTrivia() const {
211+
return Data->getAbsolutePositionBeforeLeadingTrivia();
213212
}
214213

215214
// TODO: hasSameStructureAs ?

include/swift/Syntax/SyntaxData.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,11 +255,11 @@ class SyntaxData final
255255

256256
/// Calculate the absolute end position of this node, use cache of the immediate
257257
/// next node if populated.
258-
AbsolutePosition getAbsoluteEndPosition() const;
258+
AbsolutePosition getAbsoluteEndPositionAfterTrailingTrivia() const;
259259

260260
/// Get the absolute position without skipping the leading trivia of this
261261
/// node.
262-
AbsolutePosition getAbsolutePositionWithLeadingTrivia() const;
262+
AbsolutePosition getAbsolutePositionBeforeLeadingTrivia() const;
263263

264264
/// Returns true if the data node represents type syntax.
265265
bool isType() const;

lib/Parse/SyntaxParsingCache.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ using namespace swift::syntax;
1717

1818
bool SyntaxParsingCache::nodeCanBeReused(const Syntax &Node, size_t Position,
1919
SyntaxKind Kind) const {
20-
auto NodeStart = Node.getAbsolutePositionWithLeadingTrivia().getOffset();
20+
auto NodeStart = Node.getAbsolutePositionBeforeLeadingTrivia().getOffset();
2121
if (NodeStart != Position)
2222
return false;
2323
if (Node.getKind() != Kind)
@@ -60,7 +60,8 @@ llvm::Optional<Syntax> SyntaxParsingCache::lookUpFrom(const Syntax &Node,
6060
if (!Child.hasValue()) {
6161
continue;
6262
}
63-
auto ChildStart = Child->getAbsolutePositionWithLeadingTrivia().getOffset();
63+
auto ChildStart =
64+
Child->getAbsolutePositionBeforeLeadingTrivia().getOffset();
6465
auto ChildEnd = ChildStart + Child->getTextLength();
6566
if (ChildStart <= Position && Position < ChildEnd) {
6667
return lookUpFrom(Child.getValue(), Position, Kind);

lib/Syntax/RawSyntax.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ bool RawSyntax::accumulateLeadingTrivia(AbsolutePosition &Pos) const {
225225
}
226226
} else {
227227
for (auto &Child: getLayout()) {
228-
if (!Child)
228+
if (!Child || Child->isMissing())
229229
continue;
230230
if (Child->accumulateLeadingTrivia(Pos))
231231
return true;

lib/Syntax/SyntaxData.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ RC<SyntaxData> SyntaxData::getFirstToken() const {
9696
return getParent()->getChild(getIndexInParent());
9797
}
9898

99-
AbsolutePosition SyntaxData::getAbsolutePositionWithLeadingTrivia() const {
99+
AbsolutePosition SyntaxData::getAbsolutePositionBeforeLeadingTrivia() const {
100100
if (PositionCache.hasValue())
101101
return *PositionCache;
102102
if (auto P = getPreviousNode()) {
103-
auto Result = P->getAbsolutePositionWithLeadingTrivia();
103+
auto Result = P->getAbsolutePositionBeforeLeadingTrivia();
104104
P->getRaw()->accumulateAbsolutePosition(Result);
105105
// FIXME: avoid using const_cast.
106106
const_cast<SyntaxData*>(this)->PositionCache = Result;
@@ -111,16 +111,16 @@ AbsolutePosition SyntaxData::getAbsolutePositionWithLeadingTrivia() const {
111111
}
112112

113113
AbsolutePosition SyntaxData::getAbsolutePosition() const {
114-
auto Result = getAbsolutePositionWithLeadingTrivia();
114+
auto Result = getAbsolutePositionBeforeLeadingTrivia();
115115
getRaw()->accumulateLeadingTrivia(Result);
116116
return Result;
117117
}
118118

119-
AbsolutePosition SyntaxData::getAbsoluteEndPosition() const {
119+
AbsolutePosition SyntaxData::getAbsoluteEndPositionAfterTrailingTrivia() const {
120120
if (auto N = getNextNode()) {
121-
return N->getAbsolutePositionWithLeadingTrivia();
121+
return N->getAbsolutePositionBeforeLeadingTrivia();
122122
} else {
123-
auto Result = getAbsolutePositionWithLeadingTrivia();
123+
auto Result = getAbsolutePositionBeforeLeadingTrivia();
124124
getRaw()->accumulateAbsolutePosition(Result);
125125
return Result;
126126
}

tools/SourceKit/lib/SwiftLang/SwiftEditor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ class SyntaxToSyntaxMapConverter : public SyntaxVisitor {
655655
return;
656656

657657
auto LeadingTriviaOffset =
658-
Token.getAbsolutePositionWithLeadingTrivia().getOffset();
658+
Token.getAbsolutePositionBeforeLeadingTrivia().getOffset();
659659
visitTrivia(Token.getLeadingTrivia(), LeadingTriviaOffset);
660660

661661
SyntaxClassification Classification = TokenClassifications[Token.getId()];

tools/swift-syntax-test/swift-syntax-test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ bool verifyReusedRegions(ByteBasedSourceRangeSet ExpectedReparseRegions,
476476
SourceFile *SF) {
477477
// We always expect the EOF token to be reparsed. Don't complain about it.
478478
auto Eof = SF->getSyntaxRoot().getChild(SourceFileSyntax::Cursor::EOFToken);
479-
auto EofNodeStart = Eof->getAbsolutePositionWithLeadingTrivia().getOffset();
479+
auto EofNodeStart = Eof->getAbsolutePositionBeforeLeadingTrivia().getOffset();
480480
if (ExpectedReparseRegions.Ranges.back().End >= EofNodeStart) {
481481
// If the last expected reparse region already covers part of the eof
482482
// leading trivia, extended it

unittests/Syntax/AbsolutePositionTests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ TEST(PositionTests, AbsolutePosition1) {
1616
ASSERT_EQ(7u, Pos.getLine());
1717
ASSERT_EQ(1u, Pos.getColumn());
1818
ASSERT_EQ(8u, Pos.getOffset());
19-
AbsolutePosition EndPos = Token.getAbsoluteEndPosition();
19+
AbsolutePosition EndPos = Token.getAbsoluteEndPositionAfterTrailingTrivia();
2020
ASSERT_EQ(7u, EndPos.getLine());
2121
ASSERT_EQ(4u, EndPos.getColumn());
2222
ASSERT_EQ(11u, EndPos.getOffset());
@@ -30,7 +30,7 @@ TEST(PositionTests, AbsolutePosition2) {
3030
ASSERT_EQ(4u, Pos.getLine());
3131
ASSERT_EQ(4u, Pos.getColumn());
3232
ASSERT_EQ(10u, Pos.getOffset());
33-
AbsolutePosition EndPos = Token.getAbsoluteEndPosition();
33+
AbsolutePosition EndPos = Token.getAbsoluteEndPositionAfterTrailingTrivia();
3434
ASSERT_EQ(4u, EndPos.getLine());
3535
ASSERT_EQ(7u, EndPos.getColumn());
3636
ASSERT_EQ(13u, EndPos.getOffset());

0 commit comments

Comments
 (0)