Skip to content

Commit d525d17

Browse files
authored
Merge pull request swiftlang#32890 from benlangmuir/revert-sema-change-master
Revert "Merge pull request swiftlang#32628 from benlangmuir/sema-repeat"
2 parents 19f27d9 + 209a7b3 commit d525d17

File tree

3 files changed

+9
-87
lines changed

3 files changed

+9
-87
lines changed

test/SourceKit/Sema/sema_annotations_saved.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

test/SourceKit/Sema/sema_annotations_saved.swift.response

Lines changed: 0 additions & 66 deletions
This file was deleted.

tools/SourceKit/lib/SwiftLang/SwiftEditor.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ class SwiftDocumentSemanticInfo :
659659
}
660660

661661
private:
662-
std::vector<SwiftSemanticToken> getSemanticTokens(
662+
std::vector<SwiftSemanticToken> takeSemanticTokens(
663663
ImmutableTextSnapshotRef NewSnapshot);
664664

665665
Optional<std::vector<DiagnosticEntryInfo>> getSemanticDiagnostics(
@@ -760,28 +760,26 @@ void SwiftDocumentSemanticInfo::readSemanticInfo(
760760

761761
llvm::sys::ScopedLock L(Mtx);
762762

763-
Tokens = getSemanticTokens(NewSnapshot);
763+
Tokens = takeSemanticTokens(NewSnapshot);
764764
Diags = getSemanticDiagnostics(NewSnapshot, ParserDiags);
765765
}
766766

767767
std::vector<SwiftSemanticToken>
768-
SwiftDocumentSemanticInfo::getSemanticTokens(
768+
SwiftDocumentSemanticInfo::takeSemanticTokens(
769769
ImmutableTextSnapshotRef NewSnapshot) {
770770

771771
llvm::sys::ScopedLock L(Mtx);
772772

773773
if (SemaToks.empty())
774774
return {};
775775

776-
auto result = SemaToks;
777-
778776
// Adjust the position of the tokens.
779777
TokSnapshot->foreachReplaceUntil(NewSnapshot,
780778
[&](ReplaceImmutableTextUpdateRef Upd) -> bool {
781-
if (result.empty())
779+
if (SemaToks.empty())
782780
return false;
783781

784-
auto ReplaceBegin = std::lower_bound(result.begin(), result.end(),
782+
auto ReplaceBegin = std::lower_bound(SemaToks.begin(), SemaToks.end(),
785783
Upd->getByteOffset(),
786784
[&](const SwiftSemanticToken &Tok, unsigned StartOffset) -> bool {
787785
return Tok.ByteOffset+Tok.Length < StartOffset;
@@ -791,7 +789,7 @@ SwiftDocumentSemanticInfo::getSemanticTokens(
791789
if (Upd->getLength() == 0) {
792790
ReplaceEnd = ReplaceBegin;
793791
} else {
794-
ReplaceEnd = std::upper_bound(ReplaceBegin, result.end(),
792+
ReplaceEnd = std::upper_bound(ReplaceBegin, SemaToks.end(),
795793
Upd->getByteOffset() + Upd->getLength(),
796794
[&](unsigned EndOffset, const SwiftSemanticToken &Tok) -> bool {
797795
return EndOffset < Tok.ByteOffset;
@@ -802,14 +800,14 @@ SwiftDocumentSemanticInfo::getSemanticTokens(
802800
int Delta = InsertLen - Upd->getLength();
803801
if (Delta != 0) {
804802
for (std::vector<SwiftSemanticToken>::iterator
805-
I = ReplaceEnd, E = result.end(); I != E; ++I)
803+
I = ReplaceEnd, E = SemaToks.end(); I != E; ++I)
806804
I->ByteOffset += Delta;
807805
}
808-
result.erase(ReplaceBegin, ReplaceEnd);
806+
SemaToks.erase(ReplaceBegin, ReplaceEnd);
809807
return true;
810808
});
811809

812-
return result;
810+
return std::move(SemaToks);
813811
}
814812

815813
Optional<std::vector<DiagnosticEntryInfo>>

0 commit comments

Comments
 (0)