@@ -1091,7 +1091,7 @@ doConformingMethodList(const CompilerInvocation &InitInvok,
1091
1091
static void printCodeCompletionResultsImpl (
1092
1092
ArrayRef<CodeCompletionResult *> Results, llvm::raw_ostream &OS,
1093
1093
bool IncludeKeywords, bool IncludeComments, bool IncludeSourceText,
1094
- bool PrintAnnotatedDescription, const ASTContext & Ctx) {
1094
+ bool PrintAnnotatedDescription, const ASTContext * Ctx) {
1095
1095
unsigned NumResults = 0 ;
1096
1096
for (auto Result : Results) {
1097
1097
if (!IncludeKeywords &&
@@ -1134,30 +1134,33 @@ static void printCodeCompletionResultsImpl(
1134
1134
OS << " ; comment=" << comment;
1135
1135
}
1136
1136
1137
- SmallString<256 > Scratch;
1138
- auto DiagSeverityAndMessage =
1139
- Result->getDiagnosticSeverityAndMessage (Scratch, Ctx);
1140
- if (DiagSeverityAndMessage.first !=
1141
- CodeCompletionDiagnosticSeverity::None) {
1142
- OS << " ; diagnostics=" << comment;
1143
- switch (DiagSeverityAndMessage.first ) {
1144
- case CodeCompletionDiagnosticSeverity::Error:
1145
- OS << " error" ;
1146
- break ;
1147
- case CodeCompletionDiagnosticSeverity::Warning:
1148
- OS << " warning" ;
1149
- break ;
1150
- case CodeCompletionDiagnosticSeverity::Remark:
1151
- OS << " remark" ;
1152
- break ;
1153
- case CodeCompletionDiagnosticSeverity::Note:
1154
- OS << " note" ;
1155
- break ;
1156
- case CodeCompletionDiagnosticSeverity::None:
1157
- llvm_unreachable (" none" );
1158
- }
1137
+ if (Ctx) {
1138
+ // Only print diagnostics if we have an ASTContext
1159
1139
SmallString<256 > Scratch;
1160
- OS << " :" << DiagSeverityAndMessage.second ;
1140
+ auto DiagSeverityAndMessage =
1141
+ Result->getDiagnosticSeverityAndMessage (Scratch, *Ctx);
1142
+ if (DiagSeverityAndMessage.first !=
1143
+ CodeCompletionDiagnosticSeverity::None) {
1144
+ OS << " ; diagnostics=" << comment;
1145
+ switch (DiagSeverityAndMessage.first ) {
1146
+ case CodeCompletionDiagnosticSeverity::Error:
1147
+ OS << " error" ;
1148
+ break ;
1149
+ case CodeCompletionDiagnosticSeverity::Warning:
1150
+ OS << " warning" ;
1151
+ break ;
1152
+ case CodeCompletionDiagnosticSeverity::Remark:
1153
+ OS << " remark" ;
1154
+ break ;
1155
+ case CodeCompletionDiagnosticSeverity::Note:
1156
+ OS << " note" ;
1157
+ break ;
1158
+ case CodeCompletionDiagnosticSeverity::None:
1159
+ llvm_unreachable (" none" );
1160
+ }
1161
+ SmallString<256 > Scratch;
1162
+ OS << " :" << DiagSeverityAndMessage.second ;
1163
+ }
1161
1164
}
1162
1165
1163
1166
OS << " \n " ;
@@ -1188,7 +1191,7 @@ static int printCodeCompletionResults(
1188
1191
printCodeCompletionResultsImpl (
1189
1192
Result.ResultSink .Results , OS, IncludeKeywords, IncludeComments,
1190
1193
IncludeSourceText, PrintAnnotatedDescription,
1191
- Result.Info .compilerInstance ->getASTContext ());
1194
+ & Result.Info .compilerInstance ->getASTContext ());
1192
1195
printCodeCompletionLookedupTypeNames (
1193
1196
Result.Info .completionContext ->LookedupNominalTypeNames , OS);
1194
1197
return 0 ;
@@ -1570,7 +1573,7 @@ static int doBatchCodeCompletion(const CompilerInvocation &InitInvok,
1570
1573
Result->ResultSink .Results , OS, IncludeKeywords,
1571
1574
IncludeComments, IncludeSourceText,
1572
1575
CodeCompletionAnnotateResults,
1573
- Result->Info .compilerInstance ->getASTContext ());
1576
+ & Result->Info .compilerInstance ->getASTContext ());
1574
1577
printCodeCompletionLookedupTypeNames (
1575
1578
Result->Info .completionContext ->LookedupNominalTypeNames , OS);
1576
1579
break ;
@@ -4249,12 +4252,11 @@ int main(int argc, char *argv[]) {
4249
4252
ContextualNotRecommendedReason::None);
4250
4253
contextualResults.push_back (contextualResult);
4251
4254
}
4252
- auto CompInstance = std::make_unique<CompilerInstance>();
4253
4255
printCodeCompletionResultsImpl (
4254
4256
contextualResults, llvm::outs (), options::CodeCompletionKeywords,
4255
4257
options::CodeCompletionComments, options::CodeCompletionSourceText,
4256
4258
options::CodeCompletionAnnotateResults,
4257
- CompInstance-> getASTContext () );
4259
+ /* Ctx= */ nullptr );
4258
4260
}
4259
4261
4260
4262
return 0 ;
0 commit comments