[clang-tools-extra] c39dcd2 - [c++20][clangd] Simplify code using the new `ConceptReference` nodes.
Jens Massberg via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 31 04:56:04 PDT 2023
Author: Jens Massberg
Date: 2023-08-31T13:53:56+02:00
New Revision: c39dcd2c2bc7fd142ac8305b3a41f24e1addbd8c
URL: https://github.com/llvm/llvm-project/commit/c39dcd2c2bc7fd142ac8305b3a41f24e1addbd8c
DIFF: https://github.com/llvm/llvm-project/commit/c39dcd2c2bc7fd142ac8305b3a41f24e1addbd8c.diff
LOG: [c++20][clangd] Simplify code using the new `ConceptReference` nodes.
Directly traverse `ConceptReference`s in FindTarget.cpp.
There is no need for the extra logic for `AutoTypeLoc`s in SemanticHightlighting.cpp as the concept information is stored in a `ConceptReference` which is now traversed.
Differential Revision: https://reviews.llvm.org/D159268
Added:
Modified:
clang-tools-extra/clangd/FindTarget.cpp
clang-tools-extra/clangd/SemanticHighlighting.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/FindTarget.cpp b/clang-tools-extra/clangd/FindTarget.cpp
index 630b75059b6baf..c1ec030275c4f6 100644
--- a/clang-tools-extra/clangd/FindTarget.cpp
+++ b/clang-tools-extra/clangd/FindTarget.cpp
@@ -742,13 +742,6 @@ llvm::SmallVector<ReferenceLoc> refInStmt(const Stmt *S,
// FIXME: handle more complicated cases: more ObjC, designated initializers.
llvm::SmallVector<ReferenceLoc> Refs;
- void VisitConceptSpecializationExpr(const ConceptSpecializationExpr *E) {
- Refs.push_back(ReferenceLoc{E->getNestedNameSpecifierLoc(),
- E->getConceptNameLoc(),
- /*IsDecl=*/false,
- {E->getNamedConcept()}});
- }
-
void VisitDeclRefExpr(const DeclRefExpr *E) {
Refs.push_back(ReferenceLoc{E->getQualifierLoc(),
E->getNameInfo().getLoc(),
@@ -1063,15 +1056,12 @@ class ExplicitReferenceCollector
return RecursiveASTVisitor::TraverseConstructorInitializer(Init);
}
- bool TraverseTypeConstraint(const TypeConstraint *TC) {
- // We want to handle all ConceptReferences but RAV is missing a
- // polymorphic Visit or Traverse method for it, so we handle
- // TypeConstraints specially here.
- Out(ReferenceLoc{TC->getNestedNameSpecifierLoc(),
- TC->getConceptNameLoc(),
+ bool VisitConceptReference(ConceptReference *ConceptRef) {
+ Out(ReferenceLoc{ConceptRef->getNestedNameSpecifierLoc(),
+ ConceptRef->getConceptNameLoc(),
/*IsDecl=*/false,
- {TC->getNamedConcept()}});
- return RecursiveASTVisitor::TraverseTypeConstraint(TC);
+ {ConceptRef->getNamedConcept()}});
+ return true;
}
private:
diff --git a/clang-tools-extra/clangd/SemanticHighlighting.cpp b/clang-tools-extra/clangd/SemanticHighlighting.cpp
index 8003a3c98f0ad8..45c01634e2e38d 100644
--- a/clang-tools-extra/clangd/SemanticHighlighting.cpp
+++ b/clang-tools-extra/clangd/SemanticHighlighting.cpp
@@ -736,14 +736,6 @@ class CollectExtraHighlightings
return true;
}
- bool VisitAutoTypeLoc(AutoTypeLoc L) {
- if (L.isConstrained()) {
- H.addAngleBracketTokens(L.getLAngleLoc(), L.getRAngleLoc());
- H.addToken(L.getConceptNameInfo().getLoc(), HighlightingKind::Concept);
- }
- return true;
- }
-
bool VisitFunctionDecl(FunctionDecl *D) {
if (D->isOverloadedOperator()) {
const auto AddOpDeclToken = [&](SourceLocation Loc) {
More information about the cfe-commits
mailing list