On Jul 10, 2012, at 10:03 PM, Andy Gibbs wrote: > On Tuesday, July 10, 2012 11:15 PM, Jordan Rose wrote: >> Is there any particular reason why setForceEmit() is const and IsForceEmit is >> mutable? Diags.Report returns a mutable DiagnosticBuilder. > > I kept with the idioms in use for the rest of the class. Using a const > function with > a mutable data member, it is possible to use setForceEmit() after using the > stream > operators as well as before, so for example, the following is also valid: > > (Diags.Report(Loc, diag) << arg).setForceEmit() << arg2; > > Which means the part in brackets could be generated by a helper function. > > As to why the DiagnosticBuilder class is designed const but mutable, I can > only > think that this may originally have been so that Emit() could only be called > from > the destructor, put Emit() is protected anyway... Whatever, perhaps > Diags.Report > should actually be returning a const object?
Hm, okay. In that case I don't like the existing design much, but that shouldn't hold up your patch. Committed in r160053! _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
