ClangBuildAnalyzer icon indicating copy to clipboard operation
ClangBuildAnalyzer copied to clipboard

Allow collapsing non-ambiguous operator symbols

Open aeckert opened this issue 2 years ago • 1 comments

I have a case where I have a bunch of templated classes that have potentially expensive operator() implementations. However, due to how we collapse names, we never collapse any operators at all and we don't end up grouping these when highlight expensive template instantiation patterns. Relevant code is here:

...
static std::string_view CollapseName(const std::string_view& elt)
{
    // Parsing op<, op<<, op>, and op>> seems hard.  Just skip'm all
    if (elt.find("operator") != std::string::npos)
      return elt;
...

I'm wondering if we can change this to only prevent collapsing if we find either 'operator<' or 'operator>' in the name so that we can surface something like this.

aeckert avatar Mar 17 '22 19:03 aeckert

Seems reasonable. I vaguely recall running into some cases where there were spaces between operator and the op type.

Put together a PR and we can look at it!

ben-craig avatar Mar 18 '22 12:03 ben-craig