Merge pull request #27218 from nathawes/r53958454-getFixedTypeRecursive-code-completion-crash

[code-completion] Remove special handling for completion on the RHS of an assignment
This commit is contained in:
Nathan Hawes
2019-09-18 10:49:38 -07:00
committed by GitHub
6 changed files with 50 additions and 44 deletions

View File

@@ -1214,7 +1214,6 @@ class CodeCompletionCallbacksImpl : public CodeCompletionCallbacks {
std::vector<RequestedCachedModule> RequestedModules;
CodeCompletionConsumer &Consumer;
CodeCompletionExpr *CodeCompleteTokenExpr = nullptr;
AssignExpr *AssignmentExpr;
CompletionKind Kind = CompletionKind::None;
Expr *ParsedExpr = nullptr;
SourceLoc DotLoc;
@@ -1368,7 +1367,6 @@ public:
void completeImportDecl(std::vector<std::pair<Identifier, SourceLoc>> &Path) override;
void completeUnresolvedMember(CodeCompletionExpr *E,
SourceLoc DotLoc) override;
void completeAssignmentRHS(AssignExpr *E) override;
void completeCallArg(CodeCompletionExpr *E, bool isFirst) override;
void completeReturnStmt(CodeCompletionExpr *E) override;
void completeYieldStmt(CodeCompletionExpr *E,
@@ -4672,13 +4670,6 @@ void CodeCompletionCallbacksImpl::completeUnresolvedMember(CodeCompletionExpr *E
this->DotLoc = DotLoc;
}
void CodeCompletionCallbacksImpl::completeAssignmentRHS(AssignExpr *E) {
AssignmentExpr = E;
ParsedExpr = E->getDest();
CurDeclContext = P.CurDeclContext;
Kind = CompletionKind::AssignmentRHS;
}
void CodeCompletionCallbacksImpl::completeCallArg(CodeCompletionExpr *E,
bool isFirst) {
CurDeclContext = P.CurDeclContext;
@@ -4907,7 +4898,6 @@ void CodeCompletionCallbacksImpl::addKeywords(CodeCompletionResultSink &Sink,
addDeclKeywords(Sink);
addStmtKeywords(Sink, MaybeFuncBody);
LLVM_FALLTHROUGH;
case CompletionKind::AssignmentRHS:
case CompletionKind::ReturnStmtExpr:
case CompletionKind::YieldStmtExpr:
case CompletionKind::PostfixExprBeginning:
@@ -5374,14 +5364,6 @@ void CodeCompletionCallbacksImpl::doneParsing() {
Lookup.getUnresolvedMemberCompletions(ContextInfo.getPossibleTypes());
break;
}
case CompletionKind::AssignmentRHS : {
SourceLoc Loc = P.Context.SourceMgr.getCodeCompletionLoc();
if (auto destType = ParsedExpr->getType())
Lookup.setExpectedTypes(destType->getRValueType(),
/*isSingleExpressionBody*/ false);
Lookup.getValueCompletionsInDeclContext(Loc, DefaultFilter);
break;
}
case CompletionKind::CallArg : {
ExprContextInfo ContextInfo(CurDeclContext, CodeCompleteTokenExpr);