As a follow up to D84658:
For an unnamed parameter: (unnamed variable at {{.*}}:<line>:<col> of type <type>) -> (unnamed parameter at {{.*}}:<line>:<col> of type <type>).
For a lambda class: (unnamed class at {{.*}}:<line>:<col>) -> (lambda at {{.*}}:<line>:<col>).
For an unnamed field representing a capture: (unnamed field at {{.*}}:<line>:<col> of type <type>) -> pretty-printed name of the captured variable (except for now in the uncommon case of a captured VLA bound; see the comment).
Additionally add some unit tests for the changes in this patch and in the previous D84658.
Rather than isa<> followed by a cast<>, how about:
Alternatively, you could sink the dyn_cast<> down into maybePrintFieldForLambdaCapture() since that already has to handle case where it's not printing a field capture.