Skip to content

Commit ef596b5

Browse files
authored
Merge pull request swiftlang#32889 from benlangmuir/revert-sema-change
[5.3] Revert "Merge pull request swiftlang#32655 from benlangmuir/sema-repeat-53"
2 parents b528731 + bba238b commit ef596b5

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
@@ -660,7 +660,7 @@ class SwiftDocumentSemanticInfo :
660660
}
661661

662662
private:
663-
std::vector<SwiftSemanticToken> getSemanticTokens(
663+
std::vector<SwiftSemanticToken> takeSemanticTokens(
664664
ImmutableTextSnapshotRef NewSnapshot);
665665

666666
Optional<std::vector<DiagnosticEntryInfo>> getSemanticDiagnostics(
@@ -763,28 +763,26 @@ void SwiftDocumentSemanticInfo::readSemanticInfo(
763763

764764
llvm::sys::ScopedLock L(Mtx);
765765

766-
Tokens = getSemanticTokens(NewSnapshot);
766+
Tokens = takeSemanticTokens(NewSnapshot);
767767
Diags = getSemanticDiagnostics(NewSnapshot, ParserDiags);
768768
}
769769

770770
std::vector<SwiftSemanticToken>
771-
SwiftDocumentSemanticInfo::getSemanticTokens(
771+
SwiftDocumentSemanticInfo::takeSemanticTokens(
772772
ImmutableTextSnapshotRef NewSnapshot) {
773773

774774
llvm::sys::ScopedLock L(Mtx);
775775

776776
if (SemaToks.empty())
777777
return {};
778778

779-
auto result = SemaToks;
780-
781779
// Adjust the position of the tokens.
782780
TokSnapshot->foreachReplaceUntil(NewSnapshot,
783781
[&](ReplaceImmutableTextUpdateRef Upd) -> bool {
784-
if (result.empty())
782+
if (SemaToks.empty())
785783
return false;
786784

787-
auto ReplaceBegin = std::lower_bound(result.begin(), result.end(),
785+
auto ReplaceBegin = std::lower_bound(SemaToks.begin(), SemaToks.end(),
788786
Upd->getByteOffset(),
789787
[&](const SwiftSemanticToken &Tok, unsigned StartOffset) -> bool {
790788
return Tok.ByteOffset+Tok.Length < StartOffset;
@@ -794,7 +792,7 @@ SwiftDocumentSemanticInfo::getSemanticTokens(
794792
if (Upd->getLength() == 0) {
795793
ReplaceEnd = ReplaceBegin;
796794
} else {
797-
ReplaceEnd = std::upper_bound(ReplaceBegin, result.end(),
795+
ReplaceEnd = std::upper_bound(ReplaceBegin, SemaToks.end(),
798796
Upd->getByteOffset() + Upd->getLength(),
799797
[&](unsigned EndOffset, const SwiftSemanticToken &Tok) -> bool {
800798
return EndOffset < Tok.ByteOffset;
@@ -805,14 +803,14 @@ SwiftDocumentSemanticInfo::getSemanticTokens(
805803
int Delta = InsertLen - Upd->getLength();
806804
if (Delta != 0) {
807805
for (std::vector<SwiftSemanticToken>::iterator
808-
I = ReplaceEnd, E = result.end(); I != E; ++I)
806+
I = ReplaceEnd, E = SemaToks.end(); I != E; ++I)
809807
I->ByteOffset += Delta;
810808
}
811-
result.erase(ReplaceBegin, ReplaceEnd);
809+
SemaToks.erase(ReplaceBegin, ReplaceEnd);
812810
return true;
813811
});
814812

815-
return result;
813+
return std::move(SemaToks);
816814
}
817815

818816
Optional<std::vector<DiagnosticEntryInfo>>

0 commit comments

Comments
 (0)