astrelni marked 5 inline comments as done. astrelni added a comment. Sorry for the long delay.
I've reworked the template instantiation stuff a little bit yet again. Going to still come back and comment with results of profiling but I think now this shouldn't be much slower than if the template instantiations were filtered out with the matchers. ================ Comment at: clang-tidy/abseil/UpgradeDurationConversionsCheck.cpp:153 + // required so we provide only a warning. + std::sort(MatchedTemplateLocations.begin(), MatchedTemplateLocations.end()); + for (SourceLocation Loc : MatchedInstantiationLocations) { ---------------- alexfh wrote: > MatchedTemplateLocations can be a std::set<SourceLocation> or a > std::unordered_set<unsigned> filled with SourceLocation::getRawEncoding(). > Same for MatchedInstantiationLocations, I suppose. Ah thank you, I didn't look hard enough after not seeing a std::hash specialization for SourceLocation. In that case we don't need the onEndOfTranslationUnit or MatchedInstantiationLocations so those are now gone. I added a test case for when a template is used in source before the body since I wasn't 100% sure that the template would be traversed before the instantiation. https://reviews.llvm.org/D53830 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits