PING. On Thu, Apr 14, 2016 at 1:52 PM Eric Liu <ioe...@google.com> wrote:
> ioeric updated this revision to Diff 53691. > ioeric added a comment. > > - Addressed reviewer comment. > > > http://reviews.llvm.org/D19106 > > Files: > lib/Format/TokenAnnotator.h > > Index: lib/Format/TokenAnnotator.h > =================================================================== > --- lib/Format/TokenAnnotator.h > +++ lib/Format/TokenAnnotator.h > @@ -83,7 +83,7 @@ > /// \c true if this line starts with the given tokens in order, ignoring > /// comments. > template <typename... Ts> bool startsWith(Ts... Tokens) const { > - return startsWith(First, Tokens...); > + return startsWithInternal(First, Tokens...); > } > > /// \c true if this line looks like a function definition instead of a > @@ -124,15 +124,24 @@ > void operator=(const AnnotatedLine &) = delete; > > template <typename A, typename... Ts> > - bool startsWith(FormatToken *Tok, A K1) const { > + bool startsWithInternal(const FormatToken *Tok, A K1) const { > + // Even though we skip comments in the outter `startWithInternal` > function, > + // this loop is still necessary if it is invoked by the public > interface > + // `startsWith`. > while (Tok && Tok->is(tok::comment)) > Tok = Tok->Next; > return Tok && Tok->is(K1); > } > > template <typename A, typename... Ts> > - bool startsWith(FormatToken *Tok, A K1, Ts... Tokens) const { > - return startsWith(Tok, K1) && startsWith(Tok->Next, Tokens...); > + bool startsWithInternal(const FormatToken *Tok, A K1, Ts... Tokens) > const { > + // Skip comments before calling `startsWithInternal(Tok, K1)` so > that the > + // second call to `startsWithInternal` takes the correct `Tok->Next`, > which > + // should be the next token of the token checked in the first call. > + while (Tok && Tok->is(tok::comment)) > + Tok = Tok->Next; > + return Tok && startsWithInternal(Tok, K1) && > + startsWithInternal(Tok->Next, Tokens...); > } > }; > > > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits