dblaikie added a comment.
@aaron.ballman: thanks for tracking down the source of confusion between our
perspectives. (& yeah, sorry, could've included less ambiguous examples with
the extra nesting so we'd have avoided all that confusion)
Do you have particular examples where you find the fully explicit (1)
especially helpful (to a novice or otherwise) over (2)?
It seems to me once you've got the top level type you have enough info to
compare two things, even if you don't know the nested member types - "X<Y{{3},
{5}}>" is distinct from "X<Y{{4}, {5}}>" it doesn't seem to matter what the
intermediate type is? but yeah, I guess it raises the question "is it that the
length or the height is mismatched here" and more explicit would avoid that
question. It does seem unfortunately verbose to my mind - like if we improved
the printer to show only the relevant types when diffing template names, for
instance, that'd be an improvement (though I guess we already do fancy things
for template type diffing that don't show complete copy-paste-into-source
usable names anyway, so that's a different situation - and doesn't necessarily
say what we should do when the type appears alone in a diagnostic, not as a
comparison)
*shrug* Sorry to you both for all the talking/back and forth then. Adding the
fully explicit mode will address @dodoent's string-based reflection needs and
@aaron.ballman so there's no tension between Clang's diagnostic goals and
@DoDoENT's reflection goals.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134453/new/
https://reviews.llvm.org/D134453
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits