jdenny added a comment.

In https://reviews.llvm.org/D46919#1100493, @rsmith wrote:

> The deprecated enumerator is also referenced by 
> `tools/c-index-test/c-index-test.c`


This test prompted me to keep the IncludeTagDefinition member in PrintingPolicy 
so that clang_PrintingPolicy_getProperty would return the previous value set by 
clang_PrintingPolicy_setProperty.  Otherwise, the value doesn't have any 
effect.  Is that self-consistency not worth worrying about?  If so, I'll remove 
both.

> This looks fine to me, but let's leave this review thread open for a week or 
> so, to give people a bit more time to object in case they're using the flag 
> for something.

Sure.



================
Comment at: include/clang/AST/PrettyPrinter.h:100-108
+  /// When true, print any tag declaration owned by an elaborated type.
   ///
-  /// This is used to place the definition of a struct
-  /// in the middle of another declaration as with:
+  /// This is used to faithfully print the exact tag declaration that appears
+  /// within another declaration.  For example:
   ///
   /// \code
+  /// typedef struct T { int x, y; } Point;
----------------
rsmith wrote:
> Please explicitly mark this as being transient state that's internal to the 
> printing algorithm and not part of its external configuration, so that people 
> don't try to expose it again in the future. The same is true for a bunch of 
> the other flags around here -- if we're going to do this, we should 
> systematically examine these flags to see which ones are external 
> configuration and which ones are internal state that we're (hackily) passing 
> between printing steps via the `PrintingPolicy`. It would also make sense to 
> move the internal state flags to a separate struct from the policy.
> Please explicitly mark this as being transient state that's internal to the 
> printing algorithm and not part of its external configuration, so that people 
> don't try to expose it again in the future.

Will do.

> The same is true for a bunch of the other flags around here -- if we're going 
> to do this, we should systematically examine these flags to see which ones 
> are external configuration and which ones are internal state that we're 
> (hackily) passing between printing steps via the PrintingPolicy.

Doing that now sounds like a lot of analysis and difficult judgment calls 
without much immediate gain -- at least for me as I'm not so familiar with all 
the flags and their potential uses from libclang.  My inclination is to write a 
fixme and refactor gradually.

> It would also make sense to move the internal state flags to a separate 
> struct from the policy.

Are you ok with making the new struct a member of the existing policy to 
simplify the refactoring effort?


https://reviews.llvm.org/D46919



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to