@@ -3754,7 +3754,8 @@ Parser::parseDecl(ParseDeclOptions Flags,
3754
3754
StaticSpelling, tryLoc, HasLetOrVarKeyword);
3755
3755
StaticLoc = SourceLoc (); // we handled static if present.
3756
3756
MayNeedOverrideCompletion = true ;
3757
- if (DeclResult.hasCodeCompletion () && isCodeCompletionFirstPass ())
3757
+ if ((AttrStatus.hasCodeCompletion () || DeclResult.hasCodeCompletion ())
3758
+ && isCodeCompletionFirstPass ())
3758
3759
return ;
3759
3760
std::for_each (Entries.begin (), Entries.end (), Handler);
3760
3761
if (auto *D = DeclResult.getPtrOrNull ())
@@ -3801,7 +3802,8 @@ Parser::parseDecl(ParseDeclOptions Flags,
3801
3802
llvm::SmallVector<Decl *, 4 > Entries;
3802
3803
DeclParsingContext.setCreateSyntax (SyntaxKind::EnumCaseDecl);
3803
3804
DeclResult = parseDeclEnumCase (Flags, Attributes, Entries);
3804
- if (DeclResult.hasCodeCompletion () && isCodeCompletionFirstPass ())
3805
+ if ((AttrStatus.hasCodeCompletion () || DeclResult.hasCodeCompletion ()) &&
3806
+ isCodeCompletionFirstPass ())
3805
3807
break ;
3806
3808
std::for_each (Entries.begin (), Entries.end (), Handler);
3807
3809
if (auto *D = DeclResult.getPtrOrNull ())
@@ -3845,7 +3847,8 @@ Parser::parseDecl(ParseDeclOptions Flags,
3845
3847
DeclResult = parseDeclSubscript (StaticLoc, StaticSpelling, Flags,
3846
3848
Attributes, Entries);
3847
3849
StaticLoc = SourceLoc (); // we handled static if present.
3848
- if (DeclResult.hasCodeCompletion () && isCodeCompletionFirstPass ())
3850
+ if ((AttrStatus.hasCodeCompletion () || DeclResult.hasCodeCompletion ()) &&
3851
+ isCodeCompletionFirstPass ())
3849
3852
break ;
3850
3853
std::for_each (Entries.begin (), Entries.end (), Handler);
3851
3854
MayNeedOverrideCompletion = true ;
@@ -4024,6 +4027,8 @@ Parser::parseDecl(ParseDeclOptions Flags,
4024
4027
CodeCompletion->setAttrTargetDeclKind (DK);
4025
4028
}
4026
4029
DeclResult.setHasCodeCompletion ();
4030
+ if (isCodeCompletionFirstPass ())
4031
+ return DeclResult;
4027
4032
}
4028
4033
4029
4034
if (DeclResult.isNonNull ()) {
0 commit comments