Skip to content

Commit d8ebecf

Browse files
authored
Merge pull request #41627 from apple/revert-41000-pr/compute-global-type-relations
2 parents 282b812 + 1f5845d commit d8ebecf

21 files changed

+156
-1005
lines changed

include/swift/IDE/CodeCompletion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ bool isDynamicLookup(Type T);
6363

6464
void postProcessCompletionResults(
6565
MutableArrayRef<CodeCompletionResult *> results, CompletionKind Kind,
66-
const DeclContext *DC, CodeCompletionResultSink *Sink);
66+
DeclContext *DC, CodeCompletionResultSink *Sink);
6767

6868
void deliverCompletionResults(CodeCompletionContext &CompletionContext,
6969
CompletionLookup &Lookup, DeclContext *DC,

include/swift/IDE/CodeCompletionCache.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ class CodeCompletionCache {
7070

7171
std::vector<const ContextFreeCodeCompletionResult *> Results;
7272

73-
/// The arena that contains the \c USRBasedTypes of the
74-
/// \c ContextFreeCodeCompletionResult in this cache value.
75-
USRBasedTypeArena USRTypeArena;
76-
7773
Value() : Allocator(std::make_shared<llvm::BumpPtrAllocator>()) {}
7874
};
7975
using ValueRefCntPtr = llvm::IntrusiveRefCntPtr<Value>;

include/swift/IDE/CodeCompletionConsumer.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ class CodeCompletionConsumer {
2929
virtual void
3030
handleResultsAndModules(CodeCompletionContext &context,
3131
ArrayRef<RequestedCachedModule> requestedModules,
32-
const ExpectedTypeContext *TypeContext,
33-
const DeclContext *DC) = 0;
32+
DeclContext *DC) = 0;
3433
};
3534

3635
/// A simplified code completion consumer interface that clients can use to get
@@ -41,8 +40,7 @@ struct SimpleCachingCodeCompletionConsumer : public CodeCompletionConsumer {
4140
// Implement the CodeCompletionConsumer interface.
4241
void handleResultsAndModules(CodeCompletionContext &context,
4342
ArrayRef<RequestedCachedModule> requestedModules,
44-
const ExpectedTypeContext *TypeContext,
45-
const DeclContext *DCForModules) override;
43+
DeclContext *DCForModules) override;
4644

4745
/// Clients should override this method to receive \p Results.
4846
virtual void handleResults(CodeCompletionContext &context) = 0;

include/swift/IDE/CodeCompletionResult.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ class ContextFreeCodeCompletionResult {
390390
/// StringRefs outlive this result, typically by storing them in the same
391391
/// \c CodeCompletionResultSink as the result itself.
392392
static ContextFreeCodeCompletionResult *createPatternOrBuiltInOperatorResult(
393-
CodeCompletionResultSink &Sink, CodeCompletionResultKind Kind,
393+
llvm::BumpPtrAllocator &Allocator, CodeCompletionResultKind Kind,
394394
CodeCompletionString *CompletionString,
395395
CodeCompletionOperatorKind KnownOperatorKind,
396396
NullTerminatedStringRef BriefDocComment,
@@ -405,7 +405,7 @@ class ContextFreeCodeCompletionResult {
405405
/// \p BriefDocComment outlive this result, typically by storing them in
406406
/// the same \c CodeCompletionResultSink as the result itself.
407407
static ContextFreeCodeCompletionResult *
408-
createKeywordResult(CodeCompletionResultSink &Sink,
408+
createKeywordResult(llvm::BumpPtrAllocator &Allocator,
409409
CodeCompletionKeywordKind Kind,
410410
CodeCompletionString *CompletionString,
411411
NullTerminatedStringRef BriefDocComment,
@@ -417,7 +417,7 @@ class ContextFreeCodeCompletionResult {
417417
/// result, typically by storing them in the same \c CodeCompletionResultSink
418418
/// as the result itself.
419419
static ContextFreeCodeCompletionResult *
420-
createLiteralResult(CodeCompletionResultSink &Sink,
420+
createLiteralResult(llvm::BumpPtrAllocator &Allocator,
421421
CodeCompletionLiteralKind LiteralKind,
422422
CodeCompletionString *CompletionString,
423423
CodeCompletionResultType ResultType);
@@ -428,7 +428,7 @@ class ContextFreeCodeCompletionResult {
428428
/// \c StringRefs outlive this result, typically by storing them in the same
429429
/// \c CodeCompletionResultSink as the result itself.
430430
static ContextFreeCodeCompletionResult *createDeclResult(
431-
CodeCompletionResultSink &Sink, CodeCompletionString *CompletionString,
431+
llvm::BumpPtrAllocator &Allocator, CodeCompletionString *CompletionString,
432432
const Decl *AssociatedDecl, NullTerminatedStringRef ModuleName,
433433
NullTerminatedStringRef BriefDocComment,
434434
ArrayRef<NullTerminatedStringRef> AssociatedUSRs,
@@ -566,8 +566,6 @@ class CodeCompletionResult {
566566
/// information.
567567
/// This computes the type relation between the completion item and its
568568
/// expected type context.
569-
/// See \c CodeCompletionResultType::calculateTypeRelation for documentation
570-
/// on \p USRTypeContext.
571569
/// The \c ContextFree result must outlive this result. Typically, this is
572570
/// done by allocating the two in the same sink or adopting the context free
573571
/// sink in the sink that allocates this result.
@@ -576,7 +574,6 @@ class CodeCompletionResult {
576574
CodeCompletionFlair Flair, uint8_t NumBytesToErase,
577575
const ExpectedTypeContext *TypeContext,
578576
const DeclContext *DC,
579-
const USRBasedTypeContext *USRTypeContext,
580577
ContextualNotRecommendedReason NotRecommended,
581578
CodeCompletionDiagnosticSeverity DiagnosticSeverity,
582579
NullTerminatedStringRef DiagnosticMessage);

include/swift/IDE/CodeCompletionResultSink.h

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,6 @@ struct CodeCompletionResultSink {
4444
/// Whether to include an item without any default arguments.
4545
bool addCallWithNoDefaultArgs = true;
4646

47-
private:
48-
/// Whether the code completion results computed for this sink are intended to
49-
/// only be stored in the cache. In this case no contextual information is
50-
/// computed and all types in \c ContextFreeCodeCompletionResult should be
51-
/// USR-based instead of AST-based.
52-
USRBasedTypeArena *USRTypeArena = nullptr;
53-
54-
public:
5547
std::vector<CodeCompletionResult *> Results;
5648

5749
/// A single-element cache for module names stored in Allocator, keyed by a
@@ -60,30 +52,6 @@ struct CodeCompletionResultSink {
6052

6153
CodeCompletionResultSink()
6254
: Allocator(std::make_shared<llvm::BumpPtrAllocator>()) {}
63-
64-
llvm::BumpPtrAllocator &getAllocator() { return *Allocator; }
65-
66-
/// Marks the sink as producing results for the code completion cache.
67-
/// In this case the produced results will not contain any contextual
68-
/// information and all types in the \c ContextFreeCodeCompletionResult are
69-
/// USR-based.
70-
void setProduceContextFreeResults(USRBasedTypeArena &USRTypeArena) {
71-
this->USRTypeArena = &USRTypeArena;
72-
}
73-
74-
/// See \c setProduceContextFreeResults.
75-
bool shouldProduceContextFreeResults() const {
76-
return USRTypeArena != nullptr;
77-
}
78-
79-
/// If \c shouldProduceContextFreeResults is \c true, returns the arena in
80-
/// which the USR-based types of the \c ContextFreeCodeCompletionResult should
81-
/// be stored.
82-
USRBasedTypeArena &getUSRTypeArena() const {
83-
assert(USRTypeArena != nullptr &&
84-
"Must only be called if shouldProduceContextFreeResults is true");
85-
return *USRTypeArena;
86-
}
8755
};
8856

8957
} // end namespace ide

0 commit comments

Comments
 (0)