@@ -486,6 +486,12 @@ DebugClientDiscriminator("debug-client-discriminator",
486486 llvm::cl::desc (" A discriminator to prefer in lookups" ),
487487 llvm::cl::cat(Category));
488488
489+ static llvm::cl::opt<bool > CodeCompletionAddCallWithNoDefaultArgs (
490+ " code-complete-add-call-with-no-default-args" ,
491+ llvm::cl::desc (" Whether to include a function completion that contains no "
492+ " default arguments" ),
493+ llvm::cl::cat(Category), llvm::cl::init(true ));
494+
489495// '-conforming-methods' options.
490496
491497static llvm::cl::list<std::string>
@@ -1137,17 +1143,16 @@ static int printCodeCompletionResults(
11371143 });
11381144}
11391145
1140- static int doCodeCompletion (const CompilerInvocation &InitInvok,
1141- StringRef SourceFilename,
1142- StringRef SecondSourceFileName,
1143- StringRef CodeCompletionToken,
1144- bool CodeCompletionDiagnostics,
1145- bool CodeCompletionKeywords,
1146- bool CodeCompletionComments,
1147- bool CodeCompletionAnnotateResults,
1148- bool CodeCompletionAddInitsToTopLevel,
1149- bool CodeCompletionCallPatternHeuristics,
1150- bool CodeCompletionSourceText) {
1146+ static int
1147+ doCodeCompletion (const CompilerInvocation &InitInvok, StringRef SourceFilename,
1148+ StringRef SecondSourceFileName, StringRef CodeCompletionToken,
1149+ bool CodeCompletionDiagnostics, bool CodeCompletionKeywords,
1150+ bool CodeCompletionComments,
1151+ bool CodeCompletionAnnotateResults,
1152+ bool CodeCompletionAddInitsToTopLevel,
1153+ bool CodeCompletionCallPatternHeuristics,
1154+ bool CodeCompletionAddCallWithNoDefaultArgs,
1155+ bool CodeCompletionSourceText) {
11511156 std::unique_ptr<ide::OnDiskCodeCompletionCache> OnDiskCache;
11521157 if (!options::CompletionCachePath.empty ()) {
11531158 OnDiskCache = std::make_unique<ide::OnDiskCodeCompletionCache>(
@@ -1158,6 +1163,8 @@ static int doCodeCompletion(const CompilerInvocation &InitInvok,
11581163 CompletionContext.setAnnotateResult (CodeCompletionAnnotateResults);
11591164 CompletionContext.setAddInitsToTopLevel (CodeCompletionAddInitsToTopLevel);
11601165 CompletionContext.setCallPatternHeuristics (CodeCompletionCallPatternHeuristics);
1166+ CompletionContext.setAddCallWithNoDefaultArgs (
1167+ CodeCompletionAddCallWithNoDefaultArgs);
11611168
11621169 return performWithCompletionLikeOperationParams (
11631170 InitInvok, SourceFilename, SecondSourceFileName, CodeCompletionToken,
@@ -1359,6 +1366,7 @@ static int doBatchCodeCompletion(const CompilerInvocation &InitInvok,
13591366 bool CodeCompletionAnnotateResults,
13601367 bool CodeCompletionAddInitsToTopLevel,
13611368 bool CodeCompletionCallPatternHeuristics,
1369+ bool CodeCompletionAddCallWithNoDefaultArgs,
13621370 bool CodeCompletionSourceText) {
13631371 auto FileBufOrErr = llvm::MemoryBuffer::getFile (SourceFilename);
13641372 if (!FileBufOrErr) {
@@ -1488,6 +1496,8 @@ static int doBatchCodeCompletion(const CompilerInvocation &InitInvok,
14881496 CompletionContext.setAddInitsToTopLevel (CodeCompletionAddInitsToTopLevel);
14891497 CompletionContext.setCallPatternHeuristics (
14901498 CodeCompletionCallPatternHeuristics);
1499+ CompletionContext.setAddCallWithNoDefaultArgs (
1500+ CodeCompletionAddCallWithNoDefaultArgs);
14911501
14921502 PrintingDiagnosticConsumer PrintDiags;
14931503 auto completionStart = std::chrono::high_resolution_clock::now ();
@@ -4415,33 +4425,30 @@ int main(int argc, char *argv[]) {
44154425 << " '-skip-filecheck'\n " ;
44164426 return 1 ;
44174427 }
4418- ExitCode = doBatchCodeCompletion (InitInvok,
4419- options::SourceFilename,
4420- options::CodeCompletionDiagnostics,
4421- options::CodeCompletionKeywords,
4422- options::CodeCompletionComments,
4423- options::CodeCompletionAnnotateResults,
4424- options::CodeCompleteInitsInPostfixExpr,
4425- options::CodeCompleteCallPatternHeuristics,
4426- options::CodeCompletionSourceText);
4428+ ExitCode = doBatchCodeCompletion (
4429+ InitInvok, options::SourceFilename, options::CodeCompletionDiagnostics,
4430+ options::CodeCompletionKeywords, options::CodeCompletionComments,
4431+ options::CodeCompletionAnnotateResults,
4432+ options::CodeCompleteInitsInPostfixExpr,
4433+ options::CodeCompleteCallPatternHeuristics,
4434+ options::CodeCompletionAddCallWithNoDefaultArgs,
4435+ options::CodeCompletionSourceText);
44274436 break ;
44284437
44294438 case ActionType::CodeCompletion:
44304439 if (options::CodeCompletionToken.empty ()) {
44314440 llvm::errs () << " code completion token name required\n " ;
44324441 return 1 ;
44334442 }
4434- ExitCode = doCodeCompletion (InitInvok,
4435- options::SourceFilename,
4436- options::SecondSourceFilename,
4437- options::CodeCompletionToken,
4438- options::CodeCompletionDiagnostics,
4439- options::CodeCompletionKeywords,
4440- options::CodeCompletionComments,
4441- options::CodeCompletionAnnotateResults,
4442- options::CodeCompleteInitsInPostfixExpr,
4443- options::CodeCompleteCallPatternHeuristics,
4444- options::CodeCompletionSourceText);
4443+ ExitCode = doCodeCompletion (
4444+ InitInvok, options::SourceFilename, options::SecondSourceFilename,
4445+ options::CodeCompletionToken, options::CodeCompletionDiagnostics,
4446+ options::CodeCompletionKeywords, options::CodeCompletionComments,
4447+ options::CodeCompletionAnnotateResults,
4448+ options::CodeCompleteInitsInPostfixExpr,
4449+ options::CodeCompleteCallPatternHeuristics,
4450+ options::CodeCompletionAddCallWithNoDefaultArgs,
4451+ options::CodeCompletionSourceText);
44454452 break ;
44464453
44474454 case ActionType::REPLCodeCompletion:
0 commit comments