haowei added a comment.

I am a bit puzzled by the intent of cleaning up the constructors in Info 
object. I didn't see it as an issue to have multiple constructors, which is a 
common practice. After this clean up It doesn't make it easier to use these 
objects, in fact, in `Serialize.cpp`, you have to explicitly specify a new 
SymbolID() when creating a new Reference object. While this change won't affect 
(except for the global namespace) the output from clang-docs, it is not 
semantically equivalent before the cleanup.

Would you mind explaining the reasons for removing these constructors?



================
Comment at: clang-tools-extra/clang-doc/Representation.h:165
-      : Type(Type, Field, IT) {}
-  TypeInfo(SymbolID Type, StringRef Field, InfoType IT, StringRef Path)
-      : Type(Type, Field, IT, Path) {}
----------------
The clean up here prevents setting a customized SymbolID for TypeInfo, which 
becomes a problem in the HTMLGeneratorTest, in which TypeInfo is constructed 
with an constant EmptySID. While the outcome is the same, it is not 
semantically equivalent.  


================
Comment at: clang-tools-extra/clang-doc/Representation.h:219
 
-  int LineNumber;               // Line number of this Location.
+  int LineNumber = 0;           // Line number of this Location.
   SmallString<32> Filename;     // File for this Location.
----------------
This is already set in the constructor. Does it still need to be set explicitly 
here? 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134235/new/

https://reviews.llvm.org/D134235

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

Reply via email to