This allows the client to resolve subtypes one level at a time.
For supertypes, this is not necessary, because we eagerly compute
supertypes and return all levels.
Paths
| Differential D64308
[clangd] Implement typeHierarchy/resolve for subtypes ClosedPublic Authored by nridge on Jul 7 2019, 10:18 PM.
Details
Summary This allows the client to resolve subtypes one level at a time. For supertypes, this is not necessary, because we eagerly compute
Diff Detail
Event TimelineComment Actions This was an oversight on my part: I forgot that, when we didn't implement typeHierarchy/resolve, it was only supertypes that didn't need it; subtypes do. Comment Actions Thanks, I forgot we hadn't hooked this part up!
This revision is now accepted and ready to land.Jul 11 2019, 11:44 AM Closed by commit rL365867: [clangd] Implement typeHierarchy/resolve for subtypes (authored by nridge). · Explain WhyJul 11 2019, 8:26 PM This revision was automatically updated to reflect the committed changes. nridge marked 3 inline comments as done. nridge marked an inline comment as done. Comment ActionsThis was backed out due to a Windows test failure. Seems to be related to the hint path having a different format on Windows. I guess I should not hard-code it, but get it from the TestTU. This revision is now accepted and ready to land.Jul 12 2019, 10:33 AM
Closed by commit rL365986: [clangd] Implement typeHierarchy/resolve for subtypes (authored by nridge). · Explain WhyJul 12 2019, 8:25 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 209666 clang-tools-extra/clangd/ClangdLSPServer.h
clang-tools-extra/clangd/ClangdLSPServer.cpp
clang-tools-extra/clangd/ClangdServer.h
clang-tools-extra/clangd/ClangdServer.cpp
clang-tools-extra/clangd/Protocol.h
clang-tools-extra/clangd/Protocol.cpp
clang-tools-extra/clangd/XRefs.h
clang-tools-extra/clangd/XRefs.cpp
clang-tools-extra/clangd/test/type-hierarchy.test
clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp
|
const TypeHierarchyItem &Item
(or mutable ref as suggested in the other comment, and return void)