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. > It seems inconsistent that we print: +// CHECK-ELIDE-TREE: [const int != int]>> ... for a non-template type but... +// CHECK-ELIDE-TREE: [const != (no qualifiers)] vector< ... for a template type. Can we use the latter form (and qualifier highlighting) in both cases? Examples: > vector<const vector<int>> and vector<vector<int>> > inline: vector<const vector<[...]>> vs. vector<(missing const) > vector<[...]> > tree: > vector< > [const != (no qualifiers)] vector< > [...]>> > > vector<const vector<int>> and vector<volatile vector<int>> > inline: vector<const (missing volatile) vector<[...]>> vs vector<volatile > (missing const) vector<[...]>> > tree: > vector< > [const != volatile] vector< > [...]>> > > Highlighting is also added for the differing qualifiers. > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
