This is an archive of the discontinued LLVM Phabricator instance.

[clangd] Don't consider class template params part of constructor name.
ClosedPublic

Authored by sammccall on Nov 15 2019, 6:35 AM.

Details

Summary

This is shorter and usually the extra info is noise.
There are cases where the params become type-parameter-0-0 that are hard to fix.

This affects a few features:

  • 'name' field in structured hover API (not exposed yet)
  • 'name' field in locateSymbolAt (not exposed in LSP)
  • 'document/symbol' - the symbol is hierarchically nested in the class template, or written as foo<t>::foo when defined out-of-line.

Added a test case for hover from https://github.com/clangd/clangd/issues/76.
This patch fixes one field, but no fewer than four others are wrong!
I'll fix them...

Diff Detail

Event Timeline

sammccall created this revision.Nov 15 2019, 6:35 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 15 2019, 6:35 AM

Build result: pass - 60134 tests passed, 0 failed and 729 were skipped.
Log files: console-log.txt, CMakeCache.txt

hokein accepted this revision.Nov 15 2019, 7:10 AM
This revision is now accepted and ready to land.Nov 15 2019, 7:10 AM
This revision was automatically updated to reflect the committed changes.