On Wed, Aug 22, 2012 at 11:25 AM, Richard Trieu <[email protected]> wrote:
> On Tue, Aug 21, 2012 at 7:17 PM, Chandler Carruth <[email protected]>wrote: > >> On Tue, Aug 21, 2012 at 6:59 PM, Richard Trieu <[email protected]> wrote: >> >>> Currently, template diffing does not handle cases where the templates >>> have qualifiers. This can lead to warnings such as: >>> >>> ... 'vector<vector<[...]>>' cannot convert to 'vector<vector<[...]>>' ... >>> >>> when the message means, can't convert from vector<const vector<int>> to >>> vector<vector<int>>. This patch allows the internal diff tree to store the >>> qualifiers for template types and adds new methods for finding the >>> difference between sets of qualifiers and to print out the qualifiers. >>> This does not affect non-template types as they already print qualifiers. >>> >> >> Very cool! >> >> >>> Examples: >>> vector<const vector<int>> and vector<vector<int>> >>> inline: vector<const vector<[...]>> vs. vector<(missing const) >>> vector<[...]> >>> >> >> I think I would prefer: vector<const vector<[...]>> vs. >> vector<vector<[...]>> >> > >> We can use the cyan highlighting to further emphasize the qualifiers on >> both sides (if any) when the qualifiers are different. This would make the >> const bright here, and in the example further down, the const bright on one >> side and the volatile on the other. >> >> One reason why I prefer this format is brevity. The other is that the >> error might be the *presence* of const just as easily as the absence. >> > > The motivation behind the (missing ...) was that there's no guarantee that > the types printed would be close to each other. There may be cases of : > vector<const vector<[...]>> ... long message ... vector<vector<[...]>>. > Going by your suggestion, the second type would be completely > unhighlighted. > Seems fine to me? As long as the const is highlighted in the first type, I think it's likely to draw the attention to the correct place.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
