@@ -7214,7 +7214,7 @@ class AsyncConverter : private SourceEntityWalker {
72147214 /* Success=*/ true );
72157215
72167216 addAwaitCall (CE, ArgList.ref (), Blocks.SuccessBlock , SuccessParams,
7217- InlinePatterns, HandlerDesc, /* AddDeclarations*/ true );
7217+ InlinePatterns, HandlerDesc, /* AddDeclarations= */ true );
72187218 printOutOfLineBindingPatterns (Blocks.SuccessBlock , InlinePatterns);
72197219 convertNodes (Blocks.SuccessBlock .nodesToPrint ());
72207220 clearNames (SuccessParams);
@@ -7225,7 +7225,8 @@ class AsyncConverter : private SourceEntityWalker {
72257225
72267226 // Always use the ErrParam name if none is bound.
72277227 prepareNames (Blocks.ErrorBlock , llvm::makeArrayRef (ErrParam),
7228- ErrInlinePatterns, HandlerDesc.Type != HandlerType::RESULT);
7228+ ErrInlinePatterns,
7229+ /* AddIfMissing=*/ HandlerDesc.Type != HandlerType::RESULT);
72297230 preparePlaceholdersAndUnwraps (HandlerDesc, SuccessParams, ErrParam,
72307231 /* Success=*/ false );
72317232
@@ -7506,7 +7507,7 @@ class AsyncConverter : private SourceEntityWalker {
75067507 void addCatch (const ParamDecl *ErrParam) {
75077508 OS << " \n " << tok::r_brace << " " << tok::kw_catch << " " ;
75087509 auto ErrName = newNameFor (ErrParam, false );
7509- if (!ErrName.empty ()) {
7510+ if (!ErrName.empty () && ErrName != " _ " ) {
75107511 OS << tok::kw_let << " " << ErrName << " " ;
75117512 }
75127513 OS << tok::l_brace;
@@ -7590,6 +7591,8 @@ class AsyncConverter : private SourceEntityWalker {
75907591 // / other names in the current scope.
75917592 Identifier createUniqueName (StringRef Name) {
75927593 Identifier Ident = getASTContext ().getIdentifier (Name);
7594+ if (Name == " _" )
7595+ return Ident;
75937596
75947597 auto &CurrentNames = Scopes.back ().Names ;
75957598 if (CurrentNames.count (Ident)) {
0 commit comments