Athosvk added inline comments.

================
Comment at: tools/clang-doc/ClangDocReporter.h:39
 // Info for named types (parameters, members).
 struct NamedType {
   std::string Type;
----------------
Storing the type information seems more suitable than storing just the name and 
type as a string. In my view, the frontend creates a format suitable for 
(almost) any backend to use without further parsing. This would for example 
require me to parse part of the name to get the namespace.


================
Comment at: tools/clang-doc/ClangDocReporter.h:75
 struct Info {
   bool isDefined = false;
   std::string FullyQualifiedName;
----------------
NItpick but should probably be 'IsDefined'


================
Comment at: tools/clang-doc/ClangDocReporter.h:87
   std::string MangledName;
   std::string DefinitionFile;
   std::string ReturnType;
----------------
Seems common to almost all Info structs, so you can probably move it to 
the/some base.

Namespaces do seem unrelated, so maybe you can make another struct inbetween? 
E.g. something like struct SymbolInfo : Info which contains a field for 
DefinitionFile and Locations (since that may not be used for namespaces either).

Additionally, what will you do when you merge this output information from 
multiple compilation untis back together? Only one should have the 
DefinitionFile set as the other compilation units won't see the definition. 
What happens if a function stays undefined? Can you generate documentation for 
it?


================
Comment at: tools/clang-doc/ClangDocReporter.h:88
   std::string DefinitionFile;
   std::string ReturnType;
   llvm::SmallVector<NamedType, 4> Params;
----------------
This should probably be a NamedType like the parameters


================
Comment at: tools/clang-doc/ClangDocReporter.h:89
   std::string ReturnType;
   llvm::SmallVector<NamedType, 4> Params;
   AccessSpecifier Access;
----------------
Perhaps you could already attach the parameter comments to this? So something 
like a 

```
struct ParamInfo
{
    NamedType Type;
    std::string/CommentInfo Description/CommentInfo;
}
```
Or are you planning to keep this to a later stage? At this point it seems like 
the backend will have to parse a CommentInfo struct to attach comments to 
parameters etc. manually


================
Comment at: tools/clang-doc/ClangDocReporter.h:93
 
 struct NamespaceInfo : public Info {
+  llvm::StringMap<std::unique_ptr<FunctionInfo>> Functions;
----------------
Currently info stores the locations of occurrences, but this seems like a hard 
thing to do when it comes namespaces. Is it useful to have this particular 
information?


https://reviews.llvm.org/D41102



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

Reply via email to