There are still a few llvm::ArrayRefs and llvm::StringRefs in the patch left.

  re VariantValue:
  Is it necessary to introduce the is()/get() magic and a union instead of 
using Casting.h-like casts?  Do you expect it to significantly help with 
readability?


================
Comment at: lib/ASTMatchers/Dynamic/VariantValue.cpp:60-61
@@ +59,4 @@
+void VariantValue::setImpl(const std::string &NewValue) {
+  Type = VT_String;
+  Value.String = new std::string(NewValue);
+}
----------------
Samuel Benzaquen wrote:
> Dmitri Gribenko wrote:
> > What if someone calls setImpl() repeatedly?  Do we just leak old values?
> > 
> I could call reset() from all the setImpl() overloads. Right now it is called 
> once from the place where setImpl() is called.
No need to make the functionality more complex than it is now.  `assert(Type == 
VT_Nothing)` here and in the other setImpl() overload should catch the issue.


================
Comment at: include/clang/ASTMatchers/Dynamic/Parser.h:42-43
@@ +41,4 @@
+
+/// \brief Matcher expression parser.
+class Parser {
+public:
----------------
Samuel Benzaquen wrote:
> Dmitri Gribenko wrote:
> > This class just holds a few static member functions.  Is the class really 
> > needed here?
> It is not really needed. I could take out the class / rename as namespace.
> The same applies to Registry, I guess.
Or you could take advantage of 'Parser' being a real class: if it is 
appropriate, you could move 'TokenProcessor' and 'Diagnostics' to be class 
members.


http://llvm-reviews.chandlerc.com/D714

BRANCH
  svn

ARCANIST PROJECT
  clang
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to