[CodeComplete] Remove code for call pattern heuristics

These options weren’t used anymore, so we can remove them.
This commit is contained in:
Alex Hoppen
2024-01-22 19:57:12 -08:00
parent dd5486cda8
commit c8424c1b7a
11 changed files with 7 additions and 54 deletions

View File

@@ -79,13 +79,6 @@ public:
return CurrentResults.addInitsToTopLevel;
}
void setCallPatternHeuristics(bool flag) {
CurrentResults.enableCallPatternHeuristics = flag;
}
bool getCallPatternHeuristics() const {
return CurrentResults.enableCallPatternHeuristics;
}
void setAddCallWithNoDefaultArgs(bool flag) {
CurrentResults.addCallWithNoDefaultArgs = flag;
}

View File

@@ -38,9 +38,6 @@ struct CodeCompletionResultSink {
/// position.
bool addInitsToTopLevel = false;
/// Whether to perform "call pettern heuristics".
bool enableCallPatternHeuristics = false;
/// Whether to include an item without any default arguments.
bool addCallWithNoDefaultArgs = true;

View File

@@ -246,7 +246,7 @@ public:
virtual void completeUnresolvedMember(CodeCompletionExpr *E,
SourceLoc DotLoc) {};
virtual void completeCallArg(CodeCompletionExpr *E, bool isFirst) {};
virtual void completeCallArg(CodeCompletionExpr *E) {};
virtual bool canPerformCompleteLabeledTrailingClosure() const {
return false;

View File

@@ -130,7 +130,6 @@ class CodeCompletionCallbacksImpl : public CodeCompletionCallbacks,
bool AttrParamHasLabel;
bool IsInSil = false;
bool HasSpace = false;
bool ShouldCompleteCallPatternAfterParen = true;
bool PreferFunctionReferencesToCalls = false;
bool AttTargetIsIndependent = false;
llvm::Optional<DeclKind> AttTargetDK;
@@ -284,7 +283,7 @@ public:
void completeImportDecl(ImportPath::Builder &Path) override;
void completeUnresolvedMember(CodeCompletionExpr *E,
SourceLoc DotLoc) override;
void completeCallArg(CodeCompletionExpr *E, bool isFirst) override;
void completeCallArg(CodeCompletionExpr *E) override;
bool canPerformCompleteLabeledTrailingClosure() const override {
return true;
@@ -546,26 +545,10 @@ void CodeCompletionCallbacksImpl::completeUnresolvedMember(CodeCompletionExpr *E
this->DotLoc = DotLoc;
}
void CodeCompletionCallbacksImpl::completeCallArg(CodeCompletionExpr *E,
bool isFirst) {
void CodeCompletionCallbacksImpl::completeCallArg(CodeCompletionExpr *E) {
CurDeclContext = P.CurDeclContext;
CodeCompleteTokenExpr = E;
Kind = CompletionKind::CallArg;
ShouldCompleteCallPatternAfterParen = false;
if (isFirst) {
ShouldCompleteCallPatternAfterParen = true;
if (CompletionContext.getCallPatternHeuristics()) {
// Lookahead one token to decide what kind of call completions to provide.
// When it appears that there is already code for the call present, just
// complete values and/or argument labels. Otherwise give the entire call
// pattern.
Token next = P.peekToken();
if (!next.isAtStartOfLine() && !next.is(tok::eof) && !next.is(tok::r_paren)) {
ShouldCompleteCallPatternAfterParen = false;
}
}
}
}
void CodeCompletionCallbacksImpl::completeReturnStmt(CodeCompletionExpr *E) {

View File

@@ -142,7 +142,6 @@ void CodeCompletionContext::addResultsFromModules(
CodeCompletionResultSink Sink;
Sink.annotateResult = getAnnotateResult();
Sink.addInitsToTopLevel = getAddInitsToTopLevel();
Sink.enableCallPatternHeuristics = getCallPatternHeuristics();
Sink.includeObjectLiterals = includeObjectLiterals();
Sink.addCallWithNoDefaultArgs = addCallWithNoDefaultArgs();
Sink.setProduceContextFreeResults((*V)->USRTypeArena);

View File

@@ -43,7 +43,7 @@ public:
void completeForEachSequenceBeginning(CodeCompletionExpr *E) override;
void completeCaseStmtBeginning(CodeCompletionExpr *E) override;
void completeCallArg(CodeCompletionExpr *E, bool isFirst) override;
void completeCallArg(CodeCompletionExpr *E) override;
void completeReturnStmt(CodeCompletionExpr *E) override;
void completeThenStmt(CodeCompletionExpr *E) override;
void completeYieldStmt(CodeCompletionExpr *E,
@@ -65,8 +65,7 @@ void ContextInfoCallbacks::completeForEachSequenceBeginning(
CurDeclContext = P.CurDeclContext;
ParsedExpr = E;
}
void ContextInfoCallbacks::completeCallArg(CodeCompletionExpr *E,
bool isFirst) {
void ContextInfoCallbacks::completeCallArg(CodeCompletionExpr *E) {
CurDeclContext = P.CurDeclContext;
ParsedExpr = E;
}

View File

@@ -3276,8 +3276,7 @@ ParserStatus Parser::parseExprListElement(tok rightTok, bool isArgumentList, Sou
// Handle call arguments specially because it may need argument labels.
auto CCExpr = new (Context) CodeCompletionExpr(Tok.getLoc());
if (this->CodeCompletionCallbacks)
this->CodeCompletionCallbacks->completeCallArg(CCExpr,
PreviousLoc == leftLoc);
this->CodeCompletionCallbacks->completeCallArg(CCExpr);
consumeIf(tok::code_complete);
elts.push_back({FieldNameLoc, FieldName, CCExpr});
Status.setHasCodeCompletionAndIsError();

View File

@@ -1,5 +1,5 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t -code-complete-call-pattern-heuristics -disable-objc-attr-requires-foundation-module
// RUN: %target-swift-ide-test -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t -disable-objc-attr-requires-foundation-module
// SE-0353
struct ConstraintedExistentialTest {

View File

@@ -38,7 +38,6 @@ struct Options {
bool addInnerResults = false;
bool addInnerOperators = true;
bool addInitsToTopLevel = false;
bool callPatternHeuristics = false;
bool hideUnderscores = true;
bool reallyHideAllUnderscores = false;
bool hideLowPriority = true;

View File

@@ -101,7 +101,6 @@ static void swiftCodeCompleteImpl(
CompletionContext.setAnnotateResult(opts.annotatedDescription);
CompletionContext.setIncludeObjectLiterals(opts.includeObjectLiterals);
CompletionContext.setAddInitsToTopLevel(opts.addInitsToTopLevel);
CompletionContext.setCallPatternHeuristics(opts.callPatternHeuristics);
CompletionContext.setAddCallWithNoDefaultArgs(opts.addCallWithNoDefaultArgs);
Lang.performWithParamsToCompletionLikeOperation(
@@ -722,7 +721,6 @@ static void translateCodeCompletionOptions(OptionsDictionary &from,
static UIdent KeyAddInnerResults("key.codecomplete.addinnerresults");
static UIdent KeyAddInnerOperators("key.codecomplete.addinneroperators");
static UIdent KeyAddInitsToTopLevel("key.codecomplete.addinitstotoplevel");
static UIdent KeyCallPatternHeuristics("key.codecomplete.callpatternheuristics");
static UIdent KeyFuzzyMatching("key.codecomplete.fuzzymatching");
static UIdent KeyTopNonLiteral("key.codecomplete.showtopnonliteralresults");
static UIdent KeyContextWeight("key.codecomplete.sort.contextweight");
@@ -747,7 +745,6 @@ static void translateCodeCompletionOptions(OptionsDictionary &from,
from.valueForOption(KeyAddInnerResults, to.addInnerResults);
from.valueForOption(KeyAddInnerOperators, to.addInnerOperators);
from.valueForOption(KeyAddInitsToTopLevel, to.addInitsToTopLevel);
from.valueForOption(KeyCallPatternHeuristics, to.callPatternHeuristics);
from.valueForOption(KeyFuzzyMatching, to.fuzzyMatching);
from.valueForOption(KeyContextWeight, to.semanticContextWeight);
from.valueForOption(KeyFuzzyWeight, to.fuzzyMatchWeight);
@@ -1103,7 +1100,6 @@ void SwiftLangSupport::codeCompleteOpen(
unsigned maxResults = 0;
CodeCompletion::Options CCOpts;
// Enable "call pattern heuristics" by default for this API.
CCOpts.callPatternHeuristics = true;
if (options)
translateCodeCompletionOptions(*options, CCOpts, filterText, resultOffset,
maxResults);

View File

@@ -407,11 +407,6 @@ static llvm::cl::opt<bool> CodeCompleteInitsInPostfixExpr(
llvm::cl::desc(
"Include initializers when completing a postfix expression"),
llvm::cl::cat(Category));
static llvm::cl::opt<bool> CodeCompleteCallPatternHeuristics(
"code-complete-call-pattern-heuristics",
llvm::cl::desc(
"Use heuristics to guess whether we want call pattern completions"),
llvm::cl::cat(Category));
static llvm::cl::opt<bool>
DisableObjCAttrRequiresFoundationModule(
@@ -1408,7 +1403,6 @@ doCodeCompletion(const CompilerInvocation &InitInvok, StringRef SourceFilename,
bool CodeCompletionComments,
bool CodeCompletionAnnotateResults,
bool CodeCompletionAddInitsToTopLevel,
bool CodeCompletionCallPatternHeuristics,
bool CodeCompletionAddCallWithNoDefaultArgs,
bool CodeCompletionSourceText) {
std::unique_ptr<ide::OnDiskCodeCompletionCache> OnDiskCache;
@@ -1420,7 +1414,6 @@ doCodeCompletion(const CompilerInvocation &InitInvok, StringRef SourceFilename,
ide::CodeCompletionContext CompletionContext(CompletionCache);
CompletionContext.setAnnotateResult(CodeCompletionAnnotateResults);
CompletionContext.setAddInitsToTopLevel(CodeCompletionAddInitsToTopLevel);
CompletionContext.setCallPatternHeuristics(CodeCompletionCallPatternHeuristics);
CompletionContext.setAddCallWithNoDefaultArgs(
CodeCompletionAddCallWithNoDefaultArgs);
@@ -1451,7 +1444,6 @@ static int doBatchCodeCompletion(const CompilerInvocation &InitInvok,
bool CodeCompletionComments,
bool CodeCompletionAnnotateResults,
bool CodeCompletionAddInitsToTopLevel,
bool CodeCompletionCallPatternHeuristics,
bool CodeCompletionAddCallWithNoDefaultArgs,
bool CodeCompletionSourceText) {
auto FileBufOrErr = llvm::MemoryBuffer::getFile(SourceFilename);
@@ -1580,8 +1572,6 @@ static int doBatchCodeCompletion(const CompilerInvocation &InitInvok,
ide::CodeCompletionContext CompletionContext(CompletionCache);
CompletionContext.setAnnotateResult(CodeCompletionAnnotateResults);
CompletionContext.setAddInitsToTopLevel(CodeCompletionAddInitsToTopLevel);
CompletionContext.setCallPatternHeuristics(
CodeCompletionCallPatternHeuristics);
CompletionContext.setAddCallWithNoDefaultArgs(
CodeCompletionAddCallWithNoDefaultArgs);
@@ -4640,7 +4630,6 @@ int main(int argc, char *argv[]) {
options::CodeCompletionKeywords, options::CodeCompletionComments,
options::CodeCompletionAnnotateResults,
options::CodeCompleteInitsInPostfixExpr,
options::CodeCompleteCallPatternHeuristics,
options::CodeCompletionAddCallWithNoDefaultArgs,
options::CodeCompletionSourceText);
break;
@@ -4656,7 +4645,6 @@ int main(int argc, char *argv[]) {
options::CodeCompletionKeywords, options::CodeCompletionComments,
options::CodeCompletionAnnotateResults,
options::CodeCompleteInitsInPostfixExpr,
options::CodeCompleteCallPatternHeuristics,
options::CodeCompletionAddCallWithNoDefaultArgs,
options::CodeCompletionSourceText);
break;