On Tue, Aug 21, 2012 at 8:15 PM, Richard Smith <[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. >> > > 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? > Yes, it should be possible to print qualifiers on all types. > > 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
