zixuw added a comment.

Still going through the declaration fragments builder and 
`ExtractAPIVisitor/Consumer/Action` changes, but it seems that the patch needs 
a rebase onto the latest main right now as it's missing several already landed 
changes.



================
Comment at: clang/include/clang/ExtractAPI/API.h:117
 
-  GlobalRecord(GVKind Kind, StringRef Name, StringRef USR, PresumedLoc Loc,
+  GlobalRecord(StringRef Name, GVKind Kind, StringRef USR, PresumedLoc Loc,
                const AvailabilityInfo &Availability, LinkageInfo Linkage,
----------------
Now that we are re-ordering it, would it look more organized if we push `GVKind 
Kind` further down so that the two `StringRef`s could be adjacent, and we also 
keep a common list of arguments (`Name, USR, Loc, Availability, ..., 
SubHeading`) the same across all kinds of records upfront? So maybe push to the 
end after `SubHeading` and before `Signature`.


================
Comment at: clang/include/clang/ExtractAPI/API.h:117
 
-  GlobalRecord(GVKind Kind, StringRef Name, StringRef USR, PresumedLoc Loc,
+  GlobalRecord(StringRef Name, GVKind Kind, StringRef USR, PresumedLoc Loc,
                const AvailabilityInfo &Availability, LinkageInfo Linkage,
----------------
zixuw wrote:
> Now that we are re-ordering it, would it look more organized if we push 
> `GVKind Kind` further down so that the two `StringRef`s could be adjacent, 
> and we also keep a common list of arguments (`Name, USR, Loc, Availability, 
> ..., SubHeading`) the same across all kinds of records upfront? So maybe push 
> to the end after `SubHeading` and before `Signature`.
Also it seems that it becomes a requirement for the `*Record` c'tors that 
`Name` should be the first parameter in order to use the `addTopLevelRecord` 
template, though that's hidden in an anonymous namespace in the implementation 
file.
How can we communicate or document this clearly for future extensions?


================
Comment at: clang/include/clang/ExtractAPI/API.h:195
+  MacroDefinitionRecord(StringRef Name, StringRef USR, PresumedLoc Loc,
+                        DeclarationFragments DeclarationFragments)
+      : APIRecord(RK_MacroDefinition, Name, USR, Loc, AvailabilityInfo(),
----------------
Don't we also need sub-headings for macros?


================
Comment at: clang/include/clang/ExtractAPI/API.h:201
+    return Record->getKind() == RK_MacroDefinition;
+  }
+};
----------------
Need out-of-line virtual anchor as this struct inherits a virtual table.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122611

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

Reply via email to