E.g. allow injected "A::A" in using A::A^ but not in "A^".
Details
Details
- Reviewers
kadircet - Commits
- rGb1317fa8dfc0: [clangd] Drop injected class name when class scope is not explicitly specified.
rCTE347982: [clangd] Drop injected class name when class scope is not explicitly specified.
rL347982: [clangd] Drop injected class name when class scope is not explicitly specified.
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM, thanks!
unittests/clangd/CodeCompleteTests.cpp | ||
---|---|---|
419 ↗ | (On Diff #175896) | Could you also add a test for the inheritance of injected class name? For ex: struct X {}; struct T : private X {}; struct F : public T { X^ <-- this is inavlid and we should not suggest X here, since it is inaccessible. ::X^ <-- this should be Ok. }; |
unittests/clangd/CodeCompleteTests.cpp | ||
---|---|---|
419 ↗ | (On Diff #175896) | Happy to improve the test coverage. But I couldn't see how this tests changes in this patch. It seems something sema access should be testing and a bit out of scope? Could you elaborate on the intention? Thanks! |
unittests/clangd/CodeCompleteTests.cpp | ||
---|---|---|
419 ↗ | (On Diff #175896) | Ah you are right, it should be rather handled within sema to mark the first one as not accessible. |