[clang][NFC] Add some documentation about the use of NamedDecl::getDeclName in diagno...
authorBruno Ricci <riccibrun@gmail.com>
Tue, 28 Jul 2020 14:39:17 +0000 (15:39 +0100)
committerBruno Ricci <riccibrun@gmail.com>
Tue, 28 Jul 2020 14:39:17 +0000 (15:39 +0100)
As explained in eb10b065f2a870b425dcc2040b9955e0eee464b4, sending a NamedDecl*
in a diagnostic should generally be preferred over sending the DeclarationName
from getDeclName(). Let's document that.

clang/include/clang/AST/Decl.h

index 28faa2c..4dd5e14 100644 (file)
@@ -269,6 +269,19 @@ public:
 
   /// Get the actual, stored name of the declaration, which may be a special
   /// name.
+  ///
+  /// Note that generally in diagnostics, the non-null \p NamedDecl* itself
+  /// should be sent into the diagnostic instead of using the result of
+  /// \p getDeclName().
+  ///
+  /// A \p DeclarationName in a diagnostic will just be streamed to the output,
+  /// which will directly result in a call to \p DeclarationName::print.
+  ///
+  /// A \p NamedDecl* in a diagnostic will also ultimately result in a call to
+  /// \p DeclarationName::print, but with two customisation points along the
+  /// way (\p getNameForDiagnostic and \p printName). These are used to print
+  /// the template arguments if any, and to provide a user-friendly name for
+  /// some entities (such as unnamed variables and anonymous records).
   DeclarationName getDeclName() const { return Name; }
 
   /// Set the name of this declaration.