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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to