================
Comment at: lib/Format/UnwrappedLineParser.cpp:1042
@@ +1041,3 @@
+  bool NeedsUnwrappedLine = false;
+  if (FormatTok->Tok.is(tok::colon)) {
+      // We are in a function try block, what comes is an initializer list
----------------
Stefanus Du Toit wrote:
> Stefanus Du Toit wrote:
> > Manuel Klimek wrote:
> > > Alexander Rojas wrote:
> > > > Manuel Klimek wrote:
> > > > > I'm wondering whether we just want to eat everything up to the next 
> > > > > '{'. In general, we try to parse as little as possible in the 
> > > > > structural parser.
> > > > > 
> > > > > If we decide we really need to parse the structure here, I think we 
> > > > > should pull out a parseInitializerList() method.
> > > > I've been thinking on how to parse the initializer list, and it might 
> > > > be quite cumbersome. I've been thinking on leaving out of this patch 
> > > > the ability of dealing with function-try blocks and leave it for latter 
> > > > (since I do this as a hobby, there's really a limit on how much time I 
> > > > can spend on this).
> > > I think we're misunderstanding each other here... What I mean is that we 
> > > should parse *less* accurately. The thing to remember is that 
> > > clang-format must work well on incorrect code. Thus, the structural 
> > > parser tries hard to find only the structural elements that matter.
> > > 
> > > Regarding the time limits you have: especially when you do this as a 
> > > hobby, I'd say this is the perfect venue to try to get things "right". As 
> > > nobody forces you to do it, there's also no deadline pressure, so you can 
> > > take all the time you need... The worst that can happen is that somebody 
> > > asks you whether they can take over and finish the patch if they need it 
> > > more urgently.
> > I don't think you can just consume until the next brace, due to brace 
> > initialization:
> > 
> >   try : foo{}, bar{nullptr} {} catch (...) {}
> > 
> klimek, when you say that you'd like to have parseInitializerList() broken 
> out, do you mean for it to be used anywhere else, or just to pull it out to 
> make it cleaner here and in potential future uses? I couldn't find anywhere 
> we explicitly parse initializer lists already.
I actually had an implementation of that and then while writing a test I 
realized that didn't work. The best option is to actually parse the initializer 
list.


http://llvm-reviews.chandlerc.com/D2555
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to