Merge pull request #85807 from allevato/more-json-ast-fixes-2

[ASTDumper] Fix malformed JSON for `async let _ = ...`.
This commit is contained in:
Tony Allevato
2025-12-03 08:22:29 -05:00
committed by GitHub
2 changed files with 9 additions and 3 deletions

View File

@@ -1913,10 +1913,8 @@ namespace {
printFoot();
}
void visitAnyPattern(AnyPattern *P, Label label) {
if (P->isAsyncLet()) {
printCommon(P, "async_let ", label);
}
printCommon(P, "pattern_any", label);
printFlag(P->isAsyncLet(), "async_let", DeclModifierColor);
printFoot();
}
void visitTypedPattern(TypedPattern *P, Label label) {

View File

@@ -503,3 +503,11 @@ func outerFn() {
}
innerFun(shouldRecurse: true)
}
// Regression test: Discarded async lets were calling `printCommon` twice,
// which resulted in invalid JSON (and not-so-great S-expression output)
// either.
func discardedAsyncLet() async {
func someTask() async {}
async let _ = someTask()
}