@@ -7238,7 +7238,7 @@ class AsyncConverter : private SourceEntityWalker {
72387238 /* Success=*/ true );
72397239
72407240 addAwaitCall (CE, ArgList.ref (), Blocks.SuccessBlock , SuccessParams,
7241- InlinePatterns, HandlerDesc, /* AddDeclarations*/ true );
7241+ InlinePatterns, HandlerDesc, /* AddDeclarations= */ true );
72427242 printOutOfLineBindingPatterns (Blocks.SuccessBlock , InlinePatterns);
72437243 convertNodes (Blocks.SuccessBlock .nodesToPrint ());
72447244 clearNames (SuccessParams);
@@ -7249,7 +7249,8 @@ class AsyncConverter : private SourceEntityWalker {
72497249
72507250 // Always use the ErrParam name if none is bound.
72517251 prepareNames (Blocks.ErrorBlock , llvm::makeArrayRef (ErrParam),
7252- ErrInlinePatterns, HandlerDesc.Type != HandlerType::RESULT);
7252+ ErrInlinePatterns,
7253+ /* AddIfMissing=*/ HandlerDesc.Type != HandlerType::RESULT);
72537254 preparePlaceholdersAndUnwraps (HandlerDesc, SuccessParams, ErrParam,
72547255 /* Success=*/ false );
72557256
@@ -7530,7 +7531,7 @@ class AsyncConverter : private SourceEntityWalker {
75307531 void addCatch (const ParamDecl *ErrParam) {
75317532 OS << " \n " << tok::r_brace << " " << tok::kw_catch << " " ;
75327533 auto ErrName = newNameFor (ErrParam, false );
7533- if (!ErrName.empty ()) {
7534+ if (!ErrName.empty () && ErrName != " _ " ) {
75347535 OS << tok::kw_let << " " << ErrName << " " ;
75357536 }
75367537 OS << tok::l_brace;
@@ -7614,6 +7615,8 @@ class AsyncConverter : private SourceEntityWalker {
76147615 // / other names in the current scope.
76157616 Identifier createUniqueName (StringRef Name) {
76167617 Identifier Ident = getASTContext ().getIdentifier (Name);
7618+ if (Name == " _" )
7619+ return Ident;
76177620
76187621 auto &CurrentNames = Scopes.back ().Names ;
76197622 if (CurrentNames.count (Ident)) {
0 commit comments